Exercícios em JAVA: Package#2

Arrays
1. Re-escreva o programa apresentado na Package #1 que devolve o nº de dias de cada mês, utilizando para o efeito um array. Este programa deverá ler um n.º correspondente a um mês do ano e mostrar o n.º de dias desse mês.
Dias_mes.java class Dias_mes { public static void main(String args[]) { int dias_mes[]; int mes; dias_mes = new int[12]; dias_mes [0] = 31; dias_mes[1] = 28; dias_mes[2] = 31; dias_mes[3] = 30; dias_mes[4] = 31; dias_mes[5] = 30; dias_mes[6] = 31; dias_mes[7] = 31; dias_mes[8] = 30; dias_mes[9] = 31; dias_mes[10] = 30; dias_mes[11] = 31; System.out.print("Introduza o mês (1-12): "); mes = Keyboard.readInt(); System.out.println("Esse mês tem " + dias_mes[mes - 1] + " dias."); } }

Solução alternativa
Dias_mes2.java class Dias_mes_2 { public static void main(String args[]) { int mes; int dias_mes[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; System.out.print("Introduza o mês (1-12): "); mes = Keyboard.readInt(); System.out.println("Esse mês tem " + dias_mes[mes - 1] + " dias."); } }

} } } Pág. 31 }. 30. "Julho". mes < 12. inverno}. verao. primavera. 31. 30. 30. static String inverno = "inverno". Meses. "Setembro". outono. 31. "Outubro".java class Meses { static String meses[] = { "Janeiro". usando arrays. "Novembro". 31. "Abril". Escreva um programa que apresente os nomes de todos os meses do ano.Informática – Eng. inverno. outono. "Junho". 30. 28. outono. "Março"."). "Dezembro" }. mes++) { System. primavera. primavera. static String outono = "outono". 31. 31.º de dias de cada mês. "Fevereiro".Package #2 de Exercícios em Java 2.println(meses[mes] + " é um mês do(a)" + estacoes[mes] + " com " + diasmes[mes] + " dias. "Agosto".out. public static void main(String args[]) { for (int mes = 0. verao. static String verao = "verão".ª Civil . static String estacoes[] = { inverno. a estação do ano a que pertencem e o n. static int diasmes[] = { 31. static String primavera = "primavera". "Maio". verao. 2 de 13 .

out. else } System.2. 3 de 13 .4}.ª Civil .println("Os arrays apresentados são iguais").println("Os arrays apresentados são diferentes"). Escreva um programa que determine se dois arrays unidimensionais de números inteiros são iguais.2.3.3.1. int vec2[]={0.Package #2 de Exercícios em Java 3. Iguais.i<vec1.java class Iguais { public static void main(String Args[]) { int vec1[]={0.4}.length && !diferentes. for(int i=0. boolean diferentes=false. } Pág.out.i++) //Termina quando encontra o primeiro valor diferente if (vec1[i]!=vec2[i]) diferentes = true.Informática – Eng.2. if (diferentes) System.

um conjunto de 10 valores e os apresente por ordem inversa. para um array. Escreva um programa que leia.out. index >= 0.println ("Os números por Ordem Inversa:"). } System. } System.print ("Introduza o número " + (index+1) + ": ").Informática – Eng. index++) { System.ª Civil .out. index--) System.println ("Dimensão deste Array: " + numeros.print (numeros[index] + " ").length). } Pág. index < numeros. System.out. 4 de 13 .println (). InverteNumeros.readDouble().length-1. for (int index = numeros.java class InvertNumeros{ public static void main (String[] args){ double[] numeros = new double[10].Package #2 de Exercícios em Java 4. numeros[index] = Keyboard.length.out.out. for (int index = 0.

println("Introduza a dimensão dos vectores de " + dim +" elementos"). i < dim.out. } System.readInt().println("Primeiro.out.out. i++) prod += vector1[i] * vector2[i].Informática – Eng. 5 de 13 . int vector1[] = new int[dim].ª Civil . pedidos ao utilizador. prod=0.println("O produto é dos vectores é " + prod). for (i = 0. Crie um programa que calcule e apresente o produto escalar de duas matrizes unidimensionais (vectores) de inteiros. } for (i = 0.readInt(). System. introduza um vector de " + dim +" elementos").out. i < dim.out. i < dim.out.out.print("Elemento "+ (i+1) + ": ").print("Elemento "+ (i+1) + ": ").readInt(). int dim = Keyboard. ProdutoVec. i++) { System.java class ProdutoVec { public static void main(String Args[]) { System. for (i = 0. int vector2[] = new int[dim]. vector2[i] = Keyboard.println("Agora.print("Introduza a dimensão dos vectores de elementos: "). System.Package #2 de Exercícios em Java 5. vector1[i] = Keyboard. } } Pág. introduza um outro vector de " + dim + " elementos"). System. int i. i++) { System.

println("Face for (int i = 0.out. A frequência de saída de cada face deve ser armazenada num array e apresentada no final.println("--------------------"). rola ++){ face = 1+(int)(Math.java class LancaDado { public static void main(String Args[]) { int face. lançado 6000 vezes consecutivas.println(" " + (i+1) + " System. } System. 6 de 13 .println("--------------------"). for (int rola = 1. i ++) System. rola <=6000. System. } } " + frequencia[i]).random()*6). i <6.out.out. int frequencia[] = new int[6]. Frequência"). Escreva um programa que calcule e apresente a frequência de saída de cada face de um dado. LancaDado. Pág.out.Informática – Eng.Package #2 de Exercícios em Java 6. ++frequencia[face-1].ª Civil .

int melhorLoja. loja < 5. // Procura a loja com o melhor lucro for (loja = 0.println("Total de Lucros: " + total). } } Pág.println("Máximo de lucros obtido na loja: " + (melhorLoja+1) + " no valor de: " + maxlucro). loja++) for (mes = 0. loja++) for (mes = 0. mes. bem como o valor máximo obtido e em que loja este valor foi obtido. double total = 0. loja < 5.print("Introduza o valor do lucro em 2001 na loja " + (loja+1) + " no mes " + (mes+1) + ": "). loja. Lucros.java class Lucros { public static void main(String Args[]) { double[][] lucro = new double[5][12]. mes++) { System.Informática – Eng. } maxlucro = 0. double maxlucro. Este programa deverá.out.Package #2 de Exercícios em Java 7. mes < 12. mes++) { if (maxlucro < lucro[loja][mes]) { maxlucro = lucro[loja][mes]. mes < 12.0. //Lê os valores para o array for (loja = 0. lucro[loja][mes] = Keyboard. } System. Pretende-se um programa que leia e armazene os valores respeitantes aos lucros obtidos em cada mês do ano por uma empresa.out. melhorLoja = loja. } total += lucro[loja][mes]. 7 de 13 . melhorLoja = 0.ª Civil . no final. System.readDouble().out. num conjunto de 5 lojas distintas. apresentar o valor total de lucros da empresa.

i++) for (int j = 0.out. else matriz[i][j] = matriz[i-1][j-1] + matriz[i-1][j]. cada elemento é igual à soma dos elementos que lhe ficam imediatamente acima.readInt().i < dimensao.ª Civil .java class TPascal { public static void main(String Args[]) { System.Informática – Eng. utilizando arrays. j <= i. Exemplo de um Triângulo de Pascal de tamanho 6: 0 1 1 1 1 1 1 1 1 2 3 4 5 2 1 3 6 10 3 4 5 0 1 2 3 4 5 1 4 10 1 5 1 TPascal. Neste Triângulo. } } } Pág.j++) if ((j==0) || (j == i)) matriz[i][j] = 1. Crie um Programa que implemente o Triângulo de Pascal.i < dimensao.out.Package #2 de Exercícios em Java 8.print("Introduza a dimensão do Triângulo: " ). i++) { for (int j = 0.print(matriz[i][j] + " " ). for (int i = 0. System. 8 de 13 . caso o elemento não seja nem o primeiro nem o último da sua linha. j <= i. int dimensao = Keyboard. A dimensão do Triângulo deve ser especificada pelo utilizador.out.j++) System. int [][] matriz = new int [dimensao][dimensao]. for (int i = 0.println(). e é 1 no caso contrário.

marcando como primo e riscam-se todos os seus múltiplos. 9 de 13 . Escreva um programa que implemente a Peneira de Eratosthenes.ª Civil . Em seguida. Uma forma simples e eficiente de calcular todos os números primos até um certo valor n é o método da Peneira de Eratosthenes. No final. O processo é simples: escrevem-se todos os valores entre 2 e n (limite máximo). os números com círculos à volta representam todos os primos até n.Package #2 de Exercícios em Java 9.Informática – Eng. A figura seguinte apresenta o método para n=40. faz-se um círculo em volta do 2. Quando não restarem números sem terem círculos à volta ou traços por cima. mostre o array de inteiros contendo todos os números primos encontrados. Crie um array com todos os inteiros de 2 a n e elimine os valores não-primos. Deverá ser pedido ao utilizador um número inteiro correspondente ao limite máximo. eliminando todos os seus múltiplos. Continua-se a fazer círculos em volta do menor inteiro que se encontra. Pág.

j<lista.java class Nprimos { public static void main(String Args[]) { System.print("Introduza o limite máximo: " ).i<=n.length. //Eliminar números não primos for (int i=0.j++) //Elimina múltiplos if (lista[j]%lista[i]==0) lista[j]=0. int n = Keyboard. int[] lista = new int [n-1]. //Lista inicial int conta_primos = 0. é primo { conta_primos ++. //Contador de números primos //Preencher lista de 2 até n for (int i=2.i++) System. } } Pág.Package #2 de Exercícios em Java Nprimos.out.i<lista. for (int j=i+1. } //Constrói lista de primos a devolver int[] lista_primos = new int[conta_primos].readInt().length. int j=0. for (int i=0.length.i<lista_primos.out. 10 de 13 .i++) lista[i-2]=i.i<lista.i++) if (lista[i]!=0) //Se ainda não foi eliminado.Informática – Eng.i++) if (lista[i]!=0) lista_primos[j++] = lista[i].ª Civil . for (int i=0.println (lista_primos[i]).length.

length-1.println().ª Civil .println("Array Inicial: " ).out.print(vec[i] + " " ).out. 11 de 13 . for (int i = vec. i<20.Informática – Eng. System. System.i++) { vec[i] = (int) (Math. for (int i =0.print(vec[i] + " " ).println().Package #2 de Exercícios em Java 10.length. OrdenaArray. j <= i. vec[j] =temp.out. } } Pág. } System.out. j++) if (vec[j-1]> vec[j]){ temp = vec[j-1]. vec[j-1] = vec[j].random() * 100).i--) for (int j = 1. i >=0.java class OrdenaArray { public static void main(String Args[]) { int vec[] = new int[20]. i<vec. int temp.i++) System. } System. for (int i =0.out.println("Array Ordenado: " ). System. Escreva um programa que gere um array de n.ºs inteiros (entre 0 e 100) e ordene este array por ordem crescente.out.

O programa termina quando o utilizador introduzir um número negativo. em que n é a dimensão dos Pág. Escreva um programa que determine se um array de inteiros está ou não ordenado. Escreva um programa que preencha um array de inteiros com 20 valores aleatórios entre 0 e 99. O último elemento deve ser igual à média de todos os anteriores. Implemente um programa que inverta cada palavra/frase introduzida pelo utilizador. Crie um programa para calcular a matriz transposta de uma matriz quadrada. 7.1]. 5. Escreva um programa que peça ao utilizador um array de n inteiros e substitua cada um dos n-1 primeiros elementos pela média entre o próprio elemento e o seguinte. As fórmulas da média e do desvio-padrão são dadas respectivamente por: n n E ( x) = i =1 xi n σ ( x) = i =1 ( xi − E ( x)) 2 n −1 10.ºs (entre –100 e 1000) ao utilizador. listando os vinte elementos por ordem inversa. pedir um número ao utilizador e procurar este número no array. 6. 3. O programa termina quando for introduzida a palavra FIM. fornecida pelo utilizador. Escreva um programa para pedir 10 números ao utilizador. 4. Se encontrar..Informática – Eng. informe a posição em que foi encontrado. 9. Crie um programa que calcule o produto interno dos arrays unidimensionais v1 e v2. 12 de 13 . os armazene e indique se foram introduzidos por ordem crescente. Mostre o conteúdo deste array. armazenar esses valores num array e pedir um outro número ao utilizador para indicar quantos números do array são inferiores a esse número. 8. Faça um programa que peça 10 n.. Escreva um programa que some os elementos da diagonal principal de uma matriz bidimensional quadrada.Package #2 de Exercícios em Java Exercícios Adicionais – Arrays 1.1] × v2[n . No primeiro caso deve indicar se o ordenamento é de forma crescente ou decrescente. + v1[n . caso contrário diga que não foi encontrado.ª Civil . A seguir. 2. fornecida pelo utilizador. Recorda-se que o produto interno de dois vectores é o somatório: v1[0] × v2[0] + v1[1] × v2[1] + . Pretende-se um programa que calcule a média e o desvio padrão de uma sequência de n valores inteiros lidos do utilizador.

Considerando que o domínio é [0. Desenvolva um programa que peça ao utilizador 2 conjuntos A e B de n. basta colocar o valor de tabela[i] a 0 se o n. Jogo 13: 2 Pág.ª Civil .1. 12.7. Para isso. conforme se venceu a equipa da casa. empataram ou venceram os visitantes.3. uma tabela de 10 elementos binários (zeros e uns) pode indicar quando é que cada uma dos números pertence ou não a um dado conjunto. De notar que a operação produto interno só faz sentido para arrays do mesmo tamanho.1.0} indica que os números que fazem parte do conjunto são: 0.1. Por exemplo.0. O output esperado. X ou 2.5. após introdução dos resultados dos desafios é: Jogo 1: X Jogo 2: 1 Jogo 3: 1 . Em função do resultado introduzido.Informática – Eng.6.ºs de 1 dígito e calcule A∪B e A∩B.º não pertencer ao conjunto ou a 1 caso pertença.9].. deve ser apresentado 1. 13 de 13 . a tabela {1.1.Package #2 de Exercícios em Java arrays.2.0. Faça um programa que leia os resultados de cada um dos 13 jogos que servem de base ao Totobola.1.. Uma tabela pode servir para representar conjuntos de números inteiros. 11.0.

Sign up to vote on this title
UsefulNot useful