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"+ ((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]);
            }
        }
    }
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License