Nome: ____________________________________ Nº ______ Turma: 1ª⊠ 2ª 3ª Série - Informática
Professora: Aline Mendonça Data: 08/11/2019
Raciocínio lógico, Aplicação de Princípios, Organização, ConhecimentoObservações: Atividade individual, com consulta ao material impresso do próprio aluno.
Criar os programas em Java dos problemas abaixo relacionados. Apresentar os códigos funcionando em 03/12/2019 no repositório do GitHub (Individual)
1) Criar um vetor A com 10 inteiros. Calcular e apresentar um vetor B onde cada elemento de B será a raiz quadrada do respectivo elemento de A;
2) Criar um vetor A com 10 inteiros. Calcular e apresentar quais e quantos elementos de A são números primos;
3) Criar um vetor A com 10 inteiros. Calcular e apresentar um vetor B, onde B terá os mesmos elementos de A em ordem inversa. Ou seja, o 1º elemento de B será o ultimo de A, o segundo elemento de B será o penúltimo de A e assim sucessivamente.
4) Ler um vetor A de 10 inteiros. Apresentar o maior valor e o menor valor lido.
5) Ler um vetor A de 10 inteiros. Apresentar o vetor B que será A em ordem crescente. Apresentar um vetor C que será A em ordem decrescente.
Lista complementar de Lógica de Programação e Técnicas de Programação e Algoritmos Treinando para trabalhar com vetores.
1) Ler um vetor A com 20 elementos. Separar os elementos pares e ímpares de A utilizando apenas um vetor extra B. Sugestão: no início do vetor B armazene os elementos pares de A e nas posições restantes do vetor B armazene os elementos de A que são ímpares.
2) Criar um vetor A com 5 elementos inteiros. Escreva um programa que imprima a tabuada de cada um dos elementos do vetor A.
3) Criar um vetor A com 10 elementos inteiros. Escreva um programa que imprima cada elemento do vetor A e uma mensagem indicando se o respectivo elemento é um número primo ou não.
4) Criar um vetor A com 10 elementos inteiros. Escreva um programa que imprima cada elemento do vetor A e a relação de todos os pares de 0 até o respectivo elemento.
5) Criar um vetor A com 10 elementos inteiros. Escreva um programa que imprima cada elemento do vetor A e a relação de todos os divisores do respectivo elemento.
6) Criar um vetor A com 11 elementos, indexados de 0 até 10. Sendo que cada elemento do vetor A é formado pela potência de base 2 elevado ao expoente igual a posição do respectivo elemento, ou seja: A[i] = 2i.
7) Criar um vetor A com 15 elementos inteiros. Construir um vetor B de mesmo tamanho, sendo que cada elemento do vetor B seja o fatorial do elemento correspondente em A.
8) Ler um vetor A com 10 elementos. Construir um vetor B de mesmo tipo e tamanho, sendo que cada elemento de B deverá ser o seguinte somatório: Bi = Somatório de Aj, para todo j variando de i até 10.
9) Criar dois vetores A e B cada um com 10 elementos inteiros. Desenvolver um programa que realize a intersecção dos vetores A e B para produzir um vetor C. Interseção de conjuntos = todos os elementos que existem em A e também existem em B.
10) Criar dois vetores A e B cada um com 10 elementos inteiros. Desenvolver um programa que crie um vetor C que é a diferença dos conjuntos formados pelos elementos dos vetores A e B. Diferença de conjuntos = todos os elementos do conjunto A que não existem no conjunto B.
11) Ler 10 elementos inteiros em um vetor A. Montar uma rotina de busca, para pesquisar se um dado elemento X está armazenado em A.
12) Números palíndromos são aqueles que escritos da direita para a esquerda têm o mesmo valor quando escritos da esquerda para a direita. Exemplo: 545; 789987; 97379; 123454321; etc. Escreva um programa que verifique se um dado vetor A de 10 elementos inteiros é um palíndromo, ou seja, se o primeiro elemento do vetor e igual ao último, se o segundo elemento do vetor é igual ao penúltimo e assim por diante até verificar todos os elementos ou chegar a conclusão que o vetor não é um palíndromo.
13) Criar um vetor A com 10 elementos inteiros. Construir um vetor B de mesmo tipo e tamanho, obedecendo as seguintes regras de formação: a) Bi deverá receber 1 quando Ai for par; b) Bi deverá receber 0 quando Ai for ímpar.
14) Criar dois vetores A e B cada um com 10 elementos inteiros. Construir um vetor C de mesmo tipo e tamanho, obedecendo as seguintes regras de formação: a) Ci deverá receber 1quando Ai for maior que Bi; b) Ci deverá receber 0 quando Ai for igual a Bi; c) Ci deverá receber -1 quando Ai for menor que Bi.
15) Ler um vetor A com dez elementos inteiros. Criar um vetor B que tenha os 10 elementos de A em ordem crescente e um vetor C que tenha os 10 elementos de A em ordem descrescente.
Precisaremos de dois vetores, o primeiro pode ser um vetor do tipo Inteiro que irá servir para armazenar os números digitados pelo usuário e outro do tipo Double para pegarmos a raiz quadrada do primeiro vetor (O segundo vetor tem que ser double, pois, caso a raiz quadrada não for inteira ela irá ser irracional. Ex: √2 = 1.41421356237...).
int a[] = new int[10]; double b[] = new double[10];
Importarei a Classe Scanner para pegarmos os dados do teclado
e também importarei a classe math para podermos utilizar o metódo sqrt();
. É ele que vai
pegar o número e retornar a Raiz Quadrada desse número.
import java.util.Scanner; import java.math.*;
agora irei Instanciar o objeto da Classe Scanner
Scanner in = new Scanner(System.in);
and it's now! Vai começar nossa Lógica de Programação.
Vamos Utilizar um laço for para pegar os dados digitados pelo usuário.
for(int i = 0 ; i <= a.length - 1 ; i++) {}
Esse laço for vai começar com i = 0;
, e esse 'i' vai até o
tamanho do nosso vetor (que no caso é 10). Porém, tem que ser o tamanho do nosso vetor menos 1,
já que que um vetor de tamanho 10 vai 0 até 9 (i <= a.length - 1;
). E a cada volta
do laço ele vai incrementar de 1 em 1 (i++;
).
for(i=0; i<= a.length - 1; i++) { System.out.println("Digite o "+(i+1)+" número: "); a[i] = in.nextInt(); b[i] = a[i]; b[i] = Math.sqrt(b[i]); }
Primeiro iremos fazer um System.out.println
pedindo para o usuário digitar o i-néssino número
(Lembre-se que o i
começa valendo 0, logo "(i+1)°"
irá aparecer na tela como 1°
).
Salvaremos o número que o usuário digitar no vetor 'a' na posição 'i'
(a[i] = in.nextInt();
). Colocaremos o valor de a[i]
em b[i]
(b[i] = a[i];
)
e com b[i] = Math.sqrt(b[i]);
, colocaremos a Raiz quadrada de b[i]
nele mesmo.
E pronto! é só apresentar b[i]
para o usuário.
Só falta dar o System.out.println
do resultado na tela.
E para isso, precisaremos apenas fazer o seguinte código:
for(i = 0; i <= a.length - 1; i++) { System.out.println("A raiz quadrada de " + a[i] + " = " +b[i]); }e voilà!
Meu código completo desse exercício
Talvez esteja um pouquinho diferente mas a lógica prevalece :)
Primeiramente, iremos pegar os 10 números digitados do usuário com o laço for.
for(i=0;i<=a.length-1;i++){ System.out.println("Digite "+(i+1)+"° número: "); a[i] = in.nextInt(); }
Continuando dentro desse for, iremos utilizar da seguinte lógica:
Iremos declarar um vetor TotalPrimos[i] = 0;
. Depois, criaremos outro
for(for(c=1;c<=a[i];c++){}
),
e dentro desse for que acabamos de criar, verificaremos se o numero 'a' na posição 'i' (a[i]
)
dividido pelo contador, deixa resto zero (if(a[i]%c==0)
). Se isso for verdade,
TotalPrimos[i]++;
.
for( c=1;c<=a[i];c++){ if(a[i] % c == 0){ TotalPrimos[i]++; } }
Vamos, supor que seja a primeira interação do programa com usuário, e no vetor a[0]
ele
digite 3 (a[0] = 3
). Então, TotalPrimos[0] = 0;
e depois vem o 2° laço for
(for(c=1;1<=3;c++){}
). Logo após, ele vai verificar se 3 / 1 deixa
resto 0 (if(3%1==0){}
). como isso é true, TotalPrimos[0] = 1;
. Após isso, o algoritmo vai voltar para o laço com c=2
e irá verificar se 3 / 2 deixa resto 0 (if(3%2==0){}
). Isso é false, então o algoritmo não irá fazer nada. E por último, voltará novamente ao laço com c=3
e novamente irá verificar se 3 / 3 deixa resto 0 (if(3%3==0){}
). Sendo isso true novamente, o TotalPrimos[0] = 2;
. Já que a definição de um número primo é:
um número que só pode deixar resto 0 por 1 e por ele mesmo
Iremos verificar depois se esse número deixa o total de 2 restos, ou seja, TotalPrimos[0] == 2;
(no caso, pelo que você viu na explicação anterior, 3 é um número primo, pois, só foi divido por 2 números, 1 e ele mesmo).
for(i=0;i<=a.length-1;i++){ System.out.println("Digite "+(i+1)+"° número: "); a[i] = in.nextInt(); TotalPrimos[i] = 0; for(c=1;c<=a[i];c++){ if(a[i]%c==0){ TotalPrimos[i]++; } } }
Declararei uma variável do tipo inteiro começando com 0, para guardar quantos números primos foram digitados.
int QuantidadePrimos=0;
Iremos verificar cada posição do TotalPrimos[i];
, para ver se esse elemento é
igual ou não a 2. Caso seja, vamos printar na tela que esse elemento é um número primo e incrementaremos mais um em
QuantidadePrimos
(QuantidadePrimos++;
). Caso não seja primo, printaremos que tal número não
é primo.
for (i=0;i<=a.length-1;i++) { if (TotalPrimos[i] == 2) { System.out.println(a[i]+" é primo"); QuantidadePrimos++; } else { System.out.println(a[i]+" não é primo"); } }
O último passo e o não menos importante, é o de mostrar para o usuário quantos primos tem no total.
System.out.print("A quantidade de números primos é: "+QuantidadePrimos);
Meu código completo desse exercício