Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Escreva um programa que solicite seis números do tipo inteiro ao usuário e os armazene em um vetor, depois - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 863 vezes |
Pergunta/Tarefa: Escreva um programa que solicite seis números do tipo inteiro ao usuário e os armazene em um vetor, depois o programa deverá apresentar na tela os números na ordem inversa do qual foram digitados. Sua saída deverá ser parecida com: Informe o 1.o número inteiro: 7 Informe o 2.o número inteiro: 3 Informe o 3.o número inteiro: 4 Informe o 4.o número inteiro: 1 Informe o 5.o número inteiro: 2 Informe o 6.o número inteiro: 9 Os números na ordem inversa são: 9 2 1 4 3 7 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos declarar um vetor de 6 inteiros int numeros[] = new int[6]; // vamos fazer a leitura dos 6 números inteiros for(int i = 0; i < 6; i++){ System.out.print("Informe o " + (i + 1) + ".o número inteiro: "); numeros[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos mostrar os números lidos na ordem inversa System.out.println("\nOs números na ordem inversa são:\n"); for(int i = 5; i >= 0; i--){ System.out.print(numeros[i] + " "); } } } |
![]() |
Java ::: Classes e Componentes ::: JList |
Java Swing para iniciantes - Como adicionar itens a uma JList em tempo de execuçãoQuantidade de visualizações: 22696 vezes |
Este exemplo mostra como inserir itens em uma JList do Java Swing em tempo de execução. O valor a ser inserido é informado em um JTextField. Veja que estamos usando a classe DefaultListModel e seu método addElement() para adicionar os novos itens. Veja a janela JFrame e os componentes usados para exemplificar esta funcionalidade: ![]() E agora veja o código Java Swing completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JList lista; JTextField campo; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria um novo DefaultListModel DefaultListModel modelo = new DefaultListModel(); // Cria a JList lista = new JList(); // Atribui o DefaultListModel à JList lista.setModel(modelo); // Um botão que permite adicionar itens na JList JButton btn = new JButton("Adicionar na JList"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String valor = campo.getText(); if(valor.length() != 0){ ((DefaultListModel)(lista.getModel())) .addElement(valor); campo.setText(""); campo.requestFocus(); } } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Cria um JTextField e o adiciona à janela campo = new JTextField(10); c.add(campo); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informadoQuantidade de visualizações: 1154 vezes |
Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar matrizes: Dica: Use um objeto da classe Scanner para obter a entrada do usuário. Resposta/Solução: Como a solução deste exercício depende de valores informados pelo usuário, a classe Scanner deverá ser usada. Desta forma, você deverá importá-la, usando a linha: import java.util.Scanner; ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public static void main(String[] args){ // para este exercício você deverá importar a classe // Scanner. Ela está no pacote java.util.*; // vamos construir um objeto da classe Scanner para ler a // entrada do usuário Scanner entrada = new Scanner(System.in); int valor; // guarda o valor lido int maior = 0, menor = 0; // variáveis que guardarão o maior e o menor valor lido // vamos pedir ao usuário que informe 10 valores inteiros for(int i = 0; i < 10; i++){ System.out.print("Informe o " + (i + 1) + "º valor: "); valor = Integer.parseInt(entrada.nextLine()); // esta é a primeira iteração do laço? se for vamos assumir que o // maior e menor valor lido são o primeiro valor informado if(i == 0){ maior = valor; menor = valor; // poderia ser escrito assim: //maior = menor = valor; } else{ // não é a primeira iteração // vamos verificar se é maior que o valor atual da variável maior if(valor > maior){ maior = valor; } // vamos verificar se é menor que o valor atual da variável menor if(valor < menor){ menor = valor; } } } // vamos exibir o maior e o menor valor lido System.out.println("\nO maior valor lido foi: " + maior); System.out.println("O menor valor lido foi: " + menor); } |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como converter de hexadecimal para decimal usando o método parseInt() da classe Integer da linguagem JavaQuantidade de visualizações: 13932 vezes |
Em algumas situações nós precisamos converter um valor hexadecimal em um valor decimal. Isso pode ser feito por meio do método parseInt() da classe Integer do Java. Tudo que precisamos fazer é fornecer o valor 16 como segundo argumento na chamada desse método. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ String hex = "F"; // efetua a conversão de hexadecimal para // decimal int decimal = Integer.parseInt(hex, 16); // exibe o resultado System.out.println(hex + " em decimal é: " + decimal); System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: O hexadecimal F em decimal é 15 |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros compostos e montante usando a linguagem Java - Fórmula de juros compostos em Java - RevisadoQuantidade de visualizações: 20765 vezes |
O regime de juros compostos é o mais comum no sistema financeiro e, portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte. Chamamos de capitalização o momento em que os juros são incorporados ao principal. Assim, após três meses de capitalização, temos: 1º mês: M = P .(1 + i) 2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) 3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i) Simplificando, obtemos a fórmula: M = P . (1 + i)^n Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses. Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período: J = M - P Vejamos um exemplo: Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros? Veja o código Java para a resolução: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.03; int meses = 3; double montante = principal * Math.pow((1 + taxa), meses); double juros = montante - principal; System.out.println("O total de juros a ser pago é: " + juros); System.out.println("O montante a ser pago é: " + montante); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: O total de juros a ser pago é: 185.45400000000018 O montante a ser pago é: 2185.454 É claro que uma formatação para moeda deixaria os valores mais bonitos. Uma outra aplicação interessante é mostrar mês a mês a evolução dos juros. Veja o código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.03; int meses = 3; double anterior = 0.0; for(int i = 1; i <= meses; i++){ double montante = principal * Math.pow((1 + taxa), i); double juros = montante - principal - anterior; anterior += juros; System.out.println("Mês: " + i + " - Montante: " + montante + " - Juros: " + juros); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Mês: 1 - Montante: 2060.0 - Juros: 60.0 Mês: 2 - Montante: 2121.7999999999997 - Juros: 61.79999999999973 Mês: 3 - Montante: 2185.454 - Juros: 63.65400000000045 Esta dica foi revisada e testada no Java 8. |
Java ::: Dicas & Truques ::: Data e Hora |
Datas e horas em Java - Como obter o dia do mês usando as constantes DATE e DAY_OF_MONTH da classe CalendarQuantidade de visualizações: 9097 vezes |
Em algumas situações pode ser necessário obtermos o dia do mês para uma determinada data. Nestes casos podemos usar o método get() em combinação com as constantes DATE e DAY_OF_MONTH da classe Calendar. Estas constantes retornam um valor inteiro na faixa de 1 a 31. Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String args[]){ // vamos obter a data e hora atual Calendar agora = Calendar.getInstance(); // vamos obter o dia do mês System.out.println("O dia do mês é: " + agora.get(Calendar.DAY_OF_MONTH)); } } Ao executarmos este código nós teremos o seguinte resultado: O dia do mês é: 26 |
Java ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como usar o método format() da classe NumberFormat do Java para formatar um valor float ou double de acordo com as configurações regionais - RevisadoQuantidade de visualizações: 11131 vezes |
Nesta dica mostrarei como usar o método format() da classe NumberFormat da linguagem Java. Esta classe está no pacote java.text e é usada para a formatação e análise de valores numéricos. Note como usei o método getInstance() sem argumentos. Isso nos permite retornar uma instância de NumberFormat de acordo com as configurações regionais da máquina na qual o código está sendo executado. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import java.text.NumberFormat; public class Estudos{ public static void main(String[] args){ // vamos double a ser formatado double valor = 1234567.89; // vamos obter uma instância de acordo com as configurações // regionais NumberFormat nf = NumberFormat.getInstance(); // e agora usamos o método format() para formatar String numFormatado = nf.format(valor); // exibimos o valor original System.out.println("Sem formatação: " + valor); // com formatação System.out.println("Com formatação: " + numFormatado); } } Ao executar este código nós teremos o seguinte resultado: Sem formatação: 1234567.89 Com formatação: 1.234.567,89 Esta dica foi revisada e testada no Java 8. |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o arco cosseno de um número em Java usando o método acos() da classe MathQuantidade de visualizações: 11798 vezes |
O arco cosseno, ou arco coseno (também chamado de cosseno inverso) pode ser representado por cos-1 x, arccos x ou acos x. Esta função é a inversa do cosseno, ou seja, se o cosseno é a relação entre o cateto adjacente ao ângulo e a hipotenusa, o arco cosseno parte desta relação para encontrar o valor do ângulo. Em Java, o arco cosseno de um número pode ser obtido por meio do método acos() da classe Math. Este método recebe um valor double e retorna também um double, na faixa 0 <= x <= PI, onde PI vale 3.1416. Veja um código Java completo no qual informamos um número e em seguida calculamos o seu arco-cosseno: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ double numero = 0.5; System.out.println("O arco cosseno de " + numero + " é " + Math.acos(numero)); } } Ao executar este código nós teremos o seguinte resultado: O arco cosseno de 0.5 é 1.0471975511965979 Não se esqueça de que as funções trigonométricas são usadas para modelar o movimento das ondas e fenômenos periódicos, como padrões sazonais. Elas formam a base para análises avançadas em engenharia elétrica, processamento digital de imagem, radiografia, termodinâmica, telecomunicações e muitos outros campos da ciência e da tecnologia. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Java para iniciantes - Como tratar o erro OutOfMemoryError no JavaQuantidade de visualizações: 12032 vezes |
O erro OutOfMemoryError é apresentado quando a Java Virtual Machine (JVM) não consegue alocar um objeto por falta de memória e o Garbagge Collector não liberou mais memória ainda. Este é um erro que não deve ser apanhado em um bloco try...catch, ou seja, se não há memória para alocar novos objetos, é fácil entender que não haverá memória para tal procedimento. O melhor a fazer é deixar o programa terminar e verificar a causa do problema. Veja a posição da classe OutOfMemoryError na hierarquia de classes da plataforma Java: java.lang.Object java.lang.Throwable java.lang.Error java.lang.VirtualMachineError java.lang.OutOfMemoryError Esta classe implementa a interface Serializable. Uma das causas mais comuns para o erro OutOfMemoryError é a instanciação exagerada de objetos, principalmente em laços (loops). Uma forma de aumentar a memória RAM a ser usada é definindo opções na linha de comando para o java.exe. Algumas destas opções são -Xss64k -Xoss300k -Xms4m e -Xmx10m. |
Vamos testar seus conhecimentos em Hidrologia |
(Enem 2016) A renaturalização de rios e córregos é, há muito tempo, uma realidade na Europa, no Japão, na Coreia do Sul, nos Estados Unidos e em outros países. No Brasil ainda são muito tímidas as iniciativas, mas algumas poucas cidades estão adotando essa importante prática. Disponível em: http://sosriosdobrasil.blogspot.com.br. Acesso em: 10 dez. 2012 (adaptado). A legislação brasileira avançou ao estabelecer como unidade territorial para a gestão desse recurso A) os biomas. B) as reservas ecológicas. C) as unidades do relevo. D) as bacias hidrográficas. E) as áreas de preservação ambiental. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Cálculo de vigas-parede Vigas-parede são definidas como elementos planos (chapas), sujeitos a solicitações em seu próprio plano, e diferem de vigas esbeltas de acordo com a relação existente entre o vão efetivo e a altura da viga. Assinale a alternativa que apresenta uma viga-parede: A) Viga biapoiada, com vão de 6,0m e altura de 1,8m. B) Viga biapoiada, com vão de 6,0m e altura de 2,5m. C) Viga com dois vãos iguais de 6,0m cada e altura de 3,0m. D) Viga com dois vãos iguais de 6,0m cada e altura de 2,0m. E) Viga contínua, com 4 vãos iguais de 6,0m cada e altura de 1,8m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações diretas ou rasas As fundações diretas ou rasas são utilizadas em situações em que as camadas do solo sejam resistentes de forma suficiente para suportar as cargas da estrutura. Elas tornam possível a transmissão dessas cargas diretamente ao solo, pela base da fundação, que é dimensionada de forma a distribuir o peso da construção no solo para que a pressão sobre ele seja compatível com a sua resistência. Analise as sentenças a respeito das fundações rasas ou diretas: I - Transferem as cargas das estruturas para camadas subsuperficiais da terra. II - Em uma mesma edificação, é possível encontrar mais do que dois tipos diferentes de fundações, mesmo que sejam rasas ou profundas. III - O uso de fundações rasas será considerado uma técnica adequada quando o número de golpes do SPT for maior ou igual a 8 e a profundidade não ultrapassar 2m. Qual(is) está(ão) correta(s)? A) II. B) I. C) II e III. D) I e III. E) III. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Turbomáquinas Uma turbomáquina é um dispositivo no qual a energia é transferida para ou de um fluido em movimento contínuo. A linha da lâmina gira e altera a pressão do fluido, realizando trabalhos no fluido (bomba hidráulica) ou realizando o trabalho na linha da lâmina pelo fluido (turbina). Qual classe de máquinas hidráulicas é especialmente excluída quando é considerada essa definição apresentada? A) Essa definição exclui a classe de turbinas eólicas, pois, apesar de referenciar o termo genérico "turbina", não engloba os dispositivos cujos fluidos não são a água e cuja a vazão do fluido pode ser variável. B) Essa definição exclui as máquinas hidráulicas que contêm um eixo de rotação. Nesse caso, foram excluídos, especialmente, os motores hidráulicos, um grupo amplo e com muitos dispositivos com vazão alta. C) Essa definição exclui a classe de dispositivos chamados máquinas de deslocamento positivo. Nesses dispositivos, há limites móveis que forçam o fluido a se mover ou são forçados a se mover pelo fluido. D) Essa definição exclui a classe de dispositivos chamados motores elétricos. Tais máquinas hidráulicas são responsáveis por receber a energia mecânica produzida por dispositivos, como as turbinas eólicas. E) Essa definição exclui a classe de dispositivos chamados máquinas de deslocamento negativo. Nesses dispositivos, há limites móveis que forçam o fluido a se mover ou são forçados a se mover pelo fluido. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Conjuntos de Description Key no AutoCAD Civil 3D Quando estamos usando conjuntos de Description Key, qual parâmetro nos permite controlar automaticamente os parâmetros de alguns pontos? A) Location description (Descrição de localização) B) Marker style (Estilo de marcador) C) Raw description (Descrição crua) D) Full description (Descrição completa) 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |