Pascal 我不知道';我不知道为什么这个项目没有';跑不动
请告诉我哪里我错了,我不能弥补我的错误在2个程序。我尝试在pascal中使用递归 这个正在运行,但它给了我错误的结果Pascal 我不知道';我不知道为什么这个项目没有';跑不动,pascal,freepascal,turbo-pascal,Pascal,Freepascal,Turbo Pascal,请告诉我哪里我错了,我不能弥补我的错误在2个程序。我尝试在pascal中使用递归 这个正在运行,但它给了我错误的结果 program fatorial; var n: integer; function f(n: longint): longint; begin if((n=0) or (n=1)) then f:=1 else *f:= n*f(n-1);* read(f); end; begin write('n:='); read(n);
program fatorial;
var
n: integer;
function f(n: longint): longint;
begin
if((n=0) or (n=1)) then
f:=1
else
*f:= n*f(n-1);*
read(f);
end;
begin
write('n:='); read(n);
f(n);
write('result:', f(n));
readln;
end.
这个告诉我“错误:非法表达式”,但我不知道如何修复它
program Greatest_common_divisor;
var
gcd,p,q: integer;
r:=real;
begin
write('p:'); read(p);
write('q:'); read(q);
r:= p mod q;
if r <> o then
begin
p:=q;
q:=r
*gcv:= gcv(q,r);*
end;
write('Greatest common divisor:', gcv(p.q));
readln;
end.
程序最大公因子;
变量
gcd,p,q:整数;
r:=真实值;
开始
写('p:');阅读(p);
写('q:');读取(q);
r:=p模q;
如果r o那么
开始
p:=q;
q:=r
*gcv:=gcv(q,r)*
结束;
写(‘最大公约数:’,gcv(p.q));
readln;
结束。
f
gcv()
f
是不正确的李>
但第二个问题是:
:=
:r:=real代码>,仅:
o
和gcv
是什么类型的变量?在var
之后,您没有识别o
和gcv
李>
代码>在q:=r
如果去掉
read(f)
,您的第一个程序将给出正确的结果。为什么会这样?您必须从*f:=n*f(n-1)的外部删除星号*代码>。我不知道你为什么把它们放在那里。为什么你有额外的f(n)代码>单独拨打电话?这没有用。结果不会被存储。对于第二个函数,为什么在gcv:=gcv(q,r)
周围有星号?gcv的定义在哪里?而且,gcv(p.q)
是无效的,因为你有一个句号,而不是逗号。星号可能是他从维基或论坛页面上抄下来的强调符号(表示递归):-)@Marcovandevort我想星号是用来突出某个东西的。我列举了OP需要解决的其他几个问题。我认为,他们对自己的问题的来源有一个基本的了解也是一个理想的目标