Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90
AutoCAD ::: Dicas & Truques ::: Configurações da Área de Desenho

Como definir os limites da área de desenho do AutoCAD usando o comando LIMITS

Quantidade de visualizações: 1068 vezes
Quando estamos criando um novo desenho no AutoCAD, muitas vezes usando os arquivos de template acad.dwt (medidas imperiais) ou acadiso.dwt (medidas métricas), nos deparamos com uma área de desenho gigantesca, com medidas enormes.

Assim, é sempre uma boa idéia delimitarmos a área de desenho, e isso é feito por meio do comando LIMITS. Este comando, quando acionado, nos pede duas coordenadas: Lower Left e Upper Right. Veja a figura:



Dessa forma, Lower Left define os limites para o canto esquerdo inferior e Upper Right define os limites para o canto superior direito. Quando acionamos o comando LIMITS (ligado: ON), não conseguimos sair desses limites, o que pode ser uma comodidade, pois podemos nos concentrar em pequenos porções de um desenho de grandes proporções.

Vamos então aprender a usar o comando LIMITS do AutoCAD? Comece criando um novo desenho (usando ou não os templates mencionados acima) e digite os comandos a seguir:

LIMITS [Enter]
Specify lower left corner or [ON/OFF] <0.0000,0.0000>: 0,0
Specify upper right corner <420.0000,297.0000>: 100,80

Tenha a certeza de inserir as coordenadas separadas por vírgulas e acionar a opção ON para ativar os limites. No final, digite o comando ZOOM ALL para aproximar a área de desenho dentro dos limites recém-definidos.

Agora, sempre que digitarmos coordenadas fora desses limites, o AutoCAD nos avisará que os valores são inválidos e os rejeitará. Para desligar os limites, basta chamar LIMITS novamente e informar o valor OFF.


C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como converter radianos em graus na linguagem C

Quantidade de visualizações: 5777 vezes
Todos os métodos e funções trigonométricas em C recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() do header math.h. Esta função recebe o ângulo em radianos e retorna o seu seno.

No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo:

\[Graus = Radianos \times \frac{180}{\pi}\]

Agora veja como esta fórmula pode ser escrita em código C:

#include <stdio.h>
#include <stdlib.h>
 
// vamos definir o valor de PI
#define PI 3.14159265358979323846
 
int main(int argc, char *argv[]){
  // valor em radianos
  double radianos = 1.5;
  // obtém o valor em graus
  double graus = radianos * (180 / PI);
  // mostra o resultado
  printf("%f radianos convertidos para graus é %f\n\n",
    radianos, graus);
  
  system("PAUSE");  
  return 0;
}

Ao executarmos este código C nós teremos o seguinte resultado:

1.500000 radianos convertidos para graus é 85.943669

Para fins de memorização, 1 radiano equivale a 57,2957795 graus.


Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter um valor inteiro em um caractere usando a função Chr() do Delphi

Quantidade de visualizações: 14389 vezes
Em algumas situações precisamos converter um valor inteiro em um caractere, ou seja, uma letra, símbolo, dígito, etc. Para isso podemos usar a função Chr() do Delphi. Esta função recebe um valor inteiro e retorna seu caractere correspondente de acordo com a tabela ASCII.

Vamos ver um exemplo? Eis um trecho de código que declara uma variável do tipo Integer e depois a converte para um caractere:

procedure TForm3.Button2Click(Sender: TObject);
var
  valor: Integer;
  letra: Char;
begin
  // vamos atribuir à variável valor o número 70
  valor := 70;

  // vamos converter este valor para um caractere
  // o resultado será a letra F
  letra := Chr(valor);

  // vamos mostrar o resultado
  ShowMessage(letra);
end;

Ao executar este código teremos o valor 70 convertido para a letra "F". Note que também é possível converter um valor inteiro em um caractere usando uma conversão forçada (cast) para o tipo Char. Veja:

