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 JavaQuantidade 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}; 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) 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-versaQuantidade 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) 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 FileQuantidade 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 JavaQuantidade 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 |
PHP - Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP |
Códigos 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 |
Controle 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 |