powerbuilder判断复选框是否选中_教你制作加减乘除出题器,随机出题、判断正确都可以——GeoGebra...

说明

文章中,有圆点●的为解释;有小方块■的是需要进行的操作。 出题器获取方式 分享本文,并截图回复。

4ddcfe3ec244b02d9c30d4e8cc5863b5.png

正文


对于整数加减乘除运算,烦恼出题、练习效果?

本文让你轻松搞定——既可以随机出题,又可以有一定的交互性!来看看效果吧:选择加、减、乘、除法——设置——做题。 819ac0d1d4ab3556b157eaee2dca2b28.gif 范围、总题数由你定

上图是以减法为例:

  • 输入运算符号前面的数(被减数)、后面的数(减数)的范围;

  • 是否要让运算符号前面的数大于等于后面的数;

  • 输入题目数量。

当完成相应数量的题目后,再来一次——即开启相同设置的专题训练;又或是返回初始页面,重新选择。

601afe5176fba4c94b305664f1eedd3f.gif “再来”在设置上,加、减、乘法都一样,这里不再示范。我们来看看除法的情形: 9f8307bc1c7f9ceac242497ba6431a59.gif 没有余数的除法

需留意的是:

  • 输入等号前面的数(除数)、后面的数(商)的范围。

  • 默认被除数大于等于除数。

  • 可以选择有或没有余数的除法。
85ca862fb79aef38cd57d887482942f6.gif 有余数的除法出题器是用数学软件GeoGebra制作,必须用GeoGebra打开吗?非也,还可以导出为网页,再分享链接即可! f6860a5ca448fab683b49050fdc01f1f.gif 网页版以上即为出题器的说明,可以看到出题器极大地方便了口算练习——既可以进行专题针对训练,又可以得到及时反馈。那么,这个出题器是怎么制作的?如若清楚怎么制作,不就可以制作出更满足自己要求的出题器?

我们先来看制作思路:

  • 交互性——通过输入框、复选框来做到。

  • 对象较多——涉及显示与隐藏对象的问题。

  • 随机出题,“随机”是关键——GeoGebra有相关指令吗?
“随机”的相关指令有: 区间随机数(RandomBetween)、随机元素(RandomElement)
区间随机数( , )随机元素( )
区间随机数得到一个在 最小整数最大整数之间的整数。 随机元素得到 列表中的一个元素。下面,开始制作! f5ca4e30a8dd7cbe5b0c02afd0d14fce.gif

初始页面

希望初始页面如下: 5fc000d7fd68935c11eecdfbfd6deb8e.png那么,需先构造文本,指令如下: 86c5341334d5fc319c2e8f2aa402f14d.png

并希望:点击文本加法减法乘法除法,即可选择相应的运算。

  • 引进s,若s分别为1,2,3,4时,则分别代表+,-,×,÷。

  • 假设未选择加减乘除时,s为0。

  • 另外,选择加减乘除时,文本加法减法乘法除法都隐藏起来。
于是,操作如下: 4767158ffaeee37f12bd4282b2c294eb.gif

即:

c575c57a730d9ab6b5c5ab125161c740.png注: 赋值(SetValue)adf310557af84710354d1a54ea457530.gif

设置页面

目标如下: 42fcd51094d2853d2e22d5bc75437a43.png

■ 第三、四行的第一个字是由所选运算决定。那么,可以利用如果(if)指令来构造。于是:

49bc0540d4f0d9ac1e2ea69a750fc9ef.png注: 公式文本(FormulaText)

而后面的“由……到……”用输入框即可。操作示范如下:

5892e3a8c2b4bf8fc22b71f85decd93b.gif

■ 也就是先输入指令:

14d56e85711cf6d9a704d79ada45a887.png

■ 再创建输入框:

96dd666111dfcaf6de487bd35012dc51.png■ 创建复选框 big,标题为: $\LARGE后面的数\textcolor{red}{不大于}前面的数$ df6cb1a89699f34a68e155d7297b73eb.gif

■ 创建输入框,关联对象为n1=3,标题为请输入题目数量:

0e9e6bd736b2c6fa0e656041df82de80.gif

