Executando verificação de segurança...
1

Fabiano, muito obrigado! Desse jeito que você fez, explicando linha por linha ficou bem claro.

Mas eu ainda não consegui entender, porque ele não imprimi o 3 na tela. Quando recomeçar a repetição com X:= 2 ele vai imprimir o 2 na tela e depois somar x:= x(que agora vale 2) + 1 e então, quando recomeçar o For ele era para imprimir 3, mas não imprimi e vai direto para o 4. Essa parte de pular um número que eu não entendi ainda, o porque ele pula um número e imprimi um número, nesse caso, ficando de 2 em 2 até 10.

Carregando publicação patrocinada...
1

Pula de 2 em dois justamente por que tem um comando dentro do próprio for somando 1 em x.

A instrução for em si já incrementa 1, e tem mais um comando somando 1 dentro do bloco.
Só que há apenas uma instrução writeln, ou seja:
quando ele faz o ciclo completo de ler todo o bloco e voltar novamente ao cabeçalho para verificar se a condição foi satisfeita (x ser igual a 10), ele já vale 1 a mais do que valia no ciclo anterior.

Em resumo: você tem duas instruções de soma, mas só uma instrução de exibir.

Digo que são duas por que, uma é a soma em si:
x := x+1;

A outra é o próprio comportamento da instrução for, que incrementa 1 a cada ciclo.
Estou chamando de ciclo, a ação de ler o cabeçalho, entrar no begin, executar o que lá está, e, no end, voltar ao cabeçalho e repetir tudo de novo, até a condição ser verdade (x = 10).

1