procedure TForm3.Button2Click(Sender: TObject);
var
  valor: Integer;
  letra: Char;
begin
  // vamos atribuir à variável valor o número 70
  valor := 70;

  // vamos converter este valor para um caractere
  // o resultado será a letra F
  letra := Char(valor);

  // vamos mostrar o resultado
  ShowMessage(letra);
end;

Neste segundo trecho de código nós conseguimos o mesmo resultado do código anterior, mas, sem usar a função Chr().


C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como verificar o estado da tecla Num Lock em suas aplicações C# Windows Forms

Quantidade de visualizações: 8333 vezes
Em algumas situações nós precisamos verificar o estado da tecla Num Lock (que ativa ou desativa o teclado numérico), ou seja, precisamos saber se ela está ou não ativada. Em C# isso pode ser feito de duas formas:

1) A forma mais simples, oferecida no .NET Framework a partir da versão 2.0;
2) Usando código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API).

Vamos começar com a forma mais fácil, disponível no .NET Framework a partir da versão 2.0:

private void button1_Click(object sender, EventArgs e){
  // vamos verificar se a tecla Num Lock está ativada
  if(Control.IsKeyLocked(Keys.NumLock)){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}

Aqui nós usamos o método IsKeyLocked() da classe Control e fornecemos como argumento a constante NumLock, da enumeração Keys.

A segunda forma consiste em usar código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API). Para isso devemos seguir os seguintes passos:

a) Adicionar

using System.Runtime.InteropServices;

na seção de importações.

b) Adicionar o código abaixo no corpo da classe, como um método:

// Função com código não gerenciado que obtém o estado de uma
// determinada tecla

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, 
CallingConvention = CallingConvention.Winapi)]

public static extern short GetKeyState(int keyCode); 

c) Adicione o código abaixo no evento Click de um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o estado da tecla Num Lock como um boolean
  bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;

  // vamos verificar se a tecla Num Lock está ativada
  if(NumLock){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}



C# ::: Dicas & Truques ::: Tipos de Dados

Como usar os tipos de dados byte e sbyte da linguagem C#

Quantidade de visualizações: 15357 vezes
O tipo de dados byte é usado quando queremos armazenar valores inteiros na faixa de 0 a 255, ou seja, valores inteiros apenas positivos. Veja um exemplo de declaração e definição de uma variável deste tipo:

// uma variável do tipo byte
byte valor = 45;

O tipo byte (que possui 8 bits não sinalizados) é um apelido C# para o tipo System.Byte da plataforma .NET. Note que quando inicializamos uma variável do tipo byte com um literal inteiro, este valor é convertido implicitamente de int para byte. Se o valor sendo definido for maior que a faixa permitida, o programa não compilará. Veja:

// valor fora da faixa suportada pelo tipo byte
byte valor = 290;

Ao tentarmos compilar esta linha teremos o seguinte erro:

Constant value '290' cannot be converted to a 'byte'

Quando se trata de conversões implícitas, um valor do tipo byte pode ser convertido, sem a necessidade de cast, para os tipos short, ushort, int, uint, long, ulong, float, double ou decimal. Veja:

// variável do tipo byte
byte valor = 28;

// variável do tipo float
float valor2 = valor;

O caminho oposto não é verdade, ou seja, não é possível atribuir uma variável do tipo short à uma variável do tipo byte. Veja:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = valor;

// mensagem de erro de compilação
Cannot implicitly convert type 'short' to 'byte'. 
An explicit conversion exists (are you missing a cast?)

Esta conversão não é possível, ainda que o valor contido na variável do tipo short esteja na faixa aceitável pelo tipo byte. Neste caso, um cast (conversão explícita) se faz necessário:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = (byte)valor;

Resumindo, nenhum outro tipo de dados em C# pode ser convertido para o tipo byte implicitamente. Se quiser fazê-lo, use uma conversão explícita (cast).

