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