坐标系中的间接成比例图像:从表到曲线的判断练习

坐标系中的间接成比例图像:从表到曲线的判断练习
几何画板及绘图内容加载中,请稍等……
2023-10-18 22:18
该范例展示在坐标平面中研究间接成比例关系时,变量如何形成变化曲线,并让学生通过图像与数值对比来判断命题真伪。核心数学概念包括:间接成比例(反比)函数关系、变量的乘积保持常数、以及直接/间接比例的特征识别与反例构造。作图与交互要点体现在:利用几何与图形元素在坐标体系中生成关键点与折线/曲线轨迹,随后用文本与标注(如 Textfield、SpeechBubbleRight)呈现题目、选择与反馈;通过 If 与 SelectedIndex 依据下拉选择与输入情况判断正误;用 Sequence、Transpose、Flatten、Append 与 Remove 组织多组数据点序列;通过 Segment 与 Polygon 辅助构造可视化的几何关系;并借助 Shuffle 随机化数据/题目顺序以增加练习多样性。适合中小学中上阶段(约5–6年级)用于“在情境中识别直接与间接比例”能力培养,也可作为课堂

GeoGebra 命令及参数

  1. Join(Sequence[Join[{{5}, Shuffle[Sequence[1, maxexnum - 1]]}], m, 1, floor(110 / maxexnum)]) → listExNums
  2. SelectedIndex(DropDown2) → input7
  3. SelectedIndex(DropDown1) → input6
  4. If(exnum ≟ 1, selected1, If[exnum ≟ 2, selected2, selected3]) → selected
  5. Transpose(Join[Sequence[{Shuffle[{1, 2, 3}]}, m, 1, 100]]) → listPos
  6. Textfield(input1) → InputBox1
  7. Textfield(input2) → InputBox2
  8. Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1
  9. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {2, 2, 1, 0, 2, 10, 2, 7, 9, 3, 1, 10, 0, 7, 10, 1, 0, 2, 6, 3, 6, 7, 9, 7, 3, 6, 7, 0, 1, 0, 3, 5, 7, 1, 0, 3, 6, 4, 1, 4, 2, 8, 5, 9, 4, 7, 8, 0, 7, 1, 2, 10, 10, 9, 8, 1, 10, 10, 6, 8, 10, 10, 2, 7, 3, 7, 3, 6, 5, 3, 4, 1, 10, 1, 0, 10, 5, 10, 9, 10, 5, 9, 7, 0, 8, 8, 10, 7, 5, 0, 2, 1, 8, 10, 10, 9, 2, 5, 4, 2}
  10. Element(randomNosForX, Mod[questionCount, 100] + 1) → numX
  11. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {3, 10, 3, 3, 10, 9, 3, 2, 2, 0, 1, 7, 6, 9, 4, 8, 5, 5, 1, 8, 10, 7, 3, 0, 9, 7, 0, 10, 0, 4, 8, 9, 4, 9, 9, 3, 4, 1, 4, 3, 8, 3, 10, 7, 1, 8, 1, 0, 8, 5, 6, 3, 3, 4, 9, 6, 1, 5, 10, 5, 9, 10, 2, 4, 3, 8, 4, 4, 6, 0, 4, 0, 1, 0, 4, 6, 4, 6, 7, 10, 2, 0, 1, 1, 2, 2, 4, 2, 8, 9, 9, 7, 7, 5, 9, 4, 3, 2, 1, 7}
  12. Element(randomNosForY, Mod[questionCount, 100] + 1) → numY
  13. Append(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayX
  14. Append(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayY
  15. Remove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeat
  16. Remove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeat
  17. Element(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeat
  18. Element(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeat
  19. SpeechBubbleRight(A, 5.5, 0.55) → Vieleck1
  20. Element({B1, B2, B3}, selected) → B
  21. SpeechBubbleRight(C, 7.1, 1.25) → Vieleck2
  22. Segment(D, D + (scale * (coordwidth, 0))) → f
  23. Segment(D, D + (scale * (0, coordheight))) → g
  24. Sequence(D + ((m * scale) * (coordwidth / 13, 0)), m, 0, 13, 1) → pointsx
  25. Sequence(D + ((m * scale) * (0, coordheight / 13)), m, 0, 13, 1) → pointsy
  26. Sequence(Text[(("\textsf{" * ReplaceAll["" + ((m * 2)) + "", ".", ","]) * "}"), (x(D) - 0.45, (((2 * m) * scale) * coordheight / 13) + y(D) - 0.33), true, true, -0, 1], m, 1, 6) → texty
  27. Sequence(Text["\textsf{" + ((2 * m)) + "}", ((((2 * m) * scale) * coordwidth / 13) + x(D), y(D) - 0.75), true, true, -0, 1], m, 0, 6) → textx
  28. Flatten(Sequence[Sequence[D + (m * ((scale * coordwidth / 13), 0)) + (j * (0, (scale * coordwidth / 13))), m, 0, coordwidth + 4], j, 0, coordheight + 4]) → coordpoints
  29. Translate(Sequence[((coordsize * m), (coordsize * 24 / m)), m, 2, 12], D) → points
  30. Textfield(input3) → InputBox3
  31. Textfield(input4) → InputBox4
  32. Textfield(input5) → InputBox5
  33. Sequence(E + (0.795 * (0, (-m))), m, -1, 4) → l4
  34. SpeechBubbleRight(G, 8, 0.9) → Vieleck3
  35. If(exnum ≟ 5, N2, N1) → N
  36. If(exnum ≟ 5, O2, O1) → O
  37. Zip(Segment[P - (0, lineheight), P + (0, lineheight)], P, KeepIf[IndexOf[m, pointsx] < 14, m, pointsx]) → linesx
  38. Zip(Segment[P - (lineheight, 0), P + (lineheight, 0)], P, KeepIf[IndexOf[m, pointsy] < 14, m, pointsy]) → linesy
  39. Textfield(input0) → InputBox0