Skip to content

Na matéria de P.A (Programação e Algoritmo) no meu curso de Desenvolvimento de Sistemas na Etec Guaianazes, foi proposto 20 problemas sobre vetores para os alunos selecionarem. Então, nesse repositório se encontra minhas soluções para tais problemas.

Notifications You must be signed in to change notification settings

Vitor-Carmo/P.A-Vetores

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Lista 6

Etec de Guaianazes

Nome: ____________________________________ ______ Turma: 1ª⊠ 2ª 3ª Série - Informática

Professora: Aline Mendonça Data: 08/11/2019

AVALIAÇÃO DE LÓGICA DE PROGRAMAÇÃO – ESTUDOS DE CASO

Critérios de Avaliação:

Raciocínio lógico, Aplicação de Princípios, Organização, Conhecimento

Observações: Atividade individual, com consulta ao material impresso do próprio aluno.

Estudos de caso – Vetores

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 6 Parte 2

Estudos de caso – Vetores


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.

Resoluções lista 6

Resolução do exercício 1

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 ).
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 :)


Resolução do exercício 2


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

About

Na matéria de P.A (Programação e Algoritmo) no meu curso de Desenvolvimento de Sistemas na Etec Guaianazes, foi proposto 20 problemas sobre vetores para os alunos selecionarem. Então, nesse repositório se encontra minhas soluções para tais problemas.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages