Você está aqui: Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a distância entre dois pontos no plano em Java - Java para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 5987 vezes
Como calcular a Distância Euclidiana entre dois pontos usando Java.

Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em Java, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço).

Comece analisando a imagem abaixo:



Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y).

Veja a fórmula:

\[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\]

Agora, jogando os valores dos dois pontos da fórmula nós teremos:

\[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\]

Que resulta em 6,32 (aproximadamente).

E agora veja o código Java completo que lê as coordenadas dos dois pontos e mostra a distância entre eles:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler os dados do primeiro ponto
    System.out.print("Informe o x do primeiro ponto: ");
    double x1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o y do primeiro ponto: ");
    double y1 = Double.parseDouble(entrada.nextLine());
    
    // vamos ler os dados do segundo ponto
    System.out.print("Informe o x do segundo ponto: ");
    double x2 = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o y do segundo ponto: ");
    double y2 = Double.parseDouble(entrada.nextLine());
    
    // vamos obter a distância entre eles
    double distancia = distancia2d(x1, y1, x2, y2);
    System.out.println("Distância entre os dois pontos: " +
      distancia);
  }
  
  // função que permite calcular a distância
  // entre dois pontos no plano (R2)
  public static double distancia2d(double x1, double y1,
                                  double x2, double y2){
    double a = x2 - x1;
    double b = y2 - y1;
    double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
    return c;
  }
}

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

Informe o x do primeiro ponto: 3
Informe o y do primeiro ponto: 6
Informe o x do segundo ponto: 9
Informe o y do segundo ponto: 4
Distância entre os dois pontos: 6.324555320336759

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Java - Um programa que lê a altura e o sexo de uma pessoa e informa seu peso ideal

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

Escreva um programa Java que recebe a altura (como double) e o sexo (como um char) de uma pessoa e que calcule e mostre o seu peso ideal. A fórmula a ser utilizada é:

Homens: (72.7 x altura) - 58;
Mulheres: (62.1 x altura) - 44.7

Sua saída deverá ser parecida com:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar a altura e o sexo da pessoa
    System.out.print("Informe sua altura (ex: 1.74): ");
    double altura = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o sexo (M ou F): ");
    char sexo = entrada.nextLine().charAt(0);
    double pesoIdeal;
    
    // vamos testar o sexo da pessoa
    if(Character.toUpperCase(sexo) == 'M'){ // masculino
      pesoIdeal = (72.7 * altura) - 58;  
    }
    else{ // feminino
      pesoIdeal = (62.1 * altura) - 44.7;  
    }
    
    // vamos mostrar o resultado
    System.out.println("Seu peso ideal é: " + pesoIdeal);
    
    System.out.println("\n");
  }
}



Java ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é par ou ímpar em Java

Quantidade de visualizações: 44927 vezes
Boa parte das listas de exercícios de Java básico contém um enunciado pedindo para o seu programa ler um número inteiro e informar se o mesmo é par ou ímpar. Esse teste é feito usando-se o operador de módulo (%) da linguagem Java.

Este operador retorna o resultado de uma divisão por inteiros, ou seja, se dividirmos 5 por 2, o resultado da divisão inteira será dois e o resto 1, indicando que o número informado não é par.

Veja o código completo para um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    System.out.print("Informe um valor inteiro: ");
    int num = input.nextInt();

    if(num % 2 == 0){
      System.out.print("Você informou um numero par");
    }
    else{
      System.out.print("Você informou um numero impar");
    }
    
    System.exit(0);
  }
}

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

Informe um valor inteiro: 5
Você informou um numero impar


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Como calcular a potência de um número usando recursividade em Java - Funções recursivas em Java

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

A potenciação ou exponenciação é a operação de elevar um número ou expressão a uma dada potência. Escreva um método Java recursivo que recebe uma base e um expoente e eleva a base ao expoente.

Seu método deverá possuir a seguinte assinatura:

public static int potencia(int base, int expoente){
  // sua implementação aqui
}
Como melhoria na resolução, você pode tratar o caso no qual o expoente é igual a 0 (na resolução abaixo deixei esta possibilidade em aberto).

Sua saída deverá ser parecida com:

Informe a base: 5
Informe o expoente: 3
A base 5 elevada ao exponente 3 é 125
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // solicita a base
    System.out.print("Informe a base: ");
    // lê a base
    int base = Integer.parseInt(entrada.nextLine());
    // solicita o expoente
    System.out.print("Informe o expoente: ");
    // lê o expoente
    int expoente = Integer.parseInt(entrada.nextLine());
    
    // mostra o resultado
    System.out.print("A base " + base + " elevada ao exponente " +
      expoente + " é " + potencia(base, expoente));
    System.out.println("\n");
  }
  
  // método recursivo que eleva uma base a um determinado expoente
  public static int potencia(int base, int expoente){
    // a recursivida deve parar quando o expoente for igual a 1
    if(expoente == 1){
      return base;
    }
    else{
      // efetua uma nova chamada recursiva fornecendo o expoente - 1
      return base * potencia(base, expoente - 1);
    }
  }
}



Vamos testar seus conhecimentos em

Vigas a flexão simples: seções retangulares

O objetivo do dimensionamento de estruturas de concreto é obter segurança e economia. Muitas vezes, o projeto arquitetônico não possibilita vigas muito altas para grandes vãos. Uma solução adotada para esse tipo de situação, quando o concreto da seção da viga mais solicitada pode não resistir ao esforço de compressão, é adotar armadura dupla.

Considere que uma viga V (20x30) tem uma solicitação de momento fletor de 65,20kN.m. O concreto utilizado nessa viga tem resistência de 30MPa e a agressividade ambiental do local é classe II (considere que é uma viga pouco solicitada).

Das alternativas a seguir, assinale aquela que apresenta a área de aço da armadura comprimida dessa viga.

A) 1,48cm2.

B) 1,94cm2.

C) 5,48cm2.

D) 7,83cm2.

E) 9,77cm2.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Tipos de Escoamentos

Para um conduto cilíndrico de raio R, calcular a área molhada, o perímetro molhado e o raio hidráulico em duas situações: (1) conduto completamente cheio de água e (2) conduto 50% preenchido. Identificar o escoamento que ocorre em cada uma das situações e qual escoamento é mais influenciado pelas paredes do contorno sólido.

A) A1 = πR2; PM1 = 2πR, RH1 = R, escoamento em conduto forçado
A2 = (πR2)/2; PM2 = πR, RH2 = R/2, escoamento à superfície livre.

O escoamento em 2 é o mais influenciado pelas paredes, pois o RH é menor.

B) A1 = πR2; PM1 = 2πR, RH1 = R/2, escoamento em conduto forçado
A2 = (πR2)/2; PM2 = πR, RH2 = R/2, escoamento à superfície lívre.

Ambos os escoamentos possuem a mesma influência, pois o valor de RH é igual nos dois casos.

C) A1 = πR2; PM1 = 2πR, RH1 = R, escoamento em conduto forçado
A2 = (πR2)/2; PM2 = πR, RH2 = R/2, escoamento à superfície livre.

O escoamento em 1 é o mais influenciado pelas paredes, pois o RH é maior.

D) A1 = πR2; PM1 = 2πR, RH1 = R/2, escoamento em conduto forçado
A2 = (πR2)/2; PM2 = πR, RH2 = R/2, escoamento à superfície livre.

O escoamento em 2 é o mais influenciado pelas paredes, pois a A2 é menor.

E) A1 = πR2; PM1 = 2πR, RH1 = R/2, escoamento à superfície livre
A2 = (πR2)/2; PM2 = πR, RH2 = R/2, escoamento em conduto forçado.

Ambos os escoamentos possuem a mesma influência, pois o valor de RH é igual nos dois casos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil dos prepostos e preponentes

De acordo com as definições de preposto gerente, assinale a alternativa correta.

A) O gerente é autorizado a praticar todos os atos necessários ao exercício dos poderes que lhe foram outorgados, mesmo que a lei exija poderes especiais para tal.

B) O gerente responde sozinho pelos atos praticados em seu nome e em nome do preponente.

C) O preponente pode estar em juízo em nome do gerente, pelas obrigações resultantes do exercício da sua função.

D) Considera-se gerente o preposto permanente no exercício da empresa, em sua sede, filial ou agência.

E) Os gerentes são responsáveis pelos atos dos preponentes, praticados nos seus estabelecimentos e relativos à atividade da empresa, ainda que não autorizados por escrito.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

(Udesc 2011) Segundo a Agência Nacional de Energia Elétrica (Aneel), existem no Brasil oito bacias hidrográficas. Assinale a alternativa correta em relação a essas bacias.

A) As bacias do Paraná e do Uruguai formam a Bacia Platina. Esta última drena somente 5% do território nacional, e seu potencial hidrelétrico instalado é pequeno e inexpressivo.

B) A Bacia do Rio São Francisco é a segunda maior bacia brasileira, e seu rio principal é totalmente navegável.

C) A maior bacia é a do rio Amazonas, que recebe afluentes dos dois lados e possui o maior volume de água do planeta.

D) A Bacia do Rio Tocantins recebe seus dois principais afluentes: o Araguaia e o Tietê. Possui a segunda maior usina do país, mas seu potencial hidrelétrico é o menor de todas as bacias hidrográficas brasileiras.

E) A Bacia do Atlântico Norte/Nordeste é a terceira maior bacia hidrográfica do Brasil. Seus rios principais são o Madeira e o Juruá.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Introdução à Ética

Entre os estudos proeminentes sobre a definição da ética, da moral, sua presença e importância entre os seres humanos racionalmente organizados em sistemas sociais, as sociedades, estão as análises e reflexões dos filósofos da Grécia Antiga. Embora cada um, entre expoentes como Platão, Aristóteles e Sócrates, tivesse uma proposta de interpretação para a moral e para a ética, é possível dizer que há uma percepção comum: a de que a "A ética é a morada do homem".

O que isso significa?

A) A moradia física para o grego era a base da sociedade, em torno da qual circundavam os demais significados socialmente apreendidos, então, ser ético era ser bom.

B) Morada é um recanto simples onde o homem pode viver com honestidade, e ser uma pessoa ética é ser honesto.

C) O sentido de morada era conceito existencial, confiado ao cidadão que, vivendo conforme normas e leis existentes, teria a segurança de uma vida ética.

D) Assim como o mito da caverna, a lenda da morada também é falsa e se destina à formação de exemplos aos estudantes de filosofia da atualidade.

E) Aristóteles escreveu essa máxima pensando em todos os habitantes da Grécia, que exibiam a igualdade de comportamento, pensamento e opinião política.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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