电梯楼层整数加减:向上/向下移动后的楼层判定

电梯楼层整数加减:向上/向下移动后的楼层判定
几何画板及绘图内容加载中,请稍等……
2025-04-29 01:29
这个范例用“电梯从某一楼层出发,向上或向下移动若干层”的情境动画,训练学生根据整数运算判断电梯当前所在楼层。核心数学概念是整数的加法与减法、正负号表示方向,以及由“起点 + 位移 = 终点”构建对应的算式。作图与交互要点可从构造摘要提炼:它使用 Textfield 创建输入框(input13/input11/input5 等),用 Point 与若干几何/标注对象(p0a/p0b/P0、heightstock、widthstock、widthlift)呈现“楼层刻度”和“电梯位置”;通过 Sequence 与 Translate 进行逐步动画位移;并在逻辑判断中使用 If、IndexOf、SelectedIndex、Element 来根据下拉选择与输入确定正确选项或生成反馈;同时借助 Segment、Polygon 与文本点集合(textpoints、liftpoints)完成楼层与电梯位

GeoGebra 命令及参数

  1. Textfield(input13) → Eingabefeld13
  2. Textfield(input11) → Eingabefeld11
  3. Point(Line[Parkhaus1, xAxis]) → Parkhaus2
  4. Sequence(P0 + (0, (m * heightstock)), m, 0, 7) → textpoints
  5. Translate(textpoints, (widthstock, 0)) → liftpoints
  6. Point(liftpoints) → PLift1
  7. Polygon(PLift1, PLift1 + ((-0.96 * widthlift), 0), PLift1 + ((-0.96 * widthlift), (-0.95 * heightstock)), PLift1 + (0, (-0.95 * heightstock))) → lift, plift1, f, g, h
  8. Textfield(input5) → Eingabefeld5
  9. Textfield(input8) → Eingabefeld8
  10. Textfield(input19) → Eingabefeld19
  11. Textfield(input20) → Eingabefeld20
  12. Textfield(input21) → Eingabefeld21
  13. Textfield(input22) → Eingabefeld22
  14. SelectedIndex(DropDown18) → input18
  15. SelectedIndex(DropDown17) → input17
  16. SelectedIndex(DropDown15) → input15
  17. SelectedIndex(DropDown14) → input14
  18. SelectedIndex(DropDown6) → input6
  19. SelectedIndex(DropDown3) → input3
  20. SelectedIndex(DropDown9) → input9
  21. SelectedIndex(DropDown16) → input16
  22. Element({0, 1, 2, 3, 6, 4, 5}, step) → exnum
  23. Element({1, 4, 1, 8, 5, 2, If[¬correct16, 5, 1]}, exnum + 1) → ausgangsstock
  24. IndexOf(PLift1, liftpoints) → stockindex
  25. If(stockindex > ausgangsstock, Sequence[ausgangsstock, stockindex - 1], {}) → bogerlrunter
  26. If(stockindex < ausgangsstock, Sequence[ausgangsstock - 1, stockindex], {}) → bogerlrauf
  27. Textfield(input2) → Eingabefeld2
  28. Zip(P + (0.45, (-0.2 * heightstock)), P, Sequence[liftpoints(m), m, 1, 8]) → bogerlpoints
  29. Translate(bogerlpoints, (0, (1 * heightstock))) → bogerlpointsunten
  30. Zip(Segment[A, B], A, bogerlpoints, B, bogerlpointsunten) → bogerlall
  31. Join({bogerlrauf, bogerlrunter}) → bogerlnums
  32. KeepIf(IndexOf[m, bogerlall] ∈ bogerlnums, m, bogerlall) → bogerl
  33. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, RasterMaxX / RasterStepXY, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, RasterMaxY / RasterStepXY, RasterMaxY / RasterStepXY]}) → RasterAussen
  34. Element({correct1, correct4, correct7, correct10, correct12}, exnum) → showgreen
  35. Element({4, 1, 8, 5, 5, 2, 6}, step) → endstock
  36. Zip(Text[(("\textsf\small{" * m) * "}"), P + (0.4, -0.1), true, true, 0], m, {"3", "2", "1", "0", "--1", "--2", "--3", "--4"}, P, textpoints) → textlist
  37. Segment(PStart, PEndOben) → pfeil
  38. Element({correct1, correct4, correct7, correct10, correct12}, exnum) → correctStock