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.
Download

Algoritmos e Linguagens de Programação