Preview only show first 10 pages with watermark. For full document please download

Lista De Exercícios - Processamento Da Informação - Vetores, Matriz E Função...

Lista de Exercícios - Processamento da Informação - Vetores, Matriz e Função (modularização)

   EMBED


Share

Transcript

UFABC Universidade Federal do ABC BC&T Processamento da Informação Lista de Exercícios - Vetores Nome: RA: Professor(a): Turma: E1 - matutino Data: 04/05/2012 Objetivo Construção de algoritmos utilizando vetores. Exercícios Escrever o programa Java correspondente, na forma de aplicação: 1. Dado um conjunto de 20 registros inteiros, faça um programa que: a) leia os 20 valores (usando laço de repetição) b) escreva os valores negativos c) escreva a média dos valores não negativos Obs: Se não houver nenhum valor negativo ou positivo, escreva uma mensagem . package lista3ex1; public class Lista3Ex1 { public static void main(String[] args) { double qnaoneg=0, snaoneg=0; int i, v[] = new int [20]; for (i=0; i<20; i++){ System.out.println("("+(i+1)+"ª entrada de 20) Digite um número inteiro:"); v[i] = new java.util.Scanner(System.in).nextInt(); } for (i=0; i<20; i++) if (v[i]>=0) { qnaoneg++; snaoneg+=v[i]; } if (qnaoneg==20) System.out.println("Não há valor negativo!"); else { System.out.println("Os valores negativos são:"); for (i=0; i<20; i++) if(v[i]<0) System.out.printf("%d,", v[i]); } if (snaoneg==0) { //Observe que snaoneg = 0 não implica necessariamente em qnaoneg = 0 System.out.println("Não há valor positivo!"); } else { 1 UFABC Universidade Federal do ABC BC&T Processamento da Informação double medianaoneg = (snaoneg/qnaoneg); System.out.printf("\nMédia dos valores não negativos: %1.2f", medianaoneg); } } } 2. Crie um programa que receba a idade de um grupo de 50 pessoas e escreva cada uma dessas idades em um índice de um vetor de 50 elementos. Após a entrada dos dados no vetor, crie uma outra estrutura de repetição que leia as idades em cada índice do vetor, e calcule e mostre a média das idades. package lista3ex2; public class Lista3Ex2 { public static void main(String[] args) { int i, idade[] = new int [50]; double mediaidades, somaidades=0; for (i=0; i<50; i++){ System.out.println("Digite a idade da "+(i+1)+"ª pessoa:"); idade[i] = new java.util.Scanner(System.in).nextInt(); } for (i=0; i<50; i++) somaidades+=idade[i]; mediaidades=somaidades/50; System.out.printf("\nMédia das idades: %1.2f",mediaidades); } } 3. Suponha que para cada pessoa se tenha nome, sexo (‘M’ ou ‘F’), cor dos olhos e o peso. Escreva um programa que: a) escreva o nome das pessoas com peso entre 60 e 70 kg, inclusive os extremos b) considerando as pessoas do sexo ‘M’ calcule a porcentagem de pessoas que tem olho azul Obs: Considere que existam N pessoas package lista3ex3; import java.util.Scanner; public class Lista3Ex3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Scanner strg = new Scanner(System.in); int QtdPessoas, QtdHomensOlhoAzul = 0; 2 UFABC Universidade Federal do ABC BC&T Processamento da Informação System.out.print("Digite a quantidade de pessoas que serão cadastradas:"); QtdPessoas = sc.nextInt(); String[] Nome = new String[QtdPessoas]; char[] Sexo = new char[QtdPessoas]; int[] CorOlho = new int[QtdPessoas]; double TotalHomens = 0; double[] Peso = new double[QtdPessoas]; for (int i = 0; i < QtdPessoas; i++) { System.out.print("Nome:"); Nome[i] = strg.nextLine(); System.out.print("Sexo (m/f):"); Sexo[i] = strg.nextLine().charAt(0); System.out.print("Selecione a opção de acordo com cor do olho: \n 1 - Castanho \n 2 - Verde \n 3 - Azul \n"); CorOlho[i] = sc.nextInt(); System.out.print("Peso:"); Peso[i] = sc.nextDouble(); System.out.print("\n"); } for (int i = 0; i < QtdPessoas; i++) { if (Peso[i] <= 70 && Peso[i] >= 60) { System.out.print("\n " + Nome[i] + " - Peso:" + Peso[i]); } if (Sexo[i]=='m' ||Sexo[i]=='M' ) { TotalHomens++; if (CorOlho[i] == 3) { QtdHomensOlhoAzul++; } } } double PorcentOlhoAzulHomens = (QtdHomensOlhoAzul / TotalHomens) * 100; System.out.printf("\n\n Há %1.1f%% de pessoas do sexo masculino com a cor do olho azul", PorcentOlhoAzulHomens); } } 4. Dado um conjunto de N registros, cada registro contendo nome, raça e idade de cada animal. Faça um programa que: a) guarde todos os dados na memória b) escreva o nome dos animais e a raça que tem idade maior que a idade do último animal lido c) Imprima o nome e idade dos animais que tenha idade entre 5 e 8 anos package lista3ex4; import java.util.Scanner; 3 UFABC Universidade Federal do ABC BC&T Processamento da Informação public class Lista3Ex4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Scanner strg = new Scanner(System.in); int N, i; System.out.println("Digite a quantidade de registros a serem cadastrados:"); N = sc.nextInt(); String vetorRaca[]=new String[N], vetorNome[]=new String[N]; int vetorIdade[] = new int[N]; for (i=0; ivetorIdade[N-1]) System.out.println(" Nome:"+vetorNome[i]+" Raça:"+vetorRaca[i]); System.out.println("Animais cadastrados com idade entre 5 e 8 anos:"); for (i=0; i=5 && vetorIdade[i]<=8) System.out.println(" Nome:"+vetorNome[i]+" Idade:"+vetorIdade[i]); } } 5. Um hotel cobra 50,00 por diária, e mais uma taxa de serviços. A taxa de serviços é de: a. 7,50 por diária se o número de diárias for menor que 15 b. 6,30 por diária se o número de diárias for igual a 15 c. 5,90 por diária se o número de diárias for maior que 15 d. Considerando que o hotel atendeu 200 pessoas e que para cada pessoa se tem o seu nome e o número de diárias. Faça um algoritmo que imprima o nome e a conta de cada pessoa. Imprima também o total ganho pelo hotel package lista3ex5; public class Lista3Ex5 { public static void main(String[] args) { int N = 200; 4 UFABC Universidade Federal do ABC BC&T Processamento da Informação String vetorNome[] = new String[N]; /* vetor com o nome dos clientes */ int vetorDiarias[] = new int[N]; /* vetor com a quantidade de diárias para cada cliente, sendo que que o cliente com o nome vetornome[x] possuí a quantidade de diárias vetorDiarias[x] */ double ganhoTotal=0, vetorConta[] = new double[N]; for (int i = 0; i < N; i++) { if (vetorDiarias[i] < 15) { vetorConta[i] = vetorDiarias[i] * 7.5; } else if (vetorDiarias[i] == 15) { vetorConta[i] = vetorDiarias[i] * 6.3; } else if (vetorDiarias[i] > 15) { vetorConta[i] = vetorDiarias[i] * 5.9; } vetorConta[i]+= vetorDiarias[i]*50; ganhoTotal+=vetorConta[i]; System.out.println("Nome:"+vetorNome[i]+" Gastos: R$"+vetorConta[i]); } System.out.println("______________________________________\n Ganho total: R$"+ganhoTotal); } } 6. Elabore o enunciado de um exercício para construção de um algoritmo usando vetor. Escreva a resolução, e mostre o teste de mesa. Escreva um algoritmo que lê 2 vetores de inteiros, X e Y, de mesmo tamanho e imprima os elementos na intersecção entre X e Y. package lista3ex6; public class Lista3Ex6 { public static void int x[] = { 2, int y[] = { 8, interseccao(x, } main(String[] args) { 3, 2}; 2, 3}; y); public static void interseccao(int[] x, int[] y){ int cont=0, i, z[] = new int[x.length]; boolean rep=false; for (i=0; i