Ir ao conteúdo
  • Cadastre-se

Solução de problema em pascal


Posts recomendados

Bom dia,

Preciso resolver a questão abaixo para a faculdade, mas não consigo passar do ponto informado.

Será que alguém pode ajudar?

 

Abraços.

 

4ª Questão: Certa quantidade de acadêmicos participou de um congresso sobre energia nuclear. Confeccionar um programa para pedir o número de inscrição, o nome, o sexo e a idade de cada participante e ao final informar a maior idade entre os homens (sexo=”M”) e a menor idade entre as mulheres (sexo=”F”).

Program Q4;varBeginclrscr;resp:='s';while ((resp='S') or (resp='s')) dowrite('Número de inscrição: ');readln(ni);write('Nome: ');readln(nome);write('Sexo (m/f): ');readln(sex);write('Idade: ');readln(id);write('Digite "s" para continuar: ');readln(resp);end;for sex='m' dobeginid:=
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@renanvalle

Crie 2 variáveis.

maioridade :=0

menoridade :=200

 

Troque seu FOR por um IF.

 

Se sexo for masculino faça

Se idade for maior que maioridade

maioridade := idade

 

Se sexo for feminino faça

Se idade for menor que menoridade

menoridade := idade

 

Isso vai funcionar para um caso. Pra ficar fazendo a pergunta em loop, você precisa criar um laço de repetição e colocar esse código dentro dele.

Link para o comentário
Compartilhar em outros sites

Brigadão Math.Pi,

 

Mas preciso dele no looping mesmo, esse é o desafio.

Ta difícil.

Consegui aplicando isso, mas ele lê só o último valor colocar de acordo com o sexo, conforme abaixo.

 


Program Q4;varresp,sex: char;nome,ni: string;id, x, y, aux1,aux2: integer;Beginclrscr;resp:='s';while ((resp='S') or (resp='s')) dobeginwrite('Número de inscrição: ');readln(ni);write('Nome: ');readln(nome);write('Sexo (m/f): ');readln(sex);write('Idade: ');readln(id);writeln('');write('Digite "s" para continuar: ');readln(resp);writeln('');aux1:=0;  aux2:=200;If sex='m' thenif id<aux2 then x:=id<aux2;If sex='f' thenif id>aux1 then y:=id>aux1;end;writeln('A maior idade entre os homens é: ',x:3:0,' anos!');writeln('A menor idade entre as mulheres é: ',y:3:0,' anos!');  End.

Não existe uma condicional que nem a MÁXIMO e MÍNIMO que nem no excel?

Link para o comentário
Compartilhar em outros sites

@Mention,

Obrigado pela força antecipadamente, mas realmente não estou conseguindo, não é algo na qual tenho facilidade.

Não quero a resposta dada, já que sei as regras do site, mas estou tentando e realmente não está saindo.

Depois dessa nova orientação, ficou conforme abaixo, mas não está rodando.

 

De qualquer forma, obrigado mesmo!

Program Q4;uses crt;Varresp,sex: char;numi,nome: string;id,aux1,aux2,x,y: integer;cont1,cont2: array [1..1000] of integer;Begin clrscr; resp:='s'; while ((resp='S') or (resp='s')) do begin Write('Número de inscrição: ');readln(numi); Write('Nome: ');readln(nome); Write('Sexo (m/f): ');readln(sex); Write('Idade: ');readln(id); If sex='m' then id:=cont1; aux1:=200; If sex='m' then If id<aux1 then x:=id<aux1; If sex='f' then cont2:=cont2; aux2:=0; If sex='f' then If id>aux2 then y:=id>aux2; end; writeln('A maior idade entre os homens é: ',x:3:0,' anos!'); writeln('A menor idade entre as mulheres é: ',y:3:0,' anos!'); End.
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@renanvalle

Pra que esses cont1 e cont2? Não têm utilidade.

Você não precisa armazenar a idade em outra variável para trabalhá-la. E também não pode criar x e aux para fazer o MESMO trabalho.

Também não pode inicializar uma variável dentro do while se você vai precisar trabalhar o número alterado anteriormente. Somente no começo do programa.

 

Faça assim:

 If sex='m' and id > maior then // se sexo for masculino E idade for maior do que a maior armazenada.   maior:= id;  // maior substitui a maior armazenada antes.

No final, mostre a variável 'maior'. Esqueça esse x, y.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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