1. Короткая современная версия
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
Write(Range(30,50,2).Aggregate(1.0,(p,i)->p*i))
end.
Результат:
3.6439069556736E+17
2. Школьная версия
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
var
i:integer;
p:real;
begin
p:=1;
i:=30;
while i<=50 do begin<br> p:=p*i;
i:=i+2
end;
Write(p)
end.