回 帖 发 新 帖 刷新版面

主题:作业!初学者!帮满解释一下!老师要问什么意思的!进者有分!

偶发帖子叫好心人写了一份作业,但是对于涉编未深的我来说有些东西不是很懂!请帮忙解释一下![em2]加上一点注释吧,尽量详细一点幺![em2]
   这是题:
设计一个乘法学习器。具体功能为:1)进行学习,向学习者显示九九乘法表。2)进行测验:随机给出学生任意两个0-9之间的数,要求学生给出答案,如果能连续正确的回答十个问题,则通过测验,否则便属失败。可以重复进行测验。 
   这是好心人给偶编的程序:
  var
  i,j,k,l,m,n:longint;
  s:string;
begin
  randomize;           //randomize是什么意思?        
  for i:=1 to 9 do
    begin
    for j:=1 to i do
      write(i,'*',j,'=',i*j,' ');
    writeln;
    end;
  writeln('questions for ten');
  i:=1;
  while i<=10 do
    begin
      k:=random(9)+1;l:=random(9)+1;     
      writeln(i,'.',k,'*',l,'=?');
      readln(j);
      if j=k*l then begin writeln('right!'); inc(i); end
               else begin writeln('wrong,continue? Y/N ');
                          readln(s);
                          if s='Y' then i:=1 else halt; end;
    end;
  writeln('well done!');
  for i:=1 to 100000000 do begin j:=1; end;
end.  
能运行,不过里面有一下点的不足!方便的话帮忙改一下会更好。不改的话,只要帮偶注释一下现在的就感激不尽了。!!
[color=FF0000]谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢[/color]

回复列表 (共5个回复)

沙发

我也是新手,我不懂啊

板凳

var
  i,j,k,l,m,n:longint;
  s:string;
begin
  randomize;  {开启随机数产生器}    
  for i:=1 to 9 do
    begin
    for j:=1 to i do
      write(i,'*',j,'=',i*j,' ');
    writeln;
    end;{这段没什么好说的,输出乘法表}
  writeln('questions for ten');
  i:=1;
  while i<=10 do
    begin
      k:=random(9)+1;l:=random(9)+1;{random 1到9之间的两个数,并输出问题}     
      writeln(i,'.',k,'*',l,'=?');
      readln(j);{读如答案}
      if j=k*l then begin writeln('right!'); inc(i); end{如果正确}
               else begin writeln('wrong,continue? Y/N ');{错误,读入是否继续}
                          readln(s);
                          if s='Y' then i:=1 else halt; end;{如果要继续,从来,前面有while}
    end;
  writeln('well done!');
  for i:=1 to 100000000 do begin j:=1; end;{过一秒钟,无意义}
end.  

3 楼


[em10][em10][em10]晕啊

4 楼


program jisuanqi;
uses crt;{crt是什么东西我也不知道,只知道要用readkey就要这个}
var
   i,j,shu1,shu2,ans,pans:integer;
   ch,shuru:char;
begin
     repeat
     writeln('______________________________________________________');{为了美观些加的}
      writeln('1:view');
     writeln('2:exam');
     writeln('3:exit');
     repeat
     ch:=readkey;
     until ch in ['1'..'3'];
     case ch of
          '1':begin
                for i:=1 to 9 do
                begin
                for j:=1 to 9 do
                write(i,'*',j,'=',i*j,' ');
                writeln;
                end;
                end;{乘法表好象不是这样。。。}
         '2':begin
         repeat
         writeln('loading...');
          randomize;{开启随机生成器}
            shu1:=random(10);
            shu2:=random(10);
            ans:=shu1*shu2;
            writeln(shu1,'*',shu2,'=','?');
            readln(pans);
            if pans=ans then writeln('nice')
               else writeln('wrong!the answer is',ans);
            writeln('continue? y/s');
            readln(shuru);
          until shuru='s';{假如输入的是s,那么就不继续了,也就是退出了练习的这个部分循环}
          end;
          end;
         until ch='3';{假如选的是3,也就是EXIT,那么退出循环,也就是退出程序}
end.

5 楼

randomize是指开机产生随机数.

我来回复

您尚未登录,请登录后再回复。点此登录或注册