Элементарно.Перед else не пишется ;
Попробуй добавить writeln
Проверь перед else должен быть ещё end(т.к подсистема)
Var a,a1,a2,a3,a4;
begin
read (a);
a1:=a div 1000;
a2:=a div 100 mod 10;
a3:=a div 10 mod 10;
a4:=a mod 10;
a:=a4*1000+a2*100+a3*10+a1;
write (a);
<span>end.</span>
Это рекурсивный вызов процедуры. При первом вызове F(7) по условию
if n>1 then ... будет вызов этой же процедуры f(n div 2); или f(3), далее, т.к. 3>1, то снова будет вызвана процедура f(3 div 2) или f(1), теперь не выполняется условие n>1, следовательно, будет выполнен оператор <span>write ('**'); - напечатаются две звездочки, после выхода из процедуры продолжится выполнение процедуры при втором вызове - будут напечатаны еще 2 звездочки, затем продолжится выполнение при первом вызове - еще будут напечатаны 2 звездочки. В результате вызова f(7) будут напечатаны 6 звездочек ******.</span>
А) 100101001,101
Б) 10000111,11
в)100111010,10010111
г) 10101,01010001011101110100010111010001011101000101