Pascal初学者程序
这是我编译后得到的警告Pascal初学者程序,pascal,freepascal,Pascal,Freepascal,这是我编译后得到的警告 Program q2; Var input: integer ; Var repeatvar: char ; Procedure display(input : integer) ; Begin If (input = 9) then Write ('********************************************************') ; Write ('9! = 9 x 8 x 7 x 6 x 5 x 4 x 3
Program q2;
Var input: integer ;
Var repeatvar: char ;
Procedure display(input : integer) ;
Begin
If (input = 9) then
Write ('********************************************************') ;
Write ('9! = 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 362880 ');
Write ('********************************************************') ;
If (input = 8) then
Write ('********************************************************') ;
Write ('8! = 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 40320 ');
Write ('********************************************************') ;
If (input = 7) then
Write ('********************************************************') ;
Write ('7! = 7 x 6 x 5 x 4 x 3 x 2 x 1 = 5040 ');
Write ('********************************************************') ;
If (input = 6) then
Write ('********************************************************') ;
Write ('6! = 6 x 5 x 4 x 3 x 2 x 1 = 720 ');
Write ('********************************************************') ;
If (input = 5) then
Write ('********************************************************') ;
Write ('5! = 5 x 4 x 3 x 2 x 1 = 120 ');
Write ('********************************************************') ;
If (input = 4) then
Write ('********************************************************') ;
Write ('4! = 4 x 3 x 2 x 1 = 24 ');
Write ('********************************************************') ;
If (input = 3) then
Write ('********************************************************') ;
Write ('3! = 3 x 2 x 1 = 6 ');
Write ('********************************************************') ;
If (input = 2) then
Write ('********************************************************') ;
Write ('2! = 2 x 1 = 2 ');
Write ('********************************************************') ;
If (input = 1) then
Write ('********************************************************') ;
Write ('1! = 1 = 1 ');
Write ('********************************************************') ;
If (input = 0) then
Write ('********************************************************') ;
Write ('0! = 1 = 1 ');
Write ('********************************************************') ;
End ;
Begin
While (repeatvar = 'y') do
Begin
Write('Enter an integer between 0 and 9 or -1 to quit');
readln(input);
If (input = -1) then
begin
Write('Sentinel value - Exiting program !');
Readln;
end
Else
display(input);
End
End.
我正在输入q2,但看不到任何输出,它什么也没做。我已经尝试了很多东西,而且我对帕斯卡和fpc都是全新的。谁能告诉我有什么问题吗
在repeatvar部分,我想实现以下内容:
我想实现这个C++代码:
Free Pascal Compiler version 2.4.0 [2010/05/18] for x86_64
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling q2.pas
q2.pas(61,8) Warning: Variable "repeatvar" does not seem to be initialized
Linking q2
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
78 lines compiled, 0.2 sec
1 warning(s) issued
do
{
cout>input;//获取编号
如果(输入==-1)
{
cout因为repeatvar从来没有初始化过,所以您的程序从来没有进入while循环,因为repeatvar一开始就不能是“y”。您忘记了初始化变量
do
{
cout << "Enter an integer between 0 and 9 or -1 to quit => " ;
cin >> input ; // get number
if(input == -1)
{
cout << "Sentinel value - Exiting program !" << endl;
exit ;
system("pause");
return 0;
}
else
{
// display function
display(input) ;
}
cout << endl;
cout << " Press y to repeat , any other key and enter to terminate: " ;
cin >> repeat ;
if(repeat != 'y')
exit;
}while( repeat == 'y');
在行之前插入上面的行
repeatvar := 'y'
问问你自己:当你第一次到达这一行时,repeatvar
的值是多少:While(repeatvar='y')做测试,检查你自己在测试什么,你要给它什么。(这条线是什么时候执行的?什么时候你需要输入!我想实现这个C++代码!!我编辑的那个。请看一下。PreetSangha。我对编程比较新,所以逻辑有点不太可能。重复的。不要张贴。当你的问题被关闭时,同一个问题再次作为新问题出现。相反,改进已关闭的问题并要求重新打开。将其作为副本重新发布违反了本网站的指导原则。好的,请记住这一点。对此表示歉意。我是此网站的新手。thnx!@KenWhite-我应该如何要求重新打开我以前的问题?请这样做不要像那样编辑你的问题,因为这会使现有的评论/答案/建议变得毫无意义。如果你还有其他问题,请将其作为新问题发布。
While (repeatvar = 'y') do
Begin
...
End