Uses
CRT;
Var
fact:real;
i,n:integer;
key,l:char;
begin
ClrScr;
repeat
write(' n: ');
readln(n);
if n<0 then
begin
writeln('n');
end
else
begin
fact:=1;
i:=1;
while i<=n do
begin
fact:=fact*i;
inc(i);
end;
writeln('Fact:=',fact);
end;
until n>0;
readln;
end.
Следующий вариант
Uses
CRT;
Var
fact:real;
i,n:integer;
key,l:char;
begin
ClrScr;
repeat
write(' n: ');
readln(n);
if n<0 then
begin
writeln('n');
end
else
begin
fact:=1;
i:=1;
repeat
begin
fact:=fact*i;
inc(i);
end;
until i>n;
writeln('Fact:=',fact);
end;
until n>0;
readln;
end.