现在,所显示对象的显示条件应为?

  • s为0时,显示初始页面(选择加、减、乘、除)。

  • 选择加或减、乘、除时,s赋值为1或2、3、4。

  • 那么,对象的显示条件可以是s≠0

  • 但,考虑还有其他页面,不妨引入P。

  • 假设s不为0,P为0时,显示当前页面;P为1时,显示下一页面。
于是:■ 在指令栏输入: P=0■ 文本 text7,text8和五个 输入框的显示条件为: s!=0&&P==0■ 文本 tex2的显示条件为: P==0■ 而 复选框big的显示条件为: s!=0&&P==0&&s!=4操作如下: 0bb1ec85e7915a10c1b2fc33081d35db.gif■ 当选择除法,即s为4时,无需显示复选框big;而是显示另一复选框——创建复选框 Y,标题为 $\LARGE\textcolor{red}{有余数}的除法$,显示条件为 s== 4 && P==0013461623d42303f7dc7c8bac5dc8059.gif■ 还需创建两个按钮: c1dec315e82d4ccac6508315ddb446f3.png注: 设置标题(SetCaption)

具体操作如下:

911f69f4b368f9466d98794be5946eb0.gif 按钮的颜色请自行设置

其中,按钮button1的单击时脚本设置标题(button2,"开始")button2的单击时脚本设置标题(button2,"下一题")怎么理解?

  • 点击“初始化”,button2标题变为“开始”;

  • 点击“开始”,button2标题变为“下一题”。
4ff0ff21b52fe550c505de2e3c48a81b.gif

做题页面

目标如下: 5031f94e87ea9cbcac77e61a66ce3c94.png

假设a、b分别为运算符号前、后的数。那么:

  • 当a不是被除数时,a是在a1到a2中随机取的一个整数,即a为区间随机数(a1, a2)

  • 当a是被除数时:若是没有余数的除法,a是a1到a2之间的任一整数与b1到b2之间的任一整数的乘积;否则,a是在a1·b1到a2·b2之间的任一整数,并且无法整除由a1到a2之间的任一整数,此外,商在b1到b2之间。

  • 当b不是除数时:若a≥b,b为区间随机数(b1, a);若,则b为区间随机数(b1, b2)

  • 当b是除数时:b是在a1到a2之间的任一整数。另外:若是有余数的除法,需要排除b被a整除的情况;否则,只留下a被b整除的情况。
