Jump to content

[Resolvido] Parar próximas linhas de pergunta se a resposta for errada


Recommended Posts

Posted (edited)

Quero que o programa pare de mostrar as próximas linhas caso a anterior seja a resposta errada.

É esse o código...

Program Pzim ;
Var
prova,corrida,natacao,barra:Integer;
candidato,aprovado,desaprovado,erronota:string;
sexo:char;
Begin
//==================================NOME e SEXO===================================
Write('Digite o nome do candidato: ');
Readln(candidato);
Write('Qual o sexo: ');
Readln(sexo);
//=================================PROVA-TEÓRICA==================================
Begin
aprovado:='Aprovado! Proxima etapa...';
desaprovado:='Desaprovado! Nao pode seguir para a proxima etapa!';
erronota:='Nota invalida, so e permitido entre 0 e 10!';

Write('Media da prova: '); //Perguta a media da prova
Readln(prova);             //Ler a nota da prova

//--------------------------------------------------------------------------------
If (prova>8) and (prova<=10) Then             //Se a nota for maior que 8 esta aprovado
begin
Writeln(aprovado)                     //Confirma que foi aprovado
end
else
If (prova>10) or (prova<0) Then             //Verifica se a nota é maior que 10 ou menor que 0
begin
Writeln(erronota);                     //Mensagem de nota inválida
end
else
If (prova<=8) or (prova>=0) Then             //Verifica se a nota é menor que 8 e igual a 0
Writeln(desaprovado);                     //Confirma que foi desaprovado
//--------------------------------------------------------------------------------
//==============================CORRIDA===========================================
Writeln;
Write('Quantos Km o candidato ',candidato,' percorreu: '); // Pergunta quantos Km ele correu
Readln(corrida);             //Ler quantos Km ele correu
//--------------------------------------------------------------------------------
If (sexo='m') and (corrida>=100) Then         //Candidato masculino aprovado
Begin
Writeln(aprovado)                     //Mensagem de aprovado
End
else
If (sexo='f') and (corrida>=50) Then         //Candidato feminino aprovado
Begin
Writeln(aprovado)                 //Mensagem aprovado
end
else
if (sexo='m') and (corrida<100) Then
Begin
Writeln(desaprovado)                     //Mensagem de desaprovado
End
else
If (sexo='f') and (corrida<50) Then         //Verifica se é menor que 50
Begin
Writeln(desaprovado);                 //Mensagem de desaprovado
End;
End;
//--------------------------------------------------------------------------------
//======================================NATAÇÃO===================================
Writeln;
Write('Quantos KM o candidato nadou: ');
Readln(natacao);
//--------------------------------------------------------------------------------
If (sexo='m') and (natacao>=10) Then         //Candidato masculino aprovado
Begin
Writeln(aprovado)                     //Mensagem de aprovado
End
else
If (sexo='f') and (natacao>=10) Then         //Candidato feminino aprovado
Begin
Writeln(aprovado)                 //Mensagem aprovado
end
else
if (sexo='m') and (natacao<10) Then
Begin
Writeln(desaprovado)                     //Mensagem de desaprovado
End
else
If (sexo='f') and (natacao<10) Then         //Verifica se é menor que 50
Begin
Writeln(desaprovado);                 //Mensagem de desaprovado
End;
//--------------------------------------------------------------------------------
//=====================================Barra======================================
Writeln;
Write('Quantas barras o candidato fez: ');
Readln(barra);
//--------------------------------------------------------------------------------
If (sexo='m') and (barra>=1) Then         //Candidato masculino aprovado
Begin
Writeln(aprovado)                     //Mensagem de aprovado
End
else
If (sexo='f') and (barra>=1) Then         //Candidato feminino aprovado
Begin
Writeln(aprovado)                 //Mensagem aprovado
end
else
if (sexo='m') and (barra<=0) Then
Begin
Writeln(desaprovado)                     //Mensagem de desaprovado
End
else
If (sexo='f') and (barra<=0) Then         //Verifica se é menor que 50
Begin
Writeln(desaprovado);                 //Mensagem de desaprovado
End;
//--------------------------------------------------------------------------------




End.
Edited by thoga31
GeSHi
Posted

Eu costumo usar o repeat..until para verificar as respostas. Só deixa passar se a resposta for válida.

Aplica, onde tens o problema.

A mim parece-me que o problema não é a validação de dados. Aqui estamos perante a introdução sequencial de dados, e à medida que um critério não é cumprido, o candidato é reprovado e as questões sobrantes são ignoradas. 😉

  • Vote 1

Knowledge is free!

Posted

Nota: o meu nome não é "Stack" mas sim "thoga31", da mesma forma que tu és o "allancarlos123" e não o "null" 😉

Como resolveste o teu problema? Com a variável de controlo?

... onde é que eu já vi isto?!? LOL

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.