Crie um algoritmo que:
a) Leia e escreva o nome e a altura das moças inscritas em um concurso de beleza, até que seja digitada o nome ‘MARIA’, que marca o final da lista, mas é para ser computada no concurso.
b) Calcule e escreva as duas maiores alturas e quantas moças as possuem.
a) Leia e escreva o nome e a altura das moças inscritas em um concurso de beleza, até que seja digitada o nome ‘MARIA’, que marca o final da lista, mas é para ser computada no concurso.
b) Calcule e escreva as duas maiores alturas e quantas moças as possuem.
Passo 1
O problema pede um algoritmo que leia repetidamente o nome e a altura de moças inscritas num concurso de beleza até que seja digitado o nome “MARIA” (esse nome também deve entrar na contagem) e, ao final, apresente as duas maiores alturas encontradas e quantas moças têm cada uma delas. O conteúdo envolve leitura de dados, laço de repetição e manutenção de variáveis para máximos e contadores.
Passo 2
Inicialize quatro variáveis para rastrear as duas maiores alturas e suas quantidades:
,
,
,
.
Passo 3
Construa um loop que, a cada iteração, leia
e
e atualize as variáveis conforme:
- Se , então
,
,
,
. - Senão, se , faça
. - Senão, se , então
,
. - Senão, se , faça
.
No final de cada iteração, verifique se ; se sim, interrompa o loop.
Passo 4
Quando o loop terminar,
e
guardam as duas maiores alturas e
,
contam quantas moças têm cada uma. Basta escrever esses valores.
Resposta
repita
leia nome, altura
se altura > \max(1) então
\max(2) \leftarrow \max(1)
\mathrm{cnt}(2) \leftarrow \mathrm{cnt}(1)
\max(1) \leftarrow altura
\mathrm{cnt}(1) \leftarrow 1
senão se altura = \max(1) então
\mathrm{cnt}(1) \leftarrow \mathrm{cnt}(1 + 1)
senão se altura > \max(2) então
\max(2) \leftarrow altura
\mathrm{cnt}(2) \leftarrow 1
senão se altura = \max(2) então
\mathrm{cnt}(2) \leftarrow \mathrm{cnt}(2 + 1)
fim se
até que nome = "MARIA"
leia nome, altura
se altura > \max(1) então
\max(2) \leftarrow \max(1)
\mathrm{cnt}(2) \leftarrow \mathrm{cnt}(1)
\max(1) \leftarrow altura
\mathrm{cnt}(1) \leftarrow 1
senão se altura = \max(1) então
\mathrm{cnt}(1) \leftarrow \mathrm{cnt}(1 + 1)
senão se altura > \max(2) então
\max(2) \leftarrow altura
\mathrm{cnt}(2) \leftarrow 1
senão se altura = \max(2) então
\mathrm{cnt}(2) \leftarrow \mathrm{cnt}(2 + 1)
fim se
até que nome = "MARIA"
escreva "Maior altura:", \max(1), "Quantidade:", \mathrm{cnt}(1)
escreva "Segunda maior altura:", \max(2), "Quantidade:", \mathrm{cnt}(2)
escreva "Segunda maior altura:", \max(2), "Quantidade:", \mathrm{cnt}(2)