O tipo sbyte, por sua vez, pode armazenar valores inteiros na faixa de -128 até 127 e possui 8 bits sinalizados. Este tipo é um apelido C# para o tipo de dados System.SByte da plataforma .NET. Veja um exemplo de seu uso:

static void Main(string[] args){
  // variável do tipo sbyte
  sbyte valor = -45;

  // exibe o resultado
  Console.WriteLine("O valor da variável é: " + valor);

  // pausa o programa
  Console.ReadKey();
}

Note que, a exemplo de byte, o tipo sbyte também é governado por algumas regras de conversão e atribuição de valores literais. Há uma conversão implícita de sbyte para os tipos short, int, long, float, double e decimal. A conversão de qualquer outro tipo de dados para o tipo sbyte só pode ser feita por meio de cast (conversão explícita).


C# ::: Namespace System.Windows.Forms ::: Formulários e Janelas

Como usar a classe Form em suas aplicação C# Windows Form

Quantidade de visualizações: 1287 vezes
A classe Form é usada para representar as janelas (formulários) ou caixas de diálogo que compõem a interface gráfica de uma aplicação Windows Forms. Veja sua posição na hierarquia de classes da plataforma.NET:

System.Object 
  System.MarshalByRefObject 
    System.ComponentModel.Component 
      System.Windows.Forms.Control 
        System.Windows.Forms.ScrollableControl 
          System.Windows.Forms.ContainerControl 
            System.Windows.Forms.Form


É importante conhecer algumas classes derivadas da classe Form. Entre estas classes podemos citar:

- System.ComponentModel.Design.CollectionEditor.CollectionForm
- System.Messaging.Design.QueuePathDialog
- System.ServiceProcess.Design.ServiceInstallerDialog
- System.Web.UI.Design.WebControls.CalendarAutoFormatDialog
- System.Web.UI.Design.WebControls.RegexEditorDialog
- System.Windows.Forms.Design.ComponentEditorForm
- System.Windows.Forms.PrintPreviewDialog
- System.Windows.Forms.ThreadExceptionDialog

Uma aplicação Windows Forms em C# é construida a partir de uma ou mais janelas. A classe Form permite criar formulários padrões, de ferramentas, sem bordas e flutuantes, cada um direcionado a uma determinada funcionalidade. É possível também usar a classe Form para criar caixas de diálogo modais.

Há ainda um tipo especial de janela (ou formulário) conhecido como formulário de interface de múltiplos documentos (MDI) que contêm outros formulários chamados de filhos (MDI child forms). Uma janela do tipo MDI pode ser criada definindo-se o valor true para a propriedade IsMdiContainer da classe Form. Os formulários filhos MDI são criados definindo-se o nome do formulário-pai para a propriedade MdiParent do formulário que atuará como filho.

Por meio das propriedades disponíveis na classe Form nós podemos determinar a aparência, tamanho, cor e os aspectos de gerenciamento da janela do formulário ou caixa de diálogo que estamos criando. A propriedade Text permite definir o título da janela. As propriedades Size e DesktopLocation permitem definir o tamanho e posição inicial da janela. A propriedade ForeColor define a cor do texto padrão de todos os componentes colocados no formulário. As propriedades FormBorderStyle, MinimizeBox e MaximizeBox permitem definirmos se o formulário poderá ser minimizado, maximizado ou redimensionado em tempo de execução.

Além das propriedades, podemos usar os métodos da classe Form. Por exemplo, podemos usar o método ShowDialog() para exibir um formulário como uma caixa de diálogo modal. Podemos também efetuar uma chamada ao método SetDesktopLocation() para posicionar o formulário em uma determinada região do desktop.

Os eventos disponíveis na classe Form permitem responder às ações realizadas no formulário. Podemos, por exemplo, usar o evento Activated para realizar operações tais como atualizar as informações exibidas nos controles do formulário quando este for ativado.

