1. (Нет блока программы, поэтому напишу в общем)
Если цикл вида:
For i:=1 to n do
то цикл будет выполняться от 1 до n раз. В данном случае n раз.
Если цикл вида:
While true do (цикл с предусловием)
или
do while (цикл с постусловием)
то цикл будет выполняться до тех пор, пока условие истинно. (Вместо true записывается условие)
Если цикл вида:
repeat ... until not(true); (цикл с постусловием)
то цикл будет выполняться до тех пор, пока условие ложно. То есть истинное условие под общей инверсией.
2. Результат выполнения фрагмента программы:
y=2.0 y=1.5 y=1.2 y=1.0
3. Результат работы программы - неограниченный вывод строки:
y=2.00
y=2.00
y=2.00
...
Так как вначале x=2, потом к 2 прибавили 2. А в конце мы проверяем: x=4 НЕ больше 9?, он говорит да и идет сначала.