从零之040 速算大王(去除小数)

上一章我们去除了负数,对儿童而言,同样没有小数的概念。因此,我们在出题的时候,也需要去除除法中结果为小数的题目,本章我们来解决这个问题。

对于这个的问题的解决,我们同样从生成算式这个函数中着手,下面回顾一下上一章的程序

从零之040速算大王(去除小数)

从22行到26行,就是去除负数的算法部分。

在此基础上,再增加去除小数的部分,我们应该怎么设计呢?

这时我们就考虑三种情况了:

1、当输入为减法的时候,上面减法部分不变。

2、当输入为除法的时候,我们需要重新设计,目的是挑出除法为整数的算式。

3、当输入为加法和乘法的时候,保留最原始的算法。

因此,本章最关注的就是第二种情况,下面开始:

基本的思路,进入到无限循环,不停的出题,直到遇到第一个输出为整数的题,这时候结束循环,产生的的两个数字有效。问题来了,如何判断输出的值为整数?

我们可以这样考虑,对输出的值进行整数化处理,如果整数化处理的结果与输出的值相同,我们因此判断它为整数。好了,下面开始吧!

下面我们对程序进行改造,改造后程序变成下面的模样

从零之040速算大王(去除小数)

三个条件语句,分别对应的三种情况,着重看第二个,下面我们读一下这部分程序:

当算符为除法的时候,进入无限循环,看有红色标记的这一行,对相除的结果进行整数化处理的 和 未处理的结果的 进行比较。当两者相同时,说明相除的结果为整数,循环结束,产生的两个数值有效。

测试运行效果如下

从零之040速算大王(去除小数)

下面展示一下完整的程序。

从零之040速算大王(去除小数)

从零之040速算大王(去除小数)

把上面两个图片连起来读,就是完整的程序。