根据数字和位值写数
几何画板及绘图内容加载中,请稍等……
这个范例演示如何根据给定的数字和位值来写出相应的数。涉及的核心数学概念包括位值、十进制数和指数表示法。作图要点使用了 GeoGebra 命令如 Sequence, Zip, Min, Take, Element, If, centerBox, Textfield, Corner, PointToPixels, onboardingTextOffset, IndexOf, Text, expandQuad, RemoveUndefined, Remove; 对象如 spaceRowV, spaceDecimal, row1Start, spaceEnd, row2Location, row3Location, row3Start, numCorrectChecked, numWholeDigits, numDecimalDigits, showsolution, animateControl, numDigits, animateRows, startHomeAnchors, startEnd, countQuestion, allRandomSeeds, numRandoms, randIndex, currentRandomSeeds, shift, shuffleIndex, possibleDigits, indexDigitList, indexDigit7, indexDigit4, indexDigit6, indexDigit5, indexDigit3, indexDigit2, indexDigit1, digit1, digit2, digit3, digit4, digit5, digit6, digit7, indexDigit8。适合小学4-5年级学生学习如何读写数字,特别是在使用小数和指数形式进行扩展表示时。
GeoGebra 命令及参数
Sequence((0, (-spaceRowV)) + row1Start + (k * (spaceEnd, 0)), k, 0, 18) → row2LocationZip(A + (0, (-spaceRowV)), A, row2Location) → row3LocationMin(4, ceil(numCorrectChecked / 2) + 1) → numWholeDigitsMin(floor(numCorrectChecked / 2) + 2, 3) → numDecimalDigitsMin(floor(animateControl), (2 * numDigits) + 1) → animateRowsSequence(Random[0, 99] / 100, A, 1, 200) → allRandomSeeds, {0.13, 0.25, 0.41, 0.7, 0.68, 0.32, 0.05, 0.02, 0.38, 0.49, 0.13, 0.34, 0.64, 0.62, 0.7, 0.31, 0.01, 0.88, 0.9, 0.65, 0.96, 0.12, 0.36, 0.09, 0.91, 0.03, 0.47, 0.22, 0.11, 0.24, 0.01, 0.16, 0.69, 0.99, 0, 0.45, 0.64, 0.27, 0.62, 0.25, 0.08, 0.45, 0.7, 0.36, 0.43, 0.17, 0.11, 0.99, 0.78, 0.35, 0.04, 0.81, 0.85, 0.26, 0.93, 0.89, 0.96, 0.77, 0.97, 0.89, 0.22, 0.35, 0.41, 0.81, 0.97, 0.81, 0.42, 0.5, 0.18, 0.67, 0.47, 0.35, 0.75, 0.07, 0.27, 0.73, 0.46, 0.93, 0.38, 0.15, 0.38, 0.16, 0.46, 0.88, 0.22, 0.92, 0.49, 0.73, 0.74, 0.91, 0.01, 0.44, 0.86, 0.1, 0.45, 0.88, 0.09, 0.39, 0.87, 0.28, 0.23, 0.55, 0.31, 0.22, 0.31, 0.9, 0.11, 0.56, 0.53, 0.52, 0, 0.37, 0.2, 0.16, 0.78, 0.22, 0.44, 0.84, 0.04, 0.05, 0.02, 0.28, 0.95, 0.8, 0.17, 0.88, 0.97, 0.35, 0.21, 0.69, 0.66, 0.56, 0.51, 0.68, 0.95, 0.83, 0.49, 0.78, 0.99, 0.98, 0.92, 0.44, 0.83, 0.99, 0.6, 0.14, 0.94, 0.6, 0.95, 0.2, 0.94, 0.97, 0.7, 0.76, 0.19, 0.29, 0.77, 0.71, 0.01, 0.68, 0.74, 0.84, 0.4, 0.09, 0.22, 0.38, 0.36, 0.99, 0.36, 0.75, 0.59, 0.66, 0.47, 0.62, 0.65, 0.4, 0.67, 0.87, 0.67, 0.38, 0.55, 0.89, 0.28, 0.01, 0.82, 0.2, 0.8, 0.42, 0, 0.65, 0.89, 0.86, 0.36, 0.67, 0.13, 0.56, 0.64, 0.49, 0.79, 0.81}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsSequence(((2 + floor((currentRandomSeeds(A) * 3))) / 10 * (-1)^(A)), A, 1, 7) → shift, {-0.4, 0.2, -0.3, 0.2, -0.4, 0.2, -0.3}Zip(1 + floor((currentRandomSeeds(K) * (Length[possibleDigits] - K + 1 - If[K ≟ 1 ∨ K ≟ numWholeDigits + numDecimalDigits, 1, 0]))), K, Sequence[9]) → indexDigitListElement(possibleDigits, indexDigit1) → digit1Element(Remove[possibleDigits, {digit1}], indexDigit2) → digit2Element(Remove[possibleDigits, {digit1, digit2}], indexDigit3) → digit3Element(Remove[possibleDigits, {digit1, digit2, digit3}], indexDigit4) → digit4Element(Remove[possibleDigits, {digit1, digit2, digit3, digit4}], indexDigit5) → digit5Element(Remove[possibleDigits, {digit1, digit2, digit3, digit4, digit5}], indexDigit6) → digit6Element(Remove[possibleDigits, {digit1, digit2, digit3, digit4, digit5, digit6}], indexDigit7) → digit7Element(Remove[possibleDigits, {digit1, digit2, digit3, digit4, digit5, digit6, digit7}], indexDigit8) → digit8Element(Remove[possibleDigits, {digit1, digit2, digit3, digit4, digit5, digit6, digit7, digit8}], indexDigit9) → digit9Element(Element[{{}, shuffleOptions2, shuffleOptions3, shuffleOptions4, shuffleOptions5, shuffleOptions6, shuffleOptions7}, numWholeDigits + numDecimalDigits], shuffleIndex) → shuffleChoiceZip(currentDigits(K), K, shuffleChoice) → shuffledDigitsZip((("\text{" * K) * "}"), K, shuffledDigits) → boxTextIf(countQuestion ≤ 1, startHomeAnchors, Zip[A + (0, B), A, Sequence[startEnd + (K * (spaceEnd, 0)), K, 0, 10], B, shift]) → allHomeAnchorsIf(¬showsolution, 0, If[animateRows + 1 > numDigits ∨ animateControl < 0.01, 0, Min[numDigits, animateRows + 1]]) → animateTopRowIndexSequence(row1Start + (k * (spaceEnd, 0)), k, 0, 18) → row1LocationTake(allUnitNum, 5 - numWholeDigits, 4 + numDecimalDigits) → currentUnitNumZip(currentUnitNum(K), K, shuffleChoice) → currentUnitsNumShuffledZip((K * L), K, shuffledDigits, L, currentUnitsNumShuffled) → row1NumsMin(floor(animateControl + 0.5), (2 * numDigits) + 1) → animateTopRowTake(allUnitList, 5 - numWholeDigits, 4 + numDecimalDigits) → currentUnitTextZip(currentUnitText(K), K, shuffleChoice) → currentUnitsShuffledSequence(startBoxes + (If[k ≥ numWholeDigits, spaceDecimal, 0], 0) + (k * (spaceBoxes, 0)), k, 0, 10) → boxAnchorsSequence(allHomeAnchors(K) + ((1 / 17 * spaceEnd), 0), K, 1, numDecimalDigits + numWholeDigits) → allHomeLabelLocElement(allHomeAnchors, numDigits) → onboardingPointZip(IndexOf[K, shuffleChoice], K, Sequence[1, numDigits]) → correctOrdercenterBox(boxWidth, boxHeight, boxAnchors(7)) → frame7centerBox(boxWidth, boxHeight, boxAnchors(6)) → frame6centerBox(boxWidth, boxHeight, boxAnchors(5)) → frame5centerBox(boxWidth, boxHeight, boxAnchors(4)) → frame4centerBox(boxWidth, boxHeight, boxAnchors(3)) → frame3centerBox(boxWidth, boxHeight, boxAnchors(2)) → frame2centerBox(boxWidth, boxHeight, boxAnchors(1)) → frame1Zip(currentStudentDigitsHint(IndexOf[k, shuffleChoice]), k, Sequence[j, j, 1, numDigits]) → currentStudentDigitsRearrangedSequence(currentLocations(k), k, 1, Length[currentLocations]) → inputCurrent, {-1, -1, -1}Textfield(input1) → InputBox1Textfield(input2) → InputBox2Corner(5) → layoutAppSizePointToPixels(Corner[onboardingDisplayText, 2], Corner[1], Corner[3], Corner[5]) → layoutOnboardingonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetSequence(k, k, 1, 10) → homeIndicesZip(allHomeAnchors(J), J, homeIndices) → homeLocationsTake({P1, P2, P3, P4, P5, P6, P7, P8}, 1, numDragBoxes) → movingPointsSequence((("SetFixed(box" * K) * ",false,enableInput)"), K, 1, Length[movingPoints]) → cmdFixBoxescenterBox(boxWidth, boxHeight, P1) → box1centerBox(boxWidth, boxHeight, P2) → box2centerBox(boxWidth, boxHeight, P3) → box3centerBox(boxWidth, boxHeight, P4) → box4centerBox(boxWidth, boxHeight, P5) → box5centerBox(boxWidth, boxHeight, P6) → box6Element(movingPoints, movingIndex) → PMoveTake({frame1, frame2, frame3, frame4, frame5, frame6, frame7}, 1, numDigits) → frameListIndexOf(true, Zip[IsInRegion[PMove, K], K, frameList]) → locationPMovecenterBox(boxWidth, boxHeight, PMove) → highlightBoxcenterBox(boxWidth, boxHeight, boxAnchors(locationPMove)) → highlightFrameZip(Text[("" * K), J, true, true, 0, 0], K, boxText, J, movingPoints) → boxTextDisplayText(("" * boxText(movingIndex)), If[Defined[PMove], PMove, (300, 300)], false, true, 0, 0) → textHightlightSequence(HOME, k, 1, numDragBoxes) → allHomecenterBox(boxWidth, boxHeight, P7) → box7centerBox(boxWidth, boxHeight, P8) → box8centerBox(boxWidth, boxHeight, boxAnchors(8)) → frame8Sequence((((("SetValue(P" * K) * ",homeLocations(") * K) * "))"), K, 1, numDragBoxes) → cmdSendHomeZip(centerBox[boxWidth, boxHeight, K], K, Take[allHomeAnchors, 1, numDragBoxes]) → homeBoxesText("\text{.}", decLocation - (0, boxHeight / 11), true, true, 0, 0) → textDecimalSequence(row1Start + (spaceRowH / 2, 0) + (k * (spaceRowH, 0)), k, 0, 18) → row1PlusLocZip((K * L), K, currentDigits, L, currentUnitNum) → row2NumsTake(Zip[Text[L, J, true, true, 1, 0], L, row2Nums, J, row2Location], 1, Max[1, animateRows - numDigits - 1]) → row2LabelsIf(animateControl > (numDigits * 2) + 1, animateControl - animateRows, 0) → animateFinalNumSequence(If[k ≥ numWholeDigits, ((0.38 * spaceDecimal), 0), (0, 0)] + (k * (spaceDecimal, 0)) + row3Start, k, 0, numDecimalDigits + numWholeDigits) → finalPointsZip(Vector[(animateFinalNum * Vector[K, J])], K, row3Location, J, finalPoints) → finalVectorsZip(If[IndexOf[K, currentDigits] ≟ numWholeDigits, (("" * K) * "."), (("" * K) * "")], K, currentDigits) → currentDigitRearrangedTextZip((((("\text{\textbf{" * K) * "} \times ") * J) * "}"), K, shuffledDigits, J, currentUnitsShuffled) → solutionListSequence(SolutionStart + (K * (spaceEnd, 0)), K, 0, 120) → solutionPointsZip(Text[K, J, true, true, 1, 0], K, solutionList, J, solutionPoints) → solutionTextIf(animateControl < numDigits, 0, Min[animateControl - animateRows, 1]) → animateMovingNumsZip(row1Location(IndexOf[K, shuffleChoice]), K, Sequence[1, numDigits]) → moveRow1LocationZip(Vector[K, J], K, moveRow1Location, J, row2Location) → moveVectorsIf(animateRows ≥ numDigits, animateRows - numDigits, 0) → indexRow2Take(Zip[Text[L, J, true, true, 1, 0], L, row1Nums, J, row1Location], 1, Min[numDigits, animateTopRow]) → row1Labels1expandQuad(Vertex[box1, 1], Vertex[box1, 2], Vertex[box1, 3], Vertex[box1, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox1expandQuad(Vertex[box2, 1], Vertex[box2, 2], Vertex[box2, 3], Vertex[box2, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox2expandQuad(Vertex[box3, 1], Vertex[box3, 2], Vertex[box3, 3], Vertex[box3, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox3expandQuad(Vertex[box4, 1], Vertex[box4, 2], Vertex[box4, 3], Vertex[box4, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox4expandQuad(Vertex[box5, 1], Vertex[box5, 2], Vertex[box5, 3], Vertex[box5, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox5expandQuad(Vertex[box6, 1], Vertex[box6, 2], Vertex[box6, 3], Vertex[box6, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox6expandQuad(Vertex[box7, 1], Vertex[box7, 2], Vertex[box7, 3], Vertex[box7, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox7expandQuad(Vertex[box8, 1], Vertex[box8, 2], Vertex[box8, 3], Vertex[box8, 4], (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingBox8Zip(Translate[K, Vector[J]], K, row3Location, Vector[J], finalVectors) → finalMovingPointsZip(Text["\text{+}", J, true, true, 1, 0], J, Take[row2PlusLoc, 1, Length[row2Labels] - 1]) → row2PlusIf(Defined[movePointLocation], Text[moveText, movePointLocation, true, true, 1, 0], Text[moveText, (0, 0), true, true, 0, 0]) → movingTextZip(currentDigits(IndexOf[K, shuffleChoice]), K, Sequence[1, numDigits]) → currentStudentDigitsZip(If[correctOrder(k) ≟ currentLocations(k), k], k, Sequence[numDigits]) → hintCorrectIndexRemoveUndefined(Zip[If[IndexOf[k, currentLocations] ≟ IndexOf[k, shuffleChoice], k], k, Sequence[numDigits]]) → indexCorrectBoxLocationRemove(Sequence[numDigits], indexCorrectBoxLocationChecked) → indexIncorrectBoxLocationZip(allFrames(k), k, indexIncorrectBoxLocation) → boxesIncorrectZip(allFrames(k), k, indexCorrectBoxLocationChecked) → boxesCorrectZip(inputCurrent(k) ≠ inputSaved(k), k, Sequence[numDigits]) → indexChangedZip((((("" * K) * "\times") * L) * ""), K, shuffledDigits, L, currentUnitsShuffled) → row1TextTake(Zip[Text[L, J, true, true, 1, 0], L, row1Text, J, row1Location], animateTopRow + 1, Min[numDigits, animateRows + 1]) → row1Labels2Zip(Text[("" * K), J, true, true, 0, 0], K, Take[boxText, animateTopRowIndex, animateTopRowIndex], J, Take[allHomeAnchors, animateTopRowIndex, animateTopRowIndex]) → boxTextHomeHighlightZip(Text[("" * K), J, true, true, 0, 0], K, Join[{Take[boxText, 1, animateTopRowIndex - 1], Take[boxText, animateTopRowIndex + 1, numDigits]}], J, Join[{Take[allHomeAnchors, 1, animateTopRowIndex - 1], Take[allHomeAnchors, animateTopRowIndex + 1, numDigits]}]) → boxTextHomeZip(Text[("\times\hspace{7px}" * K), J, true, true, 1, 0], K, Join[{Take[currentUnitsShuffled, 1, animateTopRowIndex - 1], Take[currentUnitsShuffled, animateTopRowIndex + 1, numDigits]}], J, Join[{Take[allHomeLabelLoc, 1, animateTopRowIndex - 1], Take[allHomeLabelLoc, animateTopRowIndex + 1, numDigits]}]) → unitLabelsZip(Text[("\times\hspace{7px}" * K), J, true, true, 1, 0], K, Take[currentUnitsShuffled, animateTopRowIndex, animateTopRowIndex], J, Take[allHomeLabelLoc, animateTopRowIndex, animateTopRowIndex]) → unitLabelsHighlightZip(Text[K, J, true, true, 1, 0], K, currentDigitRearrangedText, J, Take[finalMovingPoints, 1, numDigits]) → row3Labels
AI 绘图提示语参考
绘制一个用于练习按数位写数的教学互动图形。画面包含多行可拖动的数字卡片,每张卡片上标有数字,卡片按整数部分和小数部分分组排列,上方有输入框用于填写答案。数字卡片的位置会随机打乱,并带有轻微上下偏移。图形下方或侧边显示数位标签(如个位、十位、十分位等),并配有提示文字和动画控制按钮。整体布局清晰,适合小学生观察数位与数值的关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。