Alguns exercícios que foram corrigidos em sala
- Link para a lista de exercícios - Java básico: estruturas condicionais, estruturas de repetição, aninhamento de estruturas condicionais e repetição.
1ª lista do Java:
Resolução do exercício 29
import java.util.Scanner; public class Exercicio29 { public static void main(String[] args) { int idade, maiorIdade = 0, menorIdade = 999, numeroPessoas, somaIdades = 0, qtdeMaiorIdade = 0; double mediaIdades; System.out.println("Entre com o número de pessoas"); numeroPessoas = new Scanner(System.in).nextInt(); for(int i = 0; i < numeroPessoas; i++) { System.out.println("Entre com a idade da pessoa número "+(i+1)); idade = new Scanner(System.in).nextInt(); if(idade >=18) qtdeMaiorIdade++; somaIdades = somaIdades + idade; if(idade > maiorIdade) maiorIdade = idade; if(idade < menorIdade) menorIdade = idade; } mediaIdades = (double)somaIdades/numeroPessoas; System.out.println("Média das idades: "+mediaIdades); System.out.println("Maior idade: "+maiorIdade); System.out.println("Menor idade: "+menorIdade); System.out.println("Quantidade de pessoas maior de idade: "+qtdeMaiorIdade); } }
Resolução do exercício 38
public class Exercicio38Fibonacci { public static void main(String[] args) { long primeiro = 1, segundo = 1, aux; for(int i = 0; i < 50; i++) { System.out.println(primeiro); aux = primeiro + segundo; primeiro = segundo; segundo = aux; } } } }
Resolução do exercício 36
import java.util.Scanner; public class Exercicio36 { public static void main(String[] args) { String nome = "", sexo, nomeFemAlturaMenor = "", nomeMaisVelho = ""; double peso, altura, mediaIdade, alturaFemMenor = 9; int idade, i, somaIdade = 0, qtdeAlturaFaixa = 0, qtdeFaixaIdade18_25 = 0, idadeMaisVelho = 0; for(i = 1; !nome.equals("fim"); i++) { System.out.println("Entre com o nome: "); nome = new Scanner(System.in).nextLine(); System.out.println("Entre com o sexo: "); sexo = new Scanner(System.in).nextLine(); System.out.println("Entre com a idade "); idade = new Scanner(System.in).nextInt(); System.out.println("Entre com o altura "); altura = new Scanner(System.in).nextDouble(); System.out.println("Entre com o peso "); peso = new Scanner(System.in).nextDouble(); if(sexo.equals("m")) somaIdade = somaIdade + idade; if(sexo.equals("f")) { if(altura >= 1.60 && altura <= 1.70 && peso >= 70) qtdeAlturaFaixa++; if(altura < alturaFemMenor) { alturaFemMenor = altura; nomeFemAlturaMenor = nome; } } if(idade >= 18 && idade <= 25) qtdeFaixaIdade18_25++; if(idade > idadeMaisVelho) { nomeMaisVelho = nome; idadeMaisVelho = idade; } // outra condição com 'ou': if(peso <40 || peso > 90) } System.out.println("Quantidade de pacientes: "+(i-1)); mediaIdade = somaIdade/(i-1); System.out.println("Media de idades dos homens: "+mediaIdade); System.out.println("Quantidade de mulheres na faixa solicitada: "+qtdeAlturaFaixa); System.out.println("O nome da mulher mais baixa é "+nomeFemAlturaMenor+ " e a sua altura é "+alturaFemMenor); System.out.println("Quantidade de pessoas com idade entre 18 a 25: "+qtdeFaixaIdade18_25); System.out.println("O nome da pessoa mais velha é "+nomeMaisVelho+ " e a sua idade é "+idadeMaisVelho); } }
Resolução do exercício 49
import java.util.Scanner; public class Exercicio49 { public static void main(String[] args) { double divida, taxa, dividaAtual; int qtdeAnos; System.out.println("Qual o valor da dívida? "); divida = new Scanner(System.in).nextDouble(); System.out.println("Qual o valor da taxa de correção?"); taxa = new Scanner(System.in).nextDouble(); System.out.println("Quantos anos?"); qtdeAnos = new Scanner(System.in).nextInt(); System.out.println("Anos Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez"); dividaAtual = divida; for(int ano = 2007; ano <= 2007+qtdeAnos; ano++) { System.out.print(ano + " "); for(int mes=1; mes <= 12; mes++) { System.out.print(dividaAtual + " "); dividaAtual = dividaAtual + (dividaAtual*taxa/100); dividaAtual = ((int)(dividaAtual*100))/100.0; } System.out.println(); } } }
2ª lista do Java (sobre vetores):
Resolução do exercício 11 (para 5 elementos)
public class Ordenacao { public static void main(String[] args) { // declara um vetor para 5 inteiros int[] num = new int[5]; System.out.println("Sorteando números..."); // preenche os elementos do vetor com números aleatórios de 10 a 30 for(int i = 0; i < 5; i++) { num[i] = (int)(Math.random()*21)+10; } // a partir deste ponto, o algoritmo irá colocar os números em ordem crescente int aux; boolean trocou = true; while(trocou) { trocou = false; for(int i = 0; i < 4; i++) { if(num[i] > num[i+1]) { aux = num[i]; num[i] = num[i+1]; num[i+1] = aux; trocou = true; } } } // Exibição do resultado da ordenação System.out.println("Vetor ordenado:"); for(int i = 0; i < 5; i++) { System.out.println(num[i]); } } }
Resolução do exercício 13 (2ª lista do java - sobre vetores)
// cria um vetor ordenado de números a partir de ouros dois ordenados public class Exercicio13 { public static void main(String[] args) { int[] a = {5,10,15}; int[] b = {7,8,19,20}; int[] c = new int[a.length + b.length]; // ponteiros para os vetores a, b, c int pa=0, pb=0, pc; for(pc = 0; pc < c.length; pc++) { // se o vetor 'a' foi todo copiado, então copia de 'b' if(pa == a.length) { c[pc] = b[pb]; pb++; } // se o vetor 'b' foi todo copiado, então copia de 'a' else if(pb == b.length) { c[pc] = a[pa]; pa++; } // se o elemento de 'a' é menor então copia ele else if(a[pa] < b[pb]) { c[pc] = a[pa]; pa++; } // se o elemento de 'b' é menor ou igual então copia ele else { c[pc] = b[pb]; pb++; } } // exibe o vetor resultante for(int i = 0; i < c.length; i++) { System.out.println(c[i]); } } }
3ª lista do Java (sobre matrizes):
Resolução do exercício 4 (3ª lista do java - sobre matrizes) Por Howard
package matriz4; import java.util.Scanner; public class Principal { public static void main(String[] args) { String mostra = ""; char[][] velha = new char[3][3]; /* *velha[0][0] = 'X'; *velha[0][1] = 'X'; *velha[0][2] = 'O'; *velha[1][0] = 'X'; *velha[1][1] = 'O'; *velha[1][2] = 'X'; *velha[2][0] = 'O'; *velha[2][1] = 'X'; *velha[2][2] = 'O';*/ for (int i = 0;i < 3; i++){ for (int j = 0; j < 3; j++){ System.out.print("Entre com X ou O na linha "+ (i + 1) +" coluna "+ (j + 1)); velha[i][j] = new Scanner(System.in).next().charAt(0); } } for (int i = 0;i < 3; i++){ for (int j = 0; j < 3; j++){ mostra += velha[i][j]+ " "; } mostra += "\n"; } System.out.println(mostra); if (velha [0][0] == velha [0][1] && velha [0][0] == velha [0][2]) System.out.println("O vencedor foi o '"+ velha[0][0]+"' na linha 01"); else if (velha [1][0] == velha [1][1] && velha [1][0] == velha [1][2]) System.out.println("O vencedor foi o '"+ velha[1][0]+"' na linha 02"); else if (velha [2][0] == velha [2][1] && velha [2][0] == velha [2][2]) System.out.println("O vencedor foi o '"+ velha[2][0]+"' na linha 03"); else if (velha [0][0] == velha [1][0] && velha [0][0] == velha [2][0]) System.out.println("O vencedor foi o '"+ velha[0][0]+"' na coluna 01"); else if (velha [0][1] == velha [1][1] && velha [0][1] == velha [2][1]) System.out.println("O vencedor foi o '"+ velha[0][1]+"' na coluna 02"); else if (velha [0][2] == velha [1][2] && velha [0][2] == velha [2][2]) System.out.println("O vencedor foi o '"+ velha[0][2]+"' na coluna 03"); else if (velha [0][0] == velha [1][1] && velha [0][0] == velha [2][2]) System.out.println("O vencedor foi o '"+ velha[0][0]+"' na diagonal principal"); else if (velha [0][2] == velha [1][1] && velha [0][0] == velha [2][0]) System.out.println("O vencedor foi o '"+ velha[0][0]+"' na diagonal secundária"); else System.out.println("Deu Velha!!!"); } }
Resolução do exercício 5 (3ª lista do java - sobre matrizes) Por Howard
package matriz5; import java.util.Scanner; public class Principal { public static void main(String[] args) { int [][] matrix = new int [8][20]; int [] linhaPar = new int [8]; int [] linhaImpar = new int [8]; int fFinal = 0, fInicial = 0, percentual = 0, matrixPar = 0, matrixImpar = 0; String mostra =""; System.out.print("Entre com a faixa incial do sorteio: "); fInicial = new Scanner(System.in).nextInt(); System.out.print("Entre com a faixa final do sorteio: "); fFinal = new Scanner(System.in).nextInt(); //Entrada de dados for (int i = 0; i < 8; i++){ for (int j = 0; j < 20; j++){ matrix[i][j] = (int) (Math.random()*(fFinal - fInicial + 1)+ fInicial); if (matrix[i][j] % 2 == 0) linhaPar[i]++; else linhaImpar[i]++; if (matrix[i][j] % 2 == 0) matrixPar++; else matrixImpar++; } } //Exibição dos dados for (int i = 0; i < 8; i++){ for (int j = 0; j < 20; j++){ mostra+= matrix[i][j]+" "; } mostra += "\n Há "+ ((int)(percentual = linhaPar[i] * 100 /matrixPar ))+ "% de números pares"+ " e há "+ ((int)(percentual = linhaImpar[i] * 100 /matrixImpar ))+ "% de números impares"+ " nesta linha. \n São "+ linhaPar[i] +" pares e "+ linhaImpar[i]+" impares \n \n"; } System.out.println(mostra); System.out.println("São "+ matrixPar +" números pares e "+ matrixImpar +" números ímpares."); System.out.println("São "+ (matrixPar * 100 / 160) +"% de números pares e "+ (matrixImpar * 100 / 160) + "% de números ímpares."); } }
Resolução do exercício 6 (3ª lista do java - sobre matrizes)
import java.util.Scanner; public class Exercicio6 { public static void main(String[] args) { /* uma solução para a declaração e determinação dos dados: String[] meses = new String[12]; int[][] dias = new int[12][2]; meses[0] = "jan"; meses[1] = "fev"; ... dias[0][0] = 1; dias[0][1] = 31; dias[1][0] = 2; dias[1][1] = 29; ... outra solução: */ String[] meses = {"jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"}; int[][] dias = {{1,31},{2,29},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}}; int resp; do { System.out.println("Qual o número do mês que você quer consultar?"); resp = new Scanner(System.in).nextInt(); // enquanto estiver errado, repete a entrada de dados } while(resp < 1 || resp > 12); System.out.println("Nome do mês: "+meses[resp-1]+ ", quantidade de dias: "+dias[resp-1][1]); } }
Resolução do exercício 7 (3ª lista do java - sobre matrizes)
import java.util.Scanner; public class Exercicio7 { public static void main(String[] args) { // entrada do tamanho das matrizes System.out.println("Qual o tamanho das duas matrizes (linhas e colunas)?"); int qtdeLinhas = new Scanner(System.in).nextInt(); int qtdeColunas = new Scanner(System.in).nextInt(); // declaração das duas matrizes int[][] m1 = new int[qtdeLinhas+1][qtdeColunas+1]; int[][] m2 = new int[qtdeLinhas+1][qtdeColunas+1]; // entrada de dados para a primeira matriz System.out.println("Primeira matriz"); for(int n = 0; n < qtdeLinhas; n++) { for(int i = 0; i < qtdeColunas; i++) { System.out.println("Entre com o valor para a linha "+(n+1)+" e coluna "+(i+1)); m1[n][i] = new Scanner(System.in).nextInt(); } } // entrada de dados para a segunda matriz System.out.println("Segunda matriz"); for(int n = 0; n < qtdeLinhas; n++) { for(int i = 0; i < qtdeColunas; i++) { System.out.println("Entre com o valor para a linha "+(n+1)+" e coluna "+(i+1)); m2[n][i] = new Scanner(System.in).nextInt(); } } // declaração da terceira matriz int[][] mSoma = new int[qtdeLinhas+1][qtdeColunas+1]; // Soma das duas matrizes para a terceira, e a sua exibição System.out.println("Matriz soma"); for(int n = 0; n < qtdeLinhas; n++) { for(int i = 0; i < qtdeColunas; i++) { mSoma[n][i] = m1[n][i] + m2[n][i]; System.out.println("Elemento ["+n+"]["+i+"]="+mSoma[n][i]); } } } }