Ir ao conteúdo
  • Cadastre-se

While ... do me dando dor de cabeça


Visitante: guga774

Posts recomendados

Visitante: guga774
 

bem estou com um probleminha que está me dando uma dor de cabeça. Aparentemente deve ser uma coisa simples a qual não estou conseguindo identificar e resolver. Não consigo fazer o looping se iniciar apos a variavel "RESP" a qual atriui como variavel char. Coloquei o mesmo problema em um algoritmo mais simples para facilitar a identificação. Se alguem me ajudar agradeço.

program Somainic;
uses crt;
var
A, B, TOTAL:real;
RESP:char;
begin
clrscr;
RESP:='S';
while(RESP='S')do
begin
Write('Digite Valor de A: ');
read(A);
write('Digite valor de B: ');
read(;
TOTAL:=A+B;
writeln('valor total ‚: ',TOTAL:2:0);
write('deseja continuar? ');
read(RESP);
end;
readkey
END.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá,

Vamos lá:

1) Usar o mesmo identificador para a mesma variável.

Você declarou:

resposta[COLOR=#000000]:[/COLOR][COLOR=#0000ff]char[/COLOR][COLOR=#000000];[/COLOR]

e está usando:

resposta[COLOR=#000000]=[/COLOR][COLOR=#a31515]'S'[/COLOR][COLOR=#000000];[/COLOR]

Ou seja, RESP é diferente de RESPOSTA... ou você altera a declaração de RESP para RESPOSTA ou altera no programa RESPOSTA para como foi declarado.

2) O While precisa de uma condição

Você declarou:

[COLOR=#2b91af]while[/COLOR] [COLOR=#000000]([/COLOR]resposta[COLOR=#a31515]'S'[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#2b91af]do[/COLOR] 

Neste caso faltou colocar o "=". (não se esquecendo da questão do resposta> x resposta)

Poderia ficar assim:

[COLOR=#2b91af]while[/COLOR] RESP[COLOR=#000000]=[/COLOR][COLOR=#a31515]'S'[/COLOR] [COLOR=#2b91af]do[/COLOR]

3) Read x Readln

Existe uma pequena diferença entre Read e Readln. Em termos práticos SEMPRE USE READLN. Para saber mais clique aqui.

4) Letra Maiúscula x Minúscula

O Pascal em si não difere entre maiúsculas e minúsculas por exemplo quando se trata de identificadores, ex.: while, WHILE, While, WhIlE etc é mesma coisa, assim como resposta resposta REsp etc também, ou seja, é como se tudo sempre fosse comparado se todas tivessem em maiúsculas por exemplo.

Mas, nas condições essa regra não vale. Veja nesse exemplo:

[COLOR=#2b91af]while[/COLOR] [COLOR=#000000]([/COLOR]resp[COLOR=#000000]=[/COLOR][COLOR=#a31515]'S'[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#2b91af]do[/COLOR] 

Neste caso só vai "continuar" se o usuário pressionar 'S' (em maiúsculo). Para aceitar as duas formas você poderia declarar as duas possibilidades na condição.

Ex.:

[COLOR=#2b91af]while[/COLOR] [COLOR=#000000]([/COLOR]RESP[COLOR=#000000]=[/COLOR][COLOR=#a31515]'S'[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#0000ff]or[/COLOR] [COLOR=#000000]([/COLOR]RESP[COLOR=#000000]=[/COLOR][COLOR=#a31515]'s'[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#2b91af]do[/COLOR]

***

Tente fazer as correções e poste aqui o resultado.

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante: guga774
 

EstilingueAtomico

simplesmente perfeito, o que tava dando pau no meu programa era esse bendito "readln", nunca imaginaria que tivesse algo a ver.

valeu cara me ajudo muito, acabei de excluir o "read" do meu dinionario também hehe.

Link para o comentário
Compartilhar em outros sites

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