Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DIF

Como colocar outra mensagem de erro?

Recommended Posts

ola, tipo eu quero colocar outra mensagem de erro nesse programa.. mas nao to conseguindo. quero que quando a pessoa informe a direçao errada ele diz que a direçao deve ser N ou S em latitude e L ou O na longitude.

ali ja apresenta erro se passar de 360 graus na latitude e 180 graus na longitude. se eu tento colocar essas duas mensagens de erro... ele só apresenta uma.. e na outra apresenta o mesmo erro ... e teria q ser um ou outro dependendo do erro.

como que eu poderia colocar?

 

ja tentei fazer uma condiçao assim:

 

if (direcao <> N ) or (direcao <> S) then
   write(' erro.  A direçao da Latitude deve ser N ou S ' );

ja tentei assim tbm:

 

if direcao = 'N'  then
	begin	
	writeln;
	write('Antípoda: ',grau, ' graus S')
else
		write('Erro. A direçao da Latitude deve ser N ou S ');

mas nao funcionou..

 

 

program menu;
uses crt;
var
 opcao : integer;

procedure latitude;
var 
  direcao: string;
  grau: integer;

begin
	 clrscr;
	write('Qual o Grau que deseja calcular: '); readln(grau);
	 
	if  grau > 360 then
			begin
			   writeln;
			   gotoxy(15, 10);
			  writeln(' Erro. A latitude não pode ultrapaçar 360 graus. ');
			end
		else
		 Begin
		   write('Direção: '); readln(direcao); 
		  end;
	   
	 if direcao = 'N'  then
			 begin	
				   writeln;
				   write('Antípoda: ',grau, ' graus S');
			  end;
			
	 if  direcao = 'S'  then
			  begin	 
					 writeln;
					 write('Antípoda: ',grau, ' grau N');
			   end;
		
	
	readkey;
end;

procedure longitude;

var
  direcao: string;
  calc,grau: integer;

begin
  clrscr;
		 write('Qual o Grau que deseja calcular: '); readln(grau);
		 if  grau > 180 then
			begin
			   writeln;
			   gotoxy(15, 10);
			  writeln(' Erro. A longitude não pode ultrapaçar 180 graus. ');
			end
		else
		 Begin
		   write('Direção: '); readln(direcao); 
		  end;
		
		if  direcao = 'O'  then
			Begin
			   calc:= 180 - grau;
				writeln;
			   write('Antípoda: ', calc, ' graus L');   
			  end;

		 if direcao = 'L'  then
			begin
			  calc:= 180 - grau;
 			 writeln;
			 write('Antípoda: ', calc, ' graus O');	   
			 end;
  readkey;
end;

begin
   while ( opcao <> 3 ) do
	 begin
	   clrscr;
	   gotoxy(30, 10);
	   write('1 -- Latitude ');
	   gotoxy(30, 12);
	   write('2 -- Longitude ');
	   gotoxy(30, 14);
	   write('3 -- Sair ');
	   gotoxy(30, 18);
	   write( ' Escolha uma opcao : ' ); readln( opcao );
	   case opcao of
			1 : latitude;
			2 : longitude;
		  3 :
		   begin
			  gotoxy( 30, 22 );
			 writeln( ' Ate mais ' );

			   end;
		  end;
	 end;
  readkey;
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha naum tem como eu compilar, + n vejo o pq do seu codigo n funcionar..

tente fazer com cases entaum..

em portugol é assim:

Escolha (direcao)
	Caso 'N': ...
	Caso 'S': ....
	Caso Contrario: Escreva("ERRO"); //Esse seria o default
Fim_Escolha;

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.