INED ALP Registros, Vetores e Matrizes Lista de Exercícios - 05 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior 1) Elabore um algoritmo que leia 10 números inteiros digitados pelo usuário e armazene-os em um vetor. Em seguida, o algoritmo deverá escrever na tela cada número digitado e o seu respectivo quadrado. início declare num[10], i : inteiro i ← 0 enquanto (i < 10) faça escreva “Digite um valor: ” leia num[i] i ← i + 1 fim enquanto i ← 0 enquanto (i < 10) faça escreva “Valor: ” , num[i], “ quadrado: ”, num[i] * num[i] i ← i + 1 fim enquanto fim 2) Elabore um algoritmo que leia 9 números inteiros digitados pelo usuário e armazene-os em uma matriz 3 x 3. Em seguida, o algoritmo deverá escrever na tela cada número digitado e o seu respectivo quadrado. início declare mat[3][3], i, j : inteiro para i de 0 até 2 passo 1 faça para j de 0 até 2 passo 1 faça escreva “Digite um valor: ” leia mat[i][j] fim para fim para para i de 0 até 2 passo 1 faça para j de 0 até 2 passo 1 faça escreva “Valor: ” , mat[i][j], “ quadrado: ”, mat[i][j] * mat[i][j] fim para fim para fim 3) Elabore um algoritmo que leia do teclado o nome de 20 pessoas, com no máximo 10 letras cada, e suas respectivas idades em anos. Armazene-os em um vetor e em seguida imprima a lista contendo os 20 nomes lidos e suas respectivas idades. INED ALP tipo pessoa nome[10] : carácter idade : inteiro fim tipo início declare pes[20], i : pessoa i ← 0 enquanto (i < 20) faça escreva “Digite o nome da pessoa: ” leia pes[i].nome escreva “Digite a idade da pessoa: ” leia pes[i].idade i ← i + 1 fim enquanto i ← 0 enquanto (i < 20) faça escreva “Nome: ” , pes[i].nome escreva “Idade: ”, pes[i].idade i ← i + 1 fim enquanto fim 4) Elabore um algoritmo que leia do teclado 20 números inteiros, armazene-os em uma matriz 4 x 5 e em seguida calcule a soma dos números pares digitados. início declare mat[4][5], i, j, soma : inteiro para i de 0 até 3 passo 1 faça para j de 0 até 4 passo 1 faça escreva “Digite um valor inteiro: ” leia mat[i][j] fim para fim para soma ← 0 para i de 0 até 3 passo 1 faça para j de 0 até 4 passo 1 faça se (mat[i][j] mod 2 = 0) então soma ← soma + mat[i][j] fim se fim para fim para escreva “A soma dos números pares digitados é: ”, soma fim 5) Leia do teclado um vetor de 15 números inteiros. Em seguida, copie esses números para um segundo vetor de mesmo tamanho, alterando o sinal dos números que estiverem em posições pares. Ao final, mostre os valores do vetor resultante na tela. início declare v1[15], v2[15], i : inteiro i ← 0 INED ALP enquanto (i < 15) faça escreva “Digite um valor inteiro: ” leia v1[i] se (i mod 2 = 0) então v2[i] ← v1[i] * -1 senão v2[i] ← v1[i] fim se i ← i + 1 fim enquanto i ← 0 enquanto (i < 15) faça escreva v2[i] i ← i + 1 fim enquanto fim 6) Uma empresa fez uma pesquisa para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isso coletou o sexo do entrevistado (“M” ou “F”), sua idade e sua resposta (“S” ou “N”). Sabendo-se que foram entrevistadas 1000 pessoas, elabore um algoritmo para calcular e informar: • • • • • • Número de pessoas que responderam “Sim”; Número de pessoas que responderam “Não”; Quantas pessoas maiores de 18 anos gostaram do produto; Quantas pessoas menores de 18 anos não gostaram do produto; Quantas pessoas maiores de 18 anos, do sexo feminino, não gostaram do produto; Quantas pessoas menores de 18 anos, do sexo masculino, gostaram do produto. tipo pesquisa sexo : carácter idade : inteiro resp : carácter fim tipo início declare pesq[1000] : pesquisa declare i, contRespSim, contRespNao, contRespSimMaior18, contRespNaoMenor18, contRespNaoMaior18Fem, contRespSimMenor18Mas : inteiro i ← 0 enquanto (i < 1000) faça escreva “Digite o sexo do entrevistado: ” leia pesq[i].sexo escreva “Digite a idade do entrevistado: ” leia pesq[i].idade escreva “Digite a resposta do entrevistado: ” leia pesq[i].resp i ← i + 1 fim enquanto INED ALP i ← 0 enquanto (i < 1000) faça se (pesq[i].resp = ‘s’) então contRespSim ← contRespSim + 1 fim se se (pesq[i].resp = ‘n’) então contRespNao ← contRespNao + 1 fim se se ((pesq[i].resp = ‘s’) e (pesq[i].idade > 18)) então contRespSimMaior18 ← contRespSimMaior18 + 1 fim se se ((pesq[i].resp = ‘n’) e (pesq[i].idade < 18)) então contRespNaoMenor18 ← contRespNaoMenor18 + 1 fim se se ((pesq[i].resp = ‘n’) e (pesq[i].idade > 18) e pesq[i].sexo = ‘f’)) então contRespNaoMaior18Fem ← contRespNaoMaior18Fem + 1 fim se se ((pesq[i].resp = ‘s’) e (pesq[i].idade < 18) e pesq[i].sexo = ‘m’)) então contRespSimMenor18Mas ← contRespSimMenor18Mas + 1 fim se i ← i + 1 fim enquanto escreva “Número de pessoas que responderam Sim: ”, contRespSim escreva “Número de pessoas que responderam Não:”, contRespNao escreva “Número de pessoas maiores de 18 anos que gostaram do produto: ”, contRespSimMaior18 escreva “Número de pessoas menores de 18 anos que não gostaram do produto: ”, contRespNaoMenor18 escreva “Número de pessoas maiores de 18 anos, do sexo feminino que não gostaram do produto: ”, contRespNaoMaior18Fem escreva “Número de pessoas menores de 18 anos, do sexo masculino que gostaram do produto: ”, contRespSimMenor18Mas fim 7) Considerando os algoritmos abaixo: início declare Vet1 [20], Vet2 [20], Vet3 [20], i : inteiro para i de 0 até 19 passo 1 faça Vet1[i] i Vet2[i] 20 – i fim para para i de 0 até 19 passo 1 faça Vet3[i] Vet1[i] + Vet2[i] fim para fim Indique o valor armazenado em: a) Vet3[1]; 20 b) Vet3[7]; 20 c) Vet3[19]; 20 INED ALP inicio declare Mat1[4][3], i, j : inteiro i 0 enquanto (i < 4) faça j 0 enquanto (j < 3) faça Mat1[i][j] (i * 4) – 3 j j + 1 fim enquanto i i + 1 fim enquanto i 0 enquanto (i < 4) faça j 0 enquanto (j < 3) faça escreva Mat1[i][j] j j + 1 fim enquanto i i + 1 fim enquanto fim Indique o valor que será impresso na tela na posição: a) Mat1[1][0] b) Mat1[3][2] c) Mat1[4][0] 1 9 lixo – não existe está posição. BONUS: Elabore um algoritmo que leia do teclado 10 números inteiros positivos diferentes, e depois exiba-os na tela em ordem crescente. Não se esqueça de utilizar vetor e estrutura de repetição.