Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Algoritmo de pessoa mais velha e mais nova


Posts recomendados

var
nome, nome_mais_velha, nome_mais_nova: char;
idade, idade_mais_velha, idade_mais_nova, i: integer;

begin
for i:= 1 to 4 do 
writeln('Informe o nome da ', i, 'ª pessoa: ');
readln(nome);
writeln('Informe a idade da ', i, 'ª pessoa: ');
readln(idade);
if (i = 1) then
nome_mais_velha := nome;
idade_mais_velha := idade;
nome_mais_nova := nome;
idade_mais_nova := idade;

if (idade > idade_mais_velha) then
nome_mais_velha := nome;
idade_mais_velha := idade;

if (idade < idade_mais_nova) then
nome_mais_nova := nome;
idade_mais_nova := idade;
writeln('Mais velha: ', nome_mais_velha, ' com ', idade_mais_velha, ' anos');
writeln('Mais nova: ', nome_mais_nova, ' com ', idade_mais_nova, ' anos')
end.

Bom dia, estou fazendo um exercicio e ele pede para fazer um algoritmo que receba o nome e a idade de um determinado numero de pessoas e mostre o nome da pessoa mais velha e o nome da pessoa mais nova, primeiro fiz em portugol e usei o programa visualg e o algoritmo funcionou corretamente depois converti o algoritmo para o pascal que é este daqui mais quando uso o programa (Pascalzim) quando o programa executa ele le nao da a opcao pra digitar o nome e a idade da pessoa ele le tudo de uma vez, o que eu errei??

 

 

No portugol ficou assim

var
nome, nome_mais_velha, nome_mais_nova: caracter
idade_mais_velha, idade_mais_nova, i: inteiro
idade: inteiro
inicio
para i de 1 ate 4 faca
escreva("Informe o nome da ", i, "ª pessoa: ")
leia(nome)
escreva("Informe a idade da ", i, "ª pessoa: ")
leia(idade)
se (i = 1) entao
nome_mais_velha <- nome
idade_mais_velha <- idade
nome_mais_nova <- nome
idade_mais_nova <- idade
senao
se (idade > idade_mais_velha) entao
nome_mais_velha <- nome
idade_mais_velha <- idade
fimse
se (idade < idade_mais_nova) entao
nome_mais_nova <- nome
idade_mais_nova <- idade
fimse
fimse
fimpara
escreval("Mais velha: ", nome_mais_velha, " com ", idade_mais_velha, " anos")
escreval("Mais nova: ", nome_mais_nova, " com ", idade_mais_nova, " anos")
fimalgoritmo

 

 

no pascal o programa le assim:

 

 

Sem título.jpg

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

1#

A primeira coisa a fazer é indentar o código, exemplo:

var
  nome, nome_mais_velha, nome_mais_nova: char;
  idade, idade_mais_velha, idade_mais_nova, i: integer;

begin
for i:= 1 to 4 do 
  writeln('Informe o nome da ', i, 'ª pessoa: ');
readln(nome);
writeln('Informe a idade da ', i, 'ª pessoa: ');
readln(idade);
if (i = 1) then
  nome_mais_velha := nome;
idade_mais_velha := idade;
nome_mais_nova := nome;
idade_mais_nova := idade;

if (idade > idade_mais_velha) then
  nome_mais_velha := nome;
idade_mais_velha := idade;

if (idade < idade_mais_nova) then
  nome_mais_nova := nome;
idade_mais_nova := idade;
writeln('Mais velha: ', nome_mais_velha, ' com ', idade_mais_velha, ' anos');
writeln('Mais nova: ', nome_mais_nova, ' com ', idade_mais_nova, ' anos')
end.

Já ajuda muito...

 

 

 

2#

Visualmente, já dá para ver o que aconteceu... você esqueceu de colocar os begin/end do for e dos if.

 

 

 

3#

Esses if são mutuamente excludentes, ou seja, precisaria utilizar else entre eles.

 

Sugiro primeiro apenas corrigir o citado no 2#. Só após ajusta para o uso do else.

 

 

 

***

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...