校报成本核算——线性函数入门练习
几何画板及绘图内容加载中,请稍等……
所属专题
Lineare Funktionen
该GeoGebra范例以学校校报印刷成本为情境,演示线性函数f(x)=1.95x+15如何描述总成本与印刷份数之间的关系。核心数学概念是线性函数的参数含义:斜率1.95表示每份印刷的边际成本(单位变动成本),截距15表示固定成本(如排版费)。范例包含多个交互式问题,如判断正确函数表达式、根据无固定成本条件写出函数式,以及讨论“印刷量翻倍价格是否翻倍”的常见误解。作图要点:使用Sequence、Element、Textfield、Join、Segment、If、Corner、Circle、Text、Flatten、Point、RotateText等GeoGebra命令构建了包含按钮、输入框、反馈区域和步骤计数器的动态练习环境,并利用RasterPixMat等对象实现网格显示。适合初中7-8年级学生,用于理解线性函数图像与方程之间的转换,以及参数k和d的实际意义,可作为课堂探究或课后练习材料。
GeoGebra 命令及参数
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {10, 2, 10, 5, 10, 7, 6, 2, 3, 1}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxJoin({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) → RasterPunkteSegment(Origin + ((minX / stepX * disX) - edgeAxisX, 0), Origin + ((maxX / stepX * disX) + edgeAxisX, 0)) → segAxisXSegment(Origin + (0, (minY / stepY * disY) - edgeAxisY), Origin + (0, (maxY / stepY * disY) + edgeAxisY)) → segAxisYSequence(Origin + ((minX / stepX * disX), 0) + (k * (disX, 0)), k, 0, maxX / stepX - minX / stepX) → PointsXAxisSequence(Origin + (0, (minY / stepY * disY)) + (k * (0, disY)), k, 0, maxY / stepY - minY / stepY) → PointsYAxisSequence(Segment[PointsXAxis(k) + (0, (-disSeg)), PointsXAxis(k) + (0, disSeg)], k, 1, Length[PointsXAxis]) → segXAxisSequence(Segment[PointsYAxis(k) + ((-disSeg), 0), PointsYAxis(k) + (disSeg, 0)], k, 1, Length[PointsYAxis]) → segYAxisSequence(m, m, minX, maxX, stepX) → numbersXAxisSequence(Text[((("\textsf{\footnotesize{\(" * If[numbersXAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersXAxis, k] ≟ 0, "", ("" * Element[numbersXAxis, k])]) * "\)}}"), PointsXAxis(k) + (-0.12, (-disSeg)), false, true, 0, -1], k, 1, (maxX - minX) / stepX + 1) → CapXSequence(m, m, minY, maxY, stepY) → numbersYAxisSequence(Text[((("\textsf{\footnotesize{\(" * If[numbersYAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersYAxis, k] ≟ 0, "", ("" * Element[numbersYAxis, k])]) * "\)}}"), PointsYAxis(k) + ((-disSeg) + 0.05, 0), false, true, -1, 0], k, 1, (maxY - minY) / stepY + 1) → CapYElement({Polygon[(x(PointsXAxis(1)), y(PointsYAxis(1))) + ((-edgeAxisX) - 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(1))) + (edgeAxisX + 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(Length[PointsYAxis]))) + (edgeAxisX + 0.05, edgeAxisY + 0.05), (x(PointsXAxis(1)), y(PointsYAxis(Length[PointsYAxis]))) + ((-edgeAxisX) - 0.05, edgeAxisY + 0.05)]}, 1) → polyAxisSequence(Sequence[(x(PointsXAxis(k)), y(PointsYAxis(m))), k, 1, Length[PointsXAxis]], m, 1, Length[PointsYAxis]) → AllPointsOnGridIf(step ≤ 4, (0, 7.5), (0, 5.25)) → PosTableSequence(Sequence[PosTable + (Sum[ListSpalte, k], (-Sum[ListZeile, m])), k, 0, 2], m, 0, 8) → TablePosMatSegment(Point031, Point031 + (anim04 * (Point036 + (edgeAxisX, edgeAxisY) - Point031))) → segGraph04Textfield(input021) → InputBox021Textfield(input022) → InputBox022Textfield(input023) → InputBox023Textfield(input024) → InputBox024Textfield(input051) → InputBox051Textfield(input052) → InputBox052Corner(imgLupe, 3) → PosImgLupe3Circle(MPLupe, (0.5 * radiusLupe)) → circleLupeText("\textsf{\bold{Zieh mich!}}", PosImgLupe2, false, true, 0, 0) → CapLupeSequence(Midpoint[TablePosMat(2 + k, 3), TablePosMat(3 + k, 3)] + (0.6, 0), k, 0, 6) → Park03Flatten(AllPointsOnGrid) → GridPointsPoint(Join[{{Park03(4)}, GridPoints}]) → Pos033Point(Join[{{Park03(5)}, GridPoints}]) → Pos034Point(Join[{{Park03(6)}, GridPoints}]) → Pos035Point(Join[{{Park03(7)}, GridPoints}]) → Pos036Point(Join[{{Park03(1)}, GridPoints}]) → Pos031If(step ≟ 4, anim04 ≟ 0 ∨ anim04 ≟ 1, true) → clickableBtnBackIf(step ≟ 2, correct021 ∧ correct022 ∧ correct023 ∧ correct024, step ≟ 3, Sort[AllPos03] ≟ Sort[SolPoints] ∧ showFB031 ∧ showFB033 ∧ showFB034 ∧ showFB035 ∧ showFB036, step ≟ 4, anim04 ≟ 1, step ≟ 5.2, correct051 ∧ correct052, true) → clickableBtnNextRotateText(Text["\textsf{\bold{\footnotesize{Zieh mich!}}}", Park03(2) + (0.1, 0.1), false, true, 0, 0], 90°) → CapZiehMich03