Olá amigo, tudo bem?
Eu costumo brincar que eu ando "Na contramão do sucesso", uma vez que, embora já antiga, o pascal é a minha linguagem favorita!
Conforme já andei falando por aqui, trabalho até hoje com ele, por conta de um projeto de acessibilidade, que ainda o usa.
Vamos lá para o código, vou tentar descrever o que acontece:
Irei comentando abaixo da linha, explicando o fluxo.
Var
x : integer;
//Variável x do tipo inteiro declarada
Begin
for x := 0 to 10 do
{
Início do loop for.
X começa em 0 e termina em 10.
O que essa linha diz é: para x começando em 0 até 10, faça essas coisas
}
begin
writeln('X = ',x);
//escreve valor de x; inicialmente, vai escrever 0.
x := x + 1;
// somou 1 ao valor de x.
//se x valia 0, agora vale 1.
end;
end.
Fim do for e fim do programa.
Como x ainda não chegou em 10, ele irá mais uma vez verificar a declaração do for.
Lembra? X valia 1.
Quando ele for no início do for de novo, vai ser testado:
x vale 10?
Não. Então soma mais 1.
X que era 1, agora passou a ser 2.
Ao entrar no bloco do for e exibir x, vai escrever 2.
Vai somar mais 1, fica 3.
O bloco termina, ele verifica novamente e tudo vai acontecer de novo.
Você tem duas atividades dentro do seu bloco for, que serão repetidas até que x atinja o valor 10:
Uma é escrever o valor dessa variável x, a outra é somar 1 ao valor de x.
Vou te dar uma ideia:
Existem duas formas de você fazer aparecer os valores de 1 em 1.
Uma é você isolando a segunda instrução, a que soma 1 em x dentro do próprio bloco for.
A outra, vou deixar você pensar, risos.
Mas a melhor forma de você aprender é ir fazendo pequenas modificações nos exercícios.