这是一个利用随机函数随机产生两个乘法算式,并由学生回答,计算机给出正确与否的判断,我是在Delphi环境下运行的,可是不知道为什么不能运行,各位帮忙看看啊  
procedure      TForm1.Button1Click(Sender:      TObject);        
   var        
           name:string;        
           i:cardinal;        
   begin        
           i:=50;        
           setlength(name,i);        
           getcomputername(pchar(name),i);        
           edit1.Text:=name;        
   end;    
 
program  rand(input,output  );  
 //产生乘法算式并判断正确答案  
{$APPTYPE  CONSOLE}  
 
uses  
   SysUtils;  
   var  
   x,  y,  z  ,answer:integer  ;  
   seed:real  ;  
   //产生随机函数的说明  
   function  rand(var  seed:real):real;  
   const  
   a=93.0;  
   m=8192.0;  
   c=1.0;  
   begin  
   seed:=a*seed+c;  
   seed:=round((seed/m-trunc(seed/m))*m);  
   rand:=seed/m  
   end;  
 //主函数  
begin  
   {  TODO  -oUser  -cConsole  Main  :  Insert  code  here  }  
   seed:=0.7823;  
   repeat  
   //产生两个2位的随机整数  
   x:=trunc(rand(seed)*100);  
   y:=trunc(rand(seed  )*100);  
   write(x:  2,'*',y:  2,'=');  
   read(answer);//输入回答  
   writeln(answer:4);  
   z:=x*y;      //给出回答是否正确的判断  
   if  answer=z  
   then  writeln('correct!')  
   else  writeln('That  is  wrong!',z)  
   until  answer=-1  //回答为-1时中止运算  
   end  .

解决方案 »

  1.   

    program  rand
    function  rand标识符重复
    procedure      TForm1.Button1Click(Sender:      TObject);        
       var        
               name:string;        
               i:cardinal;        
       begin        
               i:=50;        
               setlength(name,i);        
               getcomputername(pchar(name),i);        
               edit1.Text:=name;        
       end;    这段代码是做啥子的?放在前面
      

  2.   

    //注意大小写,代码递进,别写这样丑的程序program Rand;{$APPTYPE  CONSOLE}uses SysUtils;var
      X, Y, Z, Answer: Integer;
    begin
      Randomize;
      repeat
        //产生两个2位的随机整数
        X := Random(100); //Trunc(Random * 100);
        Y := Random(100); //Trunc(Random * 100);
        Write(X:2, '*', Y:2, '=');
        Read(Answer); //输入回答
        Writeln(answer:4);
        Z := X * Y; //给出回答是否正确的判断
        if Answer = Z then
          Writeln('correct!')
        else Writeln('That is wrong!', Z);
      until answer = -1; //回答为-1时中止运算
    end.