Чему будет равно а после выполнения фрагмента программы? a:=0; if a>0 then a:=2;
Расшифруем. "если а>0, то а=2". Условие не выполнялось, поэтому а осталось равно 0
В слово else что написано дальше?