Program wykonuje pętlę for I := 0 to 6 do, czyli zmienna I przyjmuje kolejno wartości: 0, 1, 2, 3, 4, 5, 6 (w Pascalu górna granica to 6 jest wliczana).
W każdej iteracji sprawdzany jest warunek (I mod 2)=0. Operator mod zwraca resztę z dzielenia całkowitego. Dla liczb parzystych reszta z dzielenia przez 2 wynosi 0, a dla nieparzystych wynosi 1.
- Dla I=0: 0 mod 2 = 0, więc program wypisuje 0.
- Dla I=1: 1 mod 2 = 1, więc nic nie wypisuje.
- Dla I=2: 2 mod 2 = 0, więc wypisuje 2.
- Dla I=3: 3 mod 2 = 1, więc nie wypisuje.
- Dla I=4: 4 mod 2 = 0, więc wypisuje 4.
- Dla I=5: 5 mod 2 = 1, więc nie wypisuje.
- Dla I=6: 6 mod 2 = 0, więc wypisuje 6.
Ostatecznie na ekran trafiają liczby parzyste z zakresu 0..6, czyli "0, 2, 4, 6".
Dlaczego pozostałe propozycje są błędne? Sekwencje "0, 1, 2, 3" oraz "2, 3, 4, 5" ignorują filtr parzystości. Z kolei "3, 4, 5, 6" sugeruje, że pętla startuje od 3 albo że program wypisuje końcówkę zakresu, co nie wynika z kodu. Typową pułapką egzaminacyjną jest też mylenie znaczenia to 6 (włącznie) lub błędne rozumienie mod jako zwykłego dzielenia.