Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresCódigo-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Delphi

Quantidade de visualizações: 3149 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Delphi.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem Delphi:

procedure TForm2.Button1Click(Sender: TObject);
var
  a, b, c: Real;
begin
  c := 36.056; // medida da hipotenusa
  b := 30; // medida do cateto adjascente

  // agora vamos calcular o comprimento da cateto oposto
  a := sqrt(sqr(c) - sqr(b));

  // e mostramos o resultado
  Edit1.Text := 'A medida do cateto oposto é: ' +
    FloatToStr(a);
end;

Veja que o cálculo é feito a partir do evento Click de um botão Button1 e o resultado é apresentado na propriedade Text de uma caixa de texto Edit1.

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

A medida do cateto oposto é: 20,0008783807112

Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada.


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

Como adicionar itens ao final de um array em Ruby usando a função push()

Quantidade de visualizações: 8153 vezes
Em algumas situações nós precisamos adicionar novos elementos ao final de um array em Ruby. Para isso nós podemos usar a função push() do objeto Array.

Veja como isso pode ser feito no código abaixo:

# vamos criar um array de nomes
nomes = []

# Lê entrada até que o valor -1 seja
# fornecido
loop do
  print "Digite um nome (-1 para sair): "
  nome = gets.chomp
  
  # vamos adicionar este nome no final do
  # array
  if nome != "-1"
    nomes.push(nome) # adiciona o nome ao array
  end
  
  # vamos sair do laço se o valor for "-1"
  if nome == "-1"
    break
  end
end

# Exibe todos os valores do array
puts "\nOs nomes fornecidos foram:"
nomes.each do | nome |
  puts nome
end

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

Digite um nome (-1 para sair): MARCELO
Digite um nome (-1 para sair): JOANA
Digite um nome (-1 para sair): OSMAR
Digite um nome (-1 para sair): JAQUELINE
Digite um nome (-1 para sair): -1

Os nomes fornecidos foram:
MARCELO
JOANA
OSMAR
JAQUELINE


C# ::: Windows Forms ::: DataGridView

Como usar o controle DataGridView do C# Windows Forms

Quantidade de visualizações: 19303 vezes
A classe DataGridView permite a exibição de dados em formato tabular, ou seja, linhas e colunas de informação. Esta classe substitui a classe DataGrid, presente no Windows Forms 1.0, com a adição de novas funcionalidades. 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.DataGridView


É possível usar um controle DataGridView para exibir dados com ou sem uma fonte de dados (data source). Sem a fonte de dados, podemos criar linhas e colunas que contém dados e adicioná-las diretamente ao DataGridView. Alternativamente, podemos definir valores para as propriedades DataSource e DataMember. Isso liga o DataGridView a uma fonte de dados e automaticamente já preenche suas linhas e colunas com os dados desejados.

O processo de incluir um DataGridView em seus formulários é muito simples. Basta localizar no Toolbox a seção Data. Clique no componente DataGridView e arraste-o para a posição desejada no formulário. Imediatamente você será perguntado se deseja informar a fonte de dados para o controle.

Veja um trecho de código no qual adicionamos três colunas e três linhas (com conteúdo) em um DataGridView sem fonte de dados:

private void button2_Click(object sender, EventArgs e){
  // vamos adicionar três colunas no DataGridView
  dataGridView1.Columns.Add("cidade", "Cidade");
  dataGridView1.Columns.Add("estado", "Estado");
  dataGridView1.Columns.Add("populacao", "População");

  // vamos adicionar três linhas
  dataGridView1.Rows.Add("Goiânia", "GO", "3.453,39");
  dataGridView1.Rows.Add("Cuiabá", "MT", "1.876,12");
  dataGridView1.Rows.Add("Curitiba", "PR", "5.346,98");
}



Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Java Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)

Quantidade de visualizações: 5040 vezes
A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados.

A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação.

A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas.

Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição.

Vamos ver a implementação na linguagem Java agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:

package arquivodecodigos;
 
public class Estudos{
  // método que permite ordenar o vetor de inteiros
  // usando a ordenação Insertion Sort
  public static void insertionSort(int[] vetor){
    // percorre todos os elementos do vetor começando
    // pelo segundo elemento
    for(int i = 1; i < vetor.length; i++){
      int atual = vetor[i]; // o valor atual a ser inserido
      // começa a comparar com a célula à esquerda de i
      int j = i - 1;
      
      // enquanto vetor[j] estiver fora de ordem em relação
      // a atual
      while((j >= 0) && (vetor[j] > atual)){
        // movemos vetor[j] para a direita e decrementamos j
        vetor[j + 1] = vetor[j];
        j--;
      }
      
      // colocamos atual em seu devido lugar
      vetor[j + 1] = atual;
    }
  }  
    
  public static void main(String args[]){
    // vamos criar um vetor com 9 elementos
    int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
    
    // exibimos o vetor na ordem original
    System.out.println("Ordem original:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");  
    }
    
    // vamos ordenar o vetor agora
    insertionSort(valores);
    
    // exibimos o vetor ordenado
    System.out.println("\n\nOrdenado:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");  
    }
  }
}

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

Sem ordenação:

4 6 2 8 1 9 3 0 11

Ordenada usando Insertion Sort:

0 1 2 3 4 6 8 9 11


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 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
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

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


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 Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


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