Podem-me explicar o que faz este programa passo a passo, nao percebo como o programa resulta pois na segunta repetiçao o x nao e 40 mas mesmo assim entra no if .


Program anda;
uses crt;
var x,f,y:integer;
begin

f:=0;
x:=40;
y:=5;

repeat
delay(100);
clrscr;
gotoxy(1,1);
writeln(x,',',y);

if x=1 then f:=+1;
if x=40 then f:=-1;


x:=x+f;
gotoxy(x,y);
writeln('x');
Until x=50;
end.


1

Respostas

2013-11-17T17:08:02-02:00
Em C, os operadores são
== - para igualdade
= - atribuição

Então escreva:
if x==1 then f:=+1;
if x==40 then f:=-1;

se você fizer
if x= 40 then

Irá atribuir 40 para a variável x.
E o if será avaliado da seguinte forma:
se x for diferente de zero será executado.
se x for igual a zero não será executado.

mas a linguagem nao e c mas sim pascal
já tentou usar begin e end no if?
Não tenho certeza mas para comparar valores se usa dois sinais de iguais (==), o sinal de um igual (=) e utilizado para atribuir.
Tente fazer essas modificações e me responda se funcionou, se não tiver funcionado me avise pra mim tentar observar o erro.