(16) : Встречено '.', а ожидалось ';'

Program z;
uses crt;
function f(x:integer):integer;
begin
ClrScr; 
writeln('Write x');
readln(x);
if x=1 then 
begin 
f:=1;
end 
else 
begin 
f:=x*f(x-1);
end 
end.

Дичь какая-то.
Зачем на каждой итерации вводить х?
Где основное тело программы?
Задание озвучь полностью

скатал с инета, учу рекурсию

Без понимания структуры программы на Паскале рекурсия не будет

http://mif.vspu.ru/books/pascal/program.html