Se estiver usando o Visual Studio 2005, 2008 ou mais recente, o formulário inicial de sua aplicação Windows Forms C# já será exibido inicialmente seguinte os seguintes passos:

a) Vá no menu File -> New -> Project;
b) Em Project types selecione Visual C# -> Windows;
c) Em Templates selecione Windows Application;
d) Dê um nome para o projeto, escolha um local, um nome para a solução e clique OK. Imediatamente o projeto será criado e você já verá o formulário principal da aplicação.
e) Vá em View -> Toolbox. Clique e arraste alguns componentes para o formulário;
f) Pressione F5 e execute a aplicação.

Pronto! Agora é só verificar todas as dicas, truques e anotações para aprender e tirar proveito total da classe Form.


Python ::: Dicas & Truques ::: Lista (List)

Como inverter a ordem dos elementos em uma lista Python usando o método reverse()

Quantidade de visualizações: 17199 vezes
Inverter a ordem dos itens de um vetor ou lista é uma das tarefas mais corriqueiras durante o trabalho de programação. Na linguagem Python nós podemos inverter os elementos de uma list usando o método reverse(), já embutido na linguagem.

Este método modifica a lista original. Veja um exemplo de seu uso:

def main():
  # cria uma lista de inteiros
  valores = [2, 5, 12, 2, 3, 32, 18]

  # exibe a lista na ordem original
  print(valores)

  # inverte a lista
  valores.reverse()

  # exibe a lista na ordem invertida
  print(valores)
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

[2, 5, 12, 2, 3, 32, 18]
[18, 32, 3, 2, 12, 5, 2]


Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar um vetor de inteiros em ordem decrescente em Java

Quantidade de visualizações: 21101 vezes
Nesta dica mostrarei como é possível ordenar um array (vetor) de ints em ordem decrescente usando o método sort() da classe Arrays e um método inverter() personalizado. É claro que há várias outras formas de se conseguir realizar esta tarefa. Espero que esta seja mais uma técnica adicionada ao seu arsenal.

Veja o código Java completo:

package arquivodecodigos;
 
import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos declarar e construir um vetor de 5 inteiros
    int[] valores = new int[5];
 
    // inicializa os elementos do array
    valores[0] = 23;
    valores[1] = 65;
    valores[2] = 2;
    valores[3] = 87;
    valores[4] = 34;
	
    // ordena os valores
    Arrays.sort(valores);
    System.out.println("Ordenado em ordem crescente:");
    for(int valor : valores){
      System.out.print(valor + "  ");  
    }
    
    // vamos inverter o vetor agora
    inverter(valores);
    // exibe os valores dos elementos do array
    // usando o laço for melhorado
    System.out.println("\nOrdenado em ordem decrescente:");
    for(int valor : valores){
      System.out.print(valor + "  ");  
    }
  
    System.out.println("\n"); 
    System.exit(0);
  }

  // método que recebe um array e inverte a ordem
  // de seus elementos
  public static void inverter(int[] b){
    int esquerdo = 0;
    int direito = b.length-1;
  
    while (esquerdo < direito) {
      int temp = b[esquerdo]; 
      b[esquerdo]  = b[direito]; 
      b[direito] = temp;
     
      esquerdo++;
      direito--;
    }
  } 
}

Ao executar este código Java nós teremos o seguinte resultado:

Ordenado em ordem crescente:
2 23 34 65 87
Ordenado em ordem decrescente:
87 65 34 23 2


Java ::: Coleções (Collections) ::: Set (Conjunto)

Java Collections - Como usar a interface Set em seus códigos Java

Quantidade de visualizações: 5178 vezes
A interface Set estende a interface Collection mas não adiciona novos métodos ou constantes. Em vez disso, esta interface define que uma instância de Set não contenha elementos duplicados. Esta responsabilidade é transferida para as classes que implementam a interface.

A classe abstrata AbstractSet é uma classe de conveniência que herda da classe também abstrata AbstractCollection e implementa a interface Set. A classe AbstractSet fornece implementações concretas para os métodos equals() e hashCode(). Estes métodos permitem a funcionalidade da não permissão de elementos duplicados nos conjuntos.

As classes concretas mais conhecidas da interface Set são:

HashSet - Esta classe é implementada em cima de uma tabela hash, ou seja, um array (matriz) na qual os elementos são armazenados em posições calculadas de acordo com o seu conteúdo. Uma característica interessante de HashSet é que os elementos raramente são retornados na mesma ordem na qual foram inseridos.

LinkedHashSet - Esta classe estende a classe HashSet com uma implementação de lista ligada (linked list) que permite a ordenação dos elementos no conjunto.

TreeSet - Esta classe é uma classe concreta que implementa a interface SortedSet. A interface SortedSet é uma sub-interface de Set que garante que os elementos no conjunto estejam ordenados. Além disso, esta interface fornece os métodos first() e last() para acessar o primeiro e o último elemento do conjunto. Há ainda os métodos headSet(toElement) e tailSet(fromElement) para retornar uma faixa do conjunto cujos elementos sejam "menores" que toElement e "maiores" que fromElement.

Seja qual for a implementação de Set que você queira usar, é sempre uma boa idéia codificar em cima da interface. Isso facilita a troca de HashSet por TreeSet ou vice-versa sem grandes modificações no seu código.

Veja um exemplo no qual usamos a classe concreta HashSet para representar um conjunto de cinco strings únicas:

package estudos;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar uma instância da classe HashSet
    Set<String> conjunto = new HashSet<>();
    
    // vamos inserir cinco elementos no Set
    conjunto.add("Açucar");
    conjunto.add("Macarrão");
    conjunto.add("Feijão");
    conjunto.add("Carne");
    conjunto.add("Maionese");
    
    // vamos exibir os elementos inseridos
    Iterator iterator = conjunto.iterator();
    while(iterator.hasNext()){
      System.out.println(iterator.next());
    }
  }
}


Ao executar este trecho de código teremos um resultado parecido com:

Macarrão
Feijão
Carne
Açucar
Maionese

Note que raramente os elementos serão exibidos na ordem na qual eles foram inseridos. Experimente agora trocar a linha:

Set<String> conjunto = new HashSet<>();

por

Set<String> conjunto = new LinkedHashSet<>();

Execute o código novamente e verá que agora os elementos são exibidos na mesma ordem que foram inseridos.


VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de VB.NET - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VB.NET

Quantidade de visualizações: 494 vezes
Pergunta/Tarefa:

Escreva um programa VB.NET que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado:

' declara, constrói e inicializa um vetor de 10 inteiros
Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}
Sua saída deverá ser parecida com:

Informe um valor: 4
O valor foi encontrado: 3 vezes

Informe um valor: 8
O valor foi encontrado: 1 vezes

Informe um valor: 3
O valor foi encontrado: 0 vezes
Resposta/Solução:

Veja a resolução comentada deste exercício usando VB.NET:

Imports System

Module Program
  ' função principal do programa VB.NET
  Sub Main(args As String())
    ' declara, constrói e inicializa um vetor de 10 inteiros
    Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}

    ' vamos ler um valor inteiro
    Console.Write("Informe um valor: ")
    Dim pesquisa As Integer = Int32.Parse(Console.ReadLine())

    ' vamos verificar quantas vezes o valor informado está
    ' contido no vetor
    Dim repeticoes As Integer = 0
    For i As Integer = 0 To valores.Length - 1
      If valores(i) = pesquisa Then
        ' encontrou? vamos contar esta ocorrência
        repeticoes = repeticoes + 1
      End If
    Next

    ' vamos mostrar o resultado
    Console.WriteLine("O valor foi encontrado: " &
      repeticoes & " vezes")

    Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub

End Module


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 34 usuários muito felizes estudando em nosso site.