Unidade de Computação e Sistemas - Disciplina: Algoritmo I (turma 1B) Professor: Henrique Monteiro Cristovão 2007/2 Lista de exercícios sobre VETOR Preparação (ainda sem o uso de vetores): Solicitar uma relação de pessoas, cada uma com o seu nome e a idade. A quantidade de pessoas será também solicitada ao usuário. Ao término da entrada de dados, exiba: o nome da pessoa mais velha, a média das idades, a quantidade de pessoas que possuem idade entre 18 e 60 anos (incluindo 18 e 60). // solução da questão 3 da segunda prova import java.util.Scanner; public class Principal { public static void main(String[] args) { int idade, qtdePessoas, somaIdades = 0, idadeMaisVelha = 0, qtde18a60 = 0; String nome, nomeMaisVelha = ""; System.out.println("Entre com a quantidade de pessoas:"); qtdePessoas = new Scanner(System.in).nextInt(); for(int contador = 1; contador <= qtdePessoas; contador++) { // entrada de dados System.out.println("Entrada número " + contador); System.out.println("Digite o nome e a idade:"); nome = new Scanner(System.in).nextLine(); idade = new Scanner(System.in).nextInt(); // preparação para o calculo da média somaIdades = somaIdades + idade; // seleção do nome e idade da pessoa mais velha if(idade > idadeMaisVelha) { idadeMaisVelha = idade; nomeMaisVelha = nome; } // contagem da pessoas com idade de 18 a 60 anos if(idade >= 18 && idade <= 60) qtde18a60++; } // Exibição dos resultados System.out.println("Resultados: \n" + "Nome da pessoa mais velha: " + nomeMaisVelha + "\nMédia das idades: " + (double)somaIdades/qtdePessoas + "\nQtde de pessoas de 18 a 60 anos: " + qtde18a60); } } 1/5 Primeiro exercício sobre vetores proposto no laboratório: // solução da questão 3 da segunda prova, com a seguinte alteração: // Exibe a quantidade de pessoas cuja idade é maior que a média import java.util.Scanner; public class Principal { public static void main(String[] args) { int qtdePessoas, somaIdades = 0, idadeMaisVelha = 0, qtde18a60 = 0; String nome, nomeMaisVelha = ""; // declaração do vetor 'idade' capaz de armazenar inteiros int[] idades; System.out.println("Entre com a quantidade de pessoas:"); qtdePessoas = new Scanner(System.in).nextInt(); // alocação de memória para o vetor 'idades' idades = new int[qtdePessoas]; for(int contador = 0; contador < qtdePessoas; contador++) { // entrada de dados System.out.println("Entrada número " + (contador+1)); System.out.println("Digite o nome e a idade:"); nome = new Scanner(System.in).nextLine(); idades[contador] = new Scanner(System.in).nextInt(); // preparação para o calculo da média somaIdades = somaIdades + idades[contador]; // seleção do nome e idade da pessoa mais velha if(idades[contador] > idadeMaisVelha) { idadeMaisVelha = idades[contador]; nomeMaisVelha = nome; } // contagem da pessoas com idade de 18 a 60 anos if(idades[contador] >= 18 && idades[contador] <= 60) qtde18a60++; } // calcula a média double media = (double)somaIdades/qtdePessoas; // calcula quantidade de pessoas cuja idade é maior que a média int qtdeMaioresMedia = 0; for(int i = 0; i < qtdePessoas; i++) { if(idades[i] > media) { qtdeMaioresMedia++; } } // Exibição dos resultados System.out.println("Resultados: \n" + "Nome da pessoa mais velha: " + nomeMaisVelha + "\nMédia das idades: " + media + "\nQtde de pessoas de 18 a 60 anos: " + qtde18a60 + "\nQtde de pessoas cuja idade é maior que a média: " + qtdeMaioresMedia); } } 2/5 Segundo exercício sobre vetores proposto no laboratório: // solução da questão 3 da segunda prova, com as seguintes alterações: // Exibe a quantidade de pessoas cuja idade é maior que a média // Exibe a relação de pessoas cuja idade é maior do que a média. import java.util.Scanner; public class Principal { public static void main(String[] args) { int qtdePessoas, somaIdades = 0, idadeMaisVelha = 0, qtde18a60 = 0; String nomeMaisVelha = ""; // declaração do vetor 'idade' capaz de armazenar inteiros int[] idades; // delaração do vetor 'nome' capaz de armazenar Strings String[] nomes; System.out.println("Entre com a quantidade de pessoas:"); qtdePessoas = new Scanner(System.in).nextInt(); // alocação de memória para o vetor 'idades' idades = new int[qtdePessoas]; // alocação de memória para o vetor 'nomes' nomes = new String[qtdePessoas]; for(int contador = 0; contador < qtdePessoas; contador++) { // entrada de dados System.out.println("Entrada número " + (contador+1)); System.out.println("Digite o nome e a idade:"); nomes[contador] = new Scanner(System.in).nextLine(); idades[contador] = new Scanner(System.in).nextInt(); // preparação para o calculo da média somaIdades = somaIdades + idades[contador]; // seleção do nome e idade da pessoa mais velha if(idades[contador] > idadeMaisVelha) { idadeMaisVelha = idades[contador]; nomeMaisVelha = nomes[contador]; } // contagem da pessoas com idade de 18 a 60 anos if(idades[contador] >= 18 && idades[contador] <= 60) qtde18a60++; } // calcula a média double media = (double)somaIdades/qtdePessoas; // calcula quantidade de pessoas cuja idade é maior que a média int qtdeMaioresMedia = 0; for(int i = 0; i < qtdePessoas; i++) { if(idades[i] > media) { qtdeMaioresMedia++; } } // Exibição dos resultados System.out.println("Resultados: \n" + "Nome da pessoa mais velha: " + nomeMaisVelha + "\nMédia das idades: " + media + "\nQtde de pessoas de 18 a 60 anos: " + qtde18a60 + "\nQtde de pessoas cuja idade é maior que a média: " + qtdeMaioresMedia); // Exibe nomes das pessoas cuja idade é superior e média System.out.println("Pessoas cuja idade é maior que a média"); for(int i = 0; i < qtdePessoas; i++) { if(idades[i] > media) { System.out.println(nomes[i]); } } } } 3/5 Exercícios: Para cada um dos itens escreva um programa em Java para solucionar o problema. 1. Leia um conjunto de 10 notas. Em seguida exiba todas que são maiores que a média do conjunto. Resolução: // Leia um conjunto de 10 notas. // Exiba todas que são maiores do que média do conjunto. public class Principal { public static void main(String[] args) { int contador = 0; // declaração do vetor ‘notas’ capaz de armazenar valores do tipo double double[] notas; // alocação de memória para o vetor ‘notas’: pode armazenar até 10 double notas = new double[10]; double soma = 0; while(contador < 10) { System.out.println("Entre com a nota "+(contador+1)); // uso de um elemento do vetor ‘notas’ cuja posição é ‘contador’ notas[contador] = new Scanner(System.in).nextDouble(); soma = soma + notas[contador]; contador = contador + 1; } double media = soma/contador; contador = 0; System.out.println("Notas maiores do que a média "+media); while(contador < 10) { if(notas[contador] >= media) { System.out.println(notas[contador]); } contador = contador + 1; } } } 2. Leia um conjunto de notas, cuja quantidade seja determinada pelo usuário. Calcule a média de todas elas. Exiba o conjunto das notas maiores do que a média calculada. Em seguida, de forma agrupada, exiba o outro conjunto de notas (menores do que a média). 3. Leia um conjunto de alunos, cada uma com o nome e a nota. Em seguida exiba o nome dos alunos que possuem a nota maior do que a média da turma. 4. Leia um conjunto de salários. Leia também um valor de reajuste. Em seguida exiba todos os salários já reajustados. 5. Leia um conjunto de valores inteiros e em seguida exiba-os na ordem inversa em que foram digitados. 6. Crie um vetor capaz de armazenar 50 números inteiros. Em seguida faça o seu preenchimento automático com os números de 101 a 150, ou seja, na posição número 0 ponha 101, na posição 1 ponha o número 102, e assim sucessivamente. Em seguida exiba os valores deste vetor. 7. Leia nomes de pessoas, sendo a quantidade determinada pelo usuário. Logo a seguir pergunte o número do nome que ele gostaria de consultar. Após sua resposta, exiba o nome que fica na posição informada. 8. Leia nomes de pessoas com seus respectivos telefones, sendo a quantidade determinada pelo usuário. Em seguida pergunte ao usuário qual o nome que ele deseja consultar o telefone. Após sua resposta, exiba o telefone da pessoa procurada. 4/5 9. Leia um conjunto de números. Exiba este conjunto acompanhado do seu elemento simétrico em relação a sua posição no conjunto. Veja o exemplo: Entrada: 5, 7, 9, 2 Saída: 5-2 7-9 9-7 2-5 10. Leia dois conjuntos de números com a mesma quantidade. Exiba a intersecção dos conjuntos, ou seja, os números que são repetidos nos dois conjuntos. 11. Leia um conjunto de números. Exiba-os em ordem numérica crescente. 12. Leia um conjunto de nomes de pessoas. Exiba-os em ordem alfabética crescente. 13. Leia dois conjuntos de números (podem ter o tamanho diferente) já ordenados de forma crescente. Crie um outro vetor para armazenar os dois conjuntos unidos, sendo que os números devem permanecer ordenados. Finalmente, exiba este vetor resultante. 5/5