二次数记忆测验:洗牌题库与平方数识别
几何画板及绘图内容加载中,请稍等……
该范例展示一个“二次数记忆”互动测验:系统随机给出若干题目,用户判断其是否符合平方数规律,并通过反馈与提示帮助纠错。核心数学概念包括平方数、数列/题目序列生成、以及基于规则的正确性判断;同时以可视化元素(如矩形反馈区域、解答/提示文本)呈现学习过程。作图与构造要点主要来自 GeoGebra 命令与对象:使用“Shuffle”对题库进行洗牌;用“Sequence”与“Join”生成题目/选项集合并组织结构;通过“Text”与多个“Textfield/ txt*”对象显示题干、解答、提示(如 txtSolution、txtHint、txtHintTypical);利用“If”和“Flatten”结合“Sample”从集合中抽取随机题目(randomQuestions、randomQuestion);再用“Element/replaceWithElementToCheck”实现用户输入与目标元素
GeoGebra 命令及参数
Shuffle(1…numberOfQuestions) → randomQuestions, {1}Textfield(input) → inputBoxElement(randomQuestions, Mod[questionCount - 1, Length[randomQuestions]] + 1) → randomQuestionJoin({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStreckenJoin({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftungSequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkteIf(mixed, Shuffle[1…numberOfCards], Join[{Shuffle[1…numberOfElements], Shuffle[(numberOfElements + 1)…numberOfCards]}]) → OrderFlatten(Sequence[Sequence[PosStart + (k * ((2 * widthCard) + disX, 0)) + (m * (0, (-2 * heightCard) - disY)), k, 0, numberOfCards / numberOfLines - 1], m, 0, numberOfLines - 1]) → PosListSample(Numbers, 12) → SampleNumbers, {3, 6, 1, 7, 11, 8, 2, 4, 9, 12, 10, 5}Text(AllTxtList(Order(1)), PosList(1) + (0, 0.05), false, true, 0, 0) → txtCard1Text(AllTxtList(Order(2)), PosList(2) + (0, 0.05), false, true, 0, 0) → txtCard2Text(AllTxtList(Order(3)), PosList(3) + (0, 0.05), false, true, 0, 0) → txtCard3Text(AllTxtList(Order(4)), PosList(4) + (0, 0.05), false, true, 0, 0) → txtCard4Text(AllTxtList(Order(5)), PosList(5) + (0, 0.05), false, true, 0, 0) → txtCard5Text(AllTxtList(Order(6)), PosList(6) + (0, 0.05), false, true, 0, 0) → txtCard6Text(AllTxtList(Order(7)), PosList(7) + (0, 0.05), false, true, 0, 0) → txtCard7Text(AllTxtList(Order(8)), PosList(8) + (0, 0.05), false, true, 0, 0) → txtCard8Text(AllTxtList(Order(9)), PosList(9) + (0, 0.05), false, true, 0, 0) → txtCard9Text(AllTxtList(Order(10)), PosList(10) + (0, 0.05), false, true, 0, 0) → txtCard10Text(AllTxtList(Order(11)), PosList(11) + (0, 0.05), false, true, 0, 0) → txtCard11Text(AllTxtList(Order(12)), PosList(12) + (0, 0.05), false, true, 0, 0) → txtCard12Text(AllTxtList(Order(13)), PosList(13) + (0, 0.05), false, true, 0, 0) → txtCard13Text(AllTxtList(Order(14)), PosList(14) + (0, 0.05), false, true, 0, 0) → txtCard14Text(AllTxtList(Order(15)), PosList(15) + (0, 0.05), false, true, 0, 0) → txtCard15Text(AllTxtList(Order(16)), PosList(16) + (0, 0.05), false, true, 0, 0) → txtCard16Text(AllTxtList(Order(17)), PosList(17) + (0, 0.05), false, true, 0, 0) → txtCard17Text(AllTxtList(Order(18)), PosList(18) + (0, 0.05), false, true, 0, 0) → txtCard18Text(AllTxtList(Order(19)), PosList(19) + (0, 0.05), false, true, 0, 0) → txtCard19Text(AllTxtList(Order(20)), PosList(20) + (0, 0.05), false, true, 0, 0) → txtCard20Text(AllTxtList(Order(21)), PosList(21) + (0, 0.05), false, true, 0, 0) → txtCard21Text(AllTxtList(Order(22)), PosList(22) + (0, 0.05), false, true, 0, 0) → txtCard22Text(AllTxtList(Order(23)), PosList(23) + (0, 0.05), false, true, 0, 0) → txtCard23Text(AllTxtList(Order(24)), PosList(24) + (0, 0.05), false, true, 0, 0) → txtCard24If(mixed, color1, orange) → color2