Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Como encontrar o par de elementos em um vetor que, somados, resulte no número informado - Solução usando força-bruta - Desafio de Programação Resolvido em Java

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

Dado o vetor:

// vamos declarar um vetor não ordenado de 8 ints
int numeros[] = {7, 12, 4, 5, 3, 1, 8, 6};
Peça para o usuário informar um número inteiro e encontre no vetor o par de elementos que, somados, resulte no número informado pelo usuário.

Há várias formas de se resolver esse problema. Nesse exercício nós colocamos a solução usando força-bruta.

Sua saída deverá ser parecida com:

O vetor criado é: [7, 12, 4, 5, 3, 1, 8, 6]
Informe um número: 10
Par encontrado: (7, 3)
Resposta/Solução:

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

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

package estudos;

import java.util.Arrays;
import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos declarar um vetor não ordenado de 8 ints
    int numeros[] = {7, 12, 4, 5, 3, 1, 8, 6};
    
    // vamos mostrar o vetor
    System.out.println("O vetor criado é: " +
      Arrays.toString(numeros));
    
    // vamos pedir para o usuário informar um valor
    Scanner entrada = new Scanner(System.in);
    System.out.print("Informe um número: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // vamos encontrar o par de elementos que resulte em
    // uma soma igual ao número informado pelo usuário
    encontrarPar(numeros, numero);
    
    // vamos adicionar uma quebra de linha
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e um número
  // representando a soma que devemos encontrar em dois pares
  // de elementos do vetor
  public static void encontrarPar(int[] numeros, int numero){
    boolean encontrado = false; // para registrar se encontramos
    
    // vamos percorrer todos os elementos do vetor, exceto
    // o último
    for (int i = 0; i < numeros.length - 1; i++){
      // no laço interno nós varremos desde o elemento
      // no índice i até o último elemento      
      for (int j = i + 1; j < numeros.length; j++){
        // encontramos o par de elementos que retorna a soma
        // que estamos procurando?
        if (numeros[i] + numeros[j] == numero){
          System.out.printf("Par encontrado: (%d, %d)", 
            numeros[i], numeros[j]);
          encontrado = true;
          break; // sai do laço interno
        }
      }
      
      // vamos sair do laço externo também caso o par
      // já tiver sido encontrado no laço interno
      if(encontrado){
        break;
      }
    }
 
    // o par não foi encontrado?
    if(!encontrado){    
      System.out.println("O par de elementos não foi encontrado.");
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercícios Resolvidos de Java - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa

Quantidade de visualizações: 7296 vezes
Exercício Resolvido de Java - POO - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa

Pergunta/Tarefa:

Escreva uma classe Java chamada Temperatura que converterá graus Celsius em Fahrenheit e vice-versa. Esta classe não possuirá nenhuma variável, nem de instância nem de classe, somente dois métodos, que deverão ter as seguintes assinaturas:

double celsiusParaFahrenheit(double)
double fahrenheitParaCelsius(double)
Note que os dois métodos recebem um argumento do tipo double e retorna um valor double.

Para facilitar a resolução, seguem abaixo as regras de conversão:

Celsius para Fahrenheit: F = (1,8 x C) + 32
Fahrenheit para Celsius: C = (F - 32) / 1,8

Depois de escrever a classe Temperatura, use o método main() da classe principal da aplicação Java para testar suas funcionalides.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

Código para a classe Temperatura.java:

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

package arquivodecodigos;

public class Temperatura {
  // converte de Celsius para Fahrenheit
  public double celsiusParaFahrenheit(double c){
    double f = (1.8 * c) + 32;
    return f;  
  }
  
  // converte de Fahrenheit para Celsius
  public double fahrenheitParaCelsius(double f){
    double c = (f - 32) / 1.8;  
    return c;  
  }    
}

Código para a classe Principal.java:

----------------------------------------------------------------------
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 Principal{ 
  public static void main(String args[]){ 
    // vamos criar um objeto da classe Temperatura
    Temperatura t = new Temperatura();
    
    // vamos fazer a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // primeiro de Celsius para Fahrenheit
    System.out.print("Informe o grau em Celsius: ");
    double celsius = Double.parseDouble(entrada.nextLine());
    System.out.println(celsius + " graus Celsius equivale a " +
      t.celsiusParaFahrenheit(celsius) + " graus Fahrenheit.");
    
    // agora de Fahrenheit para Celsius
    System.out.print("Informe o grau em Fahrenheit: ");
    double fahrenheit = Double.parseDouble(entrada.nextLine());
    System.out.println(celsius + " graus Fahrenheit equivale a " +
      t.fahrenheitParaCelsius(fahrenheit) + " graus Celsius.");
  } 
}



Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como verificar se um diretório já existe em Java usando o método exists() da classe File

Quantidade de visualizações: 14754 vezes
Em algumas situações nós precisamos verificar se um determinado diretório existe antes de efetuarmos alguma tarefa, talvez gravar um novo arquivo ou listar os arquivos contidos em um diretório. Para isso nós podemos o método exists() da classe File da linguagem Java. A classe File faz parte do pacote java.io.

A função exists() da classe File retorna um valor true se o diretório existir, e false em caso contrário. Veja um exemplo de seu uso:

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

package arquivodecodigos;
 
import java.io.File;

public class Estudos{
  public static void main(String args[]){
    // Este exemplo mostra como verificar a existência de um
    // diretório usando Java
    File diretorio = new File("c:\\java");
        
    // vamos checar se o diretório existe
    if(diretorio.exists()){
      System.out.println("Diretorio ja existe no sistema");
    }
    else{
      System.out.println("Diretorio ainda nao existe no sistema");
    }
  }
} 

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

O diretório já existe no sistema.


Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando Java - Geometria Analítica e Álgebra Linear usando Java

Quantidade de visualizações: 1712 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

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

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código Java que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

----------------------------------------------------------------------
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 valores x e y
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular a norma do vetor
    double norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
    
    // mostra o resultado
    System.out.println("A norma do vetor é: " + norma);
  }
}

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

Informe o valor de x: 7
Informe o valor de y: 6
A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


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

Vazão de projeto

O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica.

Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado.

Dados: 0,025 (cobertura vegetal rasteira).

A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado.

B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado.

C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado.

D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado.

E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado.
Verificar Resposta Estudar Cards Todas as Questões

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

Vazão de projeto

O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica.

Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado.

Dados: 0,025 (cobertura vegetal rasteira).

A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado.

B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado.

C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado.

D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado.

E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado.
Verificar Resposta Estudar Cards Todas as Questões

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

Fenômeno de Transportes

De uma grande barragem, parte uma canalização de 250mm de diâmetro, de onde a água passa para a atmosfera sob a forma de jato. A vazão deste jato é 360L/s. Calcular a velocidade Vj do jato e a altura (H) na barragem. Considere que não há perda de energia no processo e que a velocidade de decaimento do nível da barragem é nula.



A) Vj = 7,33m/s e H = 2,74m.

B) Vj = 1,83m/s e H = 0,17m.

C) Vj = 2,46m/s e H = 0,31m.

D) Vj = 7,33m/s e H = 0,37m,

E) Vj =7,33 X 10-3m/s e H = 2,74 X 10-6m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Fases de uma obra

Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de:

A) Diário de obra.

B) Cronograma físico-financeiro.

C) Gráfico de Gantt.

D) Planejamento.

E) Cronograma físico.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

A linguagem JavaScript diferencia letras maiúsculas de letras minúsculas (case-sensitive)?

A) Sim

B) Não
Verificar Resposta Estudar Cards Todas as Questões

Desafios, 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á 82 usuários muito felizes estudando em nosso site.