allancarlos123 Posted February 24, 2014 at 03:38 PM Report #546486 Posted February 24, 2014 at 03:38 PM (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 February 24, 2014 at 04:04 PM by thoga31 GeSHi
thoga31 Posted February 24, 2014 at 04:07 PM Report #546490 Posted February 24, 2014 at 04:07 PM Primeiro que nada, indenta o código. De seguida, mega-comentários não são um bem para a comunidade, redu-los. Quanto ao teu problema, utiliza uma variável de controlo do tipo boolean. 1 Report Knowledge is free!
passarito Posted February 24, 2014 at 04:35 PM Report #546498 Posted February 24, 2014 at 04:35 PM Eu costumo usar o repeat..until para verificar as respostas. Só deixa passar se a resposta for válida. Aplica, onde tens o problema.
thoga31 Posted February 24, 2014 at 04:54 PM Report #546503 Posted February 24, 2014 at 04:54 PM 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. 😉 1 Report Knowledge is free!
allancarlos123 Posted February 24, 2014 at 05:35 PM Author Report #546505 Posted February 24, 2014 at 05:35 PM (edited) Vou tentar fazer do seu modo Stack, depois chego por aqui. @EDIT Finalmente conseguir ! 😄 Obrigado a quem me ajudou 🙂 Esse fórum é nota 10! Edited February 24, 2014 at 05:35 PM by allancarlos123
thoga31 Posted February 25, 2014 at 09:21 PM Report #546664 Posted February 25, 2014 at 09:21 PM 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? 1 Report Knowledge is free!
passarito Posted February 26, 2014 at 02:33 PM Report #546731 Posted February 26, 2014 at 02:33 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now