书城科普读物探索未知丛书-计算机王国
45421700000056

第56章 怎样让计算机出算术题

计算机的主要功能之一是帮助人们做计算工作。可是执行下面的程序,你会发现计算机不做题了,反而出题让你做,你如果做错了,它还不答应,必须做对了,才允许你做下面的题。

它每次给你出10道题,做错一次扣10分,最后给出你的得分。

程序

10REM做算术题20S=10030FOR I=1 TO 1040A=INT(RND(1)*100)

50B=INT(RND(1)*100)60PRINT I;“)”,A;“+”;B;“=”;70INPUT X80IF X=A+B THEN PRINT“对!”:GOTO 11090S=S-10:PRINT“错了,重做!”

100GOTO 60

110NEXT I120PRINT“你得了”;S;“分。”

130END

本程序中40和50语句行产生两个100以内的随机整数,分别赋给A和B。A和B是计算机出的加法题中的两个加数。那么,计算机是怎样产生我们所需要的某个范围内的整数呢,这要先搞清楚两个函数。

1.随机数函数RND(X)

这个函数的作用是产生一个大于0,小于1的随机数。例如,可能产生08532,也可能产生02963517。到底产生一个什么样的小数,谁也说不准。产生的数同RND(X)中X的值无关,一般写RND(1)。

2.取整函数INT(X)如果不考虑负数,INT(X)的功能就是取整,也就是取出带小数中的整数部分。例如:INT(487)=4INT(5796)=57我们再来看40语句行是怎样产生一个100以内随机整数的。

假定RND(1)产生一个随机小数063217,乘以100后得63217,再经过取整函数取整得到63。将63赋给A,A是63。

同样的,在50语句行假定RND(1)产生一个随机小数0042976,乘以100后得42976,取整后得4,变量B被赋值为4。

于是,计算机就会出这样一道算术题:63+4=如果要求计算机只出两位数(10—99)的加法题,那么,40和50语句行中的表达式应改写成:INT(RND(1)*90)+10

想一想,为什么这样写就能满足要求。

上面这个程序可以很容易地改成出减法题或乘法题,请读者想一想应该改哪些地方,怎样改。