Ir ao conteúdo

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


rami7

Posts recomendados

Postado

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==================================	Beginaprovado:='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 aprovadobegin	Writeln(aprovado)         		            //Confirma que foi aprovadoendelse	If (prova>10) or (prova<0) Then               //Verifica se a  nota é maior que 10 ou menor que 0begin	Writeln(erronota);                        //Mensagem de nota inválidaendelseIf (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 aprovadoBegin		Writeln(aprovado)                      //Mensagem de aprovadoEndelseIf	(sexo='f') and (corrida>=50) Then          //Candidato feminino aprovadoBegin		Writeln(aprovado)                    //Mensagem aprovadoendelseif (sexo='m') and (corrida<100) ThenBegin	Writeln(desaprovado)                      //Mensagem de desaprovadoEndelseIf (sexo='f') and (corrida<50) Then           //Verifica se é menor que 50Begin 	Writeln(desaprovado);                   //Mensagem de desaprovadoEnd;End;	//--------------------------------------------------------------------------------//======================================NATAÇÃO===================================	Writeln;	Write('Quantos KM o candidato nadou: ');	Readln(natacao);//--------------------------------------------------------------------------------If (sexo='m') and (natacao>=10) Then            //Candidato masculino aprovadoBegin		Writeln(aprovado)                      //Mensagem de aprovadoEndelseIf	(sexo='f') and (natacao>=10) Then          //Candidato feminino aprovadoBegin		Writeln(aprovado)                    //Mensagem aprovadoendelseif (sexo='m') and (natacao<10) ThenBegin	Writeln(desaprovado)                      //Mensagem de desaprovadoEndelseIf (sexo='f') and (natacao<10) Then           //Verifica se é menor que 50Begin 	Writeln(desaprovado);                   //Mensagem de desaprovadoEnd;	//--------------------------------------------------------------------------------//=====================================Barra======================================	Writeln;	Write('Quantas barras o candidato fez: ');	Readln(barra);//--------------------------------------------------------------------------------If (sexo='m') and (barra>=1) Then            //Candidato masculino aprovadoBegin		Writeln(aprovado)                      //Mensagem de aprovadoEndelseIf	(sexo='f') and (barra>=1) Then          //Candidato feminino aprovadoBegin		Writeln(aprovado)                    //Mensagem aprovadoendelseif (sexo='m') and (barra<=0) ThenBegin	Writeln(desaprovado)                      //Mensagem de desaprovadoEndelseIf (sexo='f') and (barra<=0) Then           //Verifica se é menor que 50Begin 	Writeln(desaprovado);                   //Mensagem de desaprovadoEnd;	//--------------------------------------------------------------------------------				End.	
  • Membro VIP
Postado

Olá rami7
 

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

Uma forma seria você colocar os trechos dentro dos respectivos ifs, ou seja:

 

If (prova>8) and (prova<=10) Then               //Se a nota for maior que 8 esta aprovado  begin  Writeln(aprovado)         		            //Confirma que foi aprovado    {AQUI TRECHO CASO ELE SEJA APROVADO}    endelse	  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

a parte que deve aparecer somente quando "aprovado", ficar dentro do primeiro if.

 

 

 

Existem outras formas, por exemplo criando uma variável auxiliar que "controle" o status do canditado. Ex.

APROVADO :boolean;

Se o candidato for aprovado, "marca" como true (APROVADO:=true;), caso contrário, marca como false.

 

Daí, ao passar para próxima etapa, verifica como está essa variável. ex.:

if APROVADO then  //(obs.: o mesmo que "if APROVADO=true then")  begin  //--------------------------------------------------------------------------------  //==============================CORRIDA===========================================  Writeln;  Write('Quantos Km o candidato ',candidato,' percorreu: '); // Pergunta quantos Km ele correu  .  .

No aguardo.

Arquivado

Este tópico foi arquivado e está fechado para 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!