■ 于是: d1 =如果(Y, 扁平列表(序列(条件子列(b1 ≤商式(k, k') ≤ b2 && 余式(k, k') != 0, k, 序列(a1 b1, a2 b2)), k', a1, a2)), 扁平列表(序列(序列(u*v, u, a1, a2), v, b1, b2))) a = 如果(s == 4, 随机元素(d1), 区间随机数(a1, a2)) d2 = 条件子列(如果(Y, 余式(a, k) != 0, 余式(a, k) == 0) && b1 ≤ 商式(a, k) ≤ b2, k, 序列(a1, a2)) b = 如果(s == 4, 随机元素(d2), 区间随机数(b1, 如果(big, a, b2)))注: 扁平列表(Flatten)、序列(Sequence)、条件子列(KeepIf)、余式(Mod)、商式(Div)。其中, d1d2怎么理解?

● 先看d2怎么理解:

06b4a7a9aa0ab130f78928e9de74a5f7.png

● 而d1可拆为两大部分:

4d46f6dc8a782dbc26ec60767f6827bc.png

当Y为假时:

c4c9199085de943062f172de696657a0.png

当Y为真时:

d3ac67526ac659ff562ef53b3d103d56.png

■ 而题目的形式为a+b=;若b为负数,则形式为a+(b)=(运算符号还可以是-,×,÷),于是:

text9 = 公式文本(a + 如果(s == 1, "+", s == 2, "-", s == 3, "×", "÷") + 如果(b < 0, "(" + b + ")", "" + b + "") + "=")

至于答案,用输入框即可。

  • 当题目更新时,希望此输入框里面什么都没有。

  • 那么,可以用显示""来代替,即空文本。

  • 所以,此输入框关联对象应是文本。

■ 于是,可输入指令:

78ddab4ce5f79ac9c70e32f91d263352.png 请自行将上述对象隐藏■ 并创建两个 输入框:其中一个关联对象为 c,标题为 请输入答案:另一个关联对象为 c1,标题为 …… e2de286a66a0397779bdaf3353558c6a.png

■ 至于已出题目数、答错题数需要计算,则可引入n、m来分别计数:

n = 0 m = 0

■ 于是,在输入框InputBox6单击时脚本输入:

如果(c!=T,赋值(m,m+1))

■ 在InputBox7单击时脚本输入:

如果((c==T) && (c1!=T1), 赋值(m,m+1)) 64af30d1c8e945d93edebe05cc034994.png

■ 至于判断所输入答案正确与否,即为:

text10 = 如果(Y && c == T && c1 == T1, "回答正确!", (!Y) && c == T, "回答正确!", Y && (c != T || c1 != T1), "正确答案:" + T + "……" + T1, (!Y) && c != T, "正确答案:" + T) 754402fe19c5125eaeaa3b578b12298a.png 所输入答案错误时,则显示正确答案

■ 并且,需要输完答案,才能显示出来。故,text10的显示条件为:

(Y&&c!=""&&c1!="") || (!Y&&c!="") c63a84d4fc2a4984026c3fda324e4ea7.png 同样分为有没有余数两种情况

■ 还需统计答题情况,于是:

text11 = 公式文本("共\textcolor{red}{" + n + "}道题,答错\textcolor{red}{" + m + "}道,正确率:\ \textcolor{red}{" + ((n - m) / n * 100) + "%}")

■ 另外,需实现点击“下一题”按钮时,即可重新出题。于是,在button2单击时脚本输入:

c=""

c1=""

更新作图()

赋值(n,n+1)注: 更新作图(UpdateConstruction)

■ 而“初始化”按钮要保证单击时,都归于原位。于是,在button1单击时脚本输入:

赋值(n,0)

赋值(m,0)

c=""

c1="" 05b61e28423b7025bc23b15daee53dfe.png

那么,现在所显示对象的显示条件应为?

  • 上一页面的基本显示条件是P为0。

  • 此页面的基本显示条件是P为1。

  • 需留意的是:还有下一页面。

  • 每点击一次“下一题”按钮,可以让题目计数n加1,而总题数为n1;

  • 那么,我们可以让n增加到n1+1时,就显示下一页面!
于是:■ text9text11、输入框 InputBox5的显示条件为: P == 1 && n ! = n1 + 1■ 输入框 InputBox6的显示条件为: Y&&P == 1&& n! = n1 + 1■ 按钮 button1的显示条件为: s != 0 && n != n1 + 1■ 按钮 button2的显示条件为: 如果(0 cd93c66cc84b0a7259d84f01372bc906.png 8c92184ba62ebfbea763b0b49b108f7e.gif

结束页面

目标如下: d35d4440d4206751bc035d97a16c758d.png

■ 结束语即为:

text12 = 公式文本("已完成" + n1 + "道题,正确率:\ \textcolor{red}{" + ((n - 1 - m) / (n - 1) * 100) + "%}")

■ 创建按钮button3单击时脚本为:

赋值(n,1)

赋值(m,0)也就是其他设置不变,而出题目数 n为1,即可重新出题;至于答错题数 m自然应为0。

■ 而button3的标题中的数字是由n1决定的。于是,在输入框InputBox5单击时脚本输入:

设置标题(button3,"$再来"+n1+"道$") 807a715eea85c23462c5353284b14dc9.png 因为此输入框是改变n1值的关键

■ 创建按钮button4标题为:$返回主页$单击时脚本为:

运行单击脚本(button1)也就是点击此按钮,相当于点击“初始化”按钮。注: 运行单击脚本(RunClickScript)

■ 另外,这些对象都是是在n等于n1+1的时候才显示。于是,设置文本text12、按钮button3button4的显示条件:

n==n1+1

大功告成

至此,就完成了出题器的制作!还可以举一反三,制作出其他出题器。
如果觉得这个作品很赞,记得分享哦!

文章首发于头条号:啊K数学

更多内容,请点击GeoGebra数学底部的菜单。

ee5d676351b6dd0cfad959bfe8da910b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值