Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Estrutura - Repeat-Until com Erro


Posts recomendados

Estou com um erro sintáxico no código, onde diz que o "Until" não foi esperado, mas nao sei o porque, li e reli e até onde vi está tudo certo, se alguém puder me dar uma luz, agradeceria. 

Program Algoritmo;

var cont:integer;
		continuar,opc:char;
		num,soma:real;
		
Begin
	  Repeat
			writeln('A - Exercício 1.');
			writeln('B - Exercício 2.');
			writeln('S - Sobre o Aluno.');
			writeln('F - Fim.');
			write('Onde deseja entrar? ');
		  read(opc);
		  case (opc) of
			A: begin
					cont:=-50;
									
					for cont:=-50 to 10 do 	
					if (cont mod 2=0) then
					begin
						writeln('Os valores pares são: ',i);
					end;
					readkey;	
		  end;
			 
			B: begin
					cont:=0; 
					soma:=0;    
					continuar:='s'; 
					
					while (continuar='s') do
					begin
						write('Digite um número real: ');
						read(num);
						cont:=cont+1;
					if (num<=0) then
					repeat
						writeln;
					  write('Digite um valor válido: ');
						read(num);
						write('');
					until (num>0);
					writeln;
					write('Deseja inserir outro valor? ');
					read(continuar);
					soma:=soma+num;
					end;
					write('A soma dos valores é: ',soma);
					readkey;
			end;
			
			S: begin
			   writeln('z - Sistemas de Informação - Algoritmos');
			   writeln('Nome: y; RA: x');
			   readkey;
			end;
			
			else begin
			     writeln('Você digitou um caractere inválido!');  
			     readkey;
			end;
			
		until (opc := 'F'); 
		write('O Algoritmo chegou ao fim.');
    
	end;
	end.

 

Bom, analisando mais, achei o erro, as opções de entrada do case tinham que estar entre apóstrofos.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Para contextualizar.... provavelmente estaria usando o PascalZim, correto?

 

Sobre:

Em 15/06/2021 às 20:58, Nikollas G. Ohta disse:

Estou com um erro sintáxico no código, onde diz que o "Until" não foi esperado, mas não sei o porque, li e reli e até onde vi está tudo certo, se alguém puder me dar uma luz, agradeceria. 

 

Teste no PascalZim 6.0.3.1 e deu esse mesmo erro:


image.png

 

 

Sobre:

Em 15/06/2021 às 20:58, Nikollas G. Ohta disse:

Bom, analisando mais, achei o erro, as opções de entrada do case tinham que estar entre apóstrofos.

 

Não, só para deixa claro: o problema não foi a falta de apóstrofos. Isso seria apenas "mais um outro problema". O erro ali foi que faltou um end; do case.

 

Veja:

image.png

 

Inseri o end; e passou a dar outro erro. Sacou?

 

Os erros seguintes são mais claros, como [1] esse que é para usar =, em vez de :=; [2] apagar esse end;, mais abaixo, que provavelmente era o do case; [3] passar a usar o apóstrofo nas opções do case, já que estaria comparando com um "caractere", e não com uma "variável"; [4] usar cont em vez de i lá no caso 'A'.

 

Dica 1: sempre mantenha o código indentado. No PascalZim, basta pressionar Ctrl+i para dar um ajuda.

Dica 2: esses end do case ficam meio soltos mesmo... como sugestão, recomendo deixar sempre um comentário como esse ao lado dele.

Se quiser extrapolar, ficaria bom também coloca um comentário para cada end dos casos. Ex.:

 

 

image.png

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!