Written Multiplication Practice: Nonnegative Decimal Multiplication
Loading the math board and drawing, please wait…
In collections
Wiederholung: Rechnen mit Dezimalzahlen und Brüchen
This GeoGebra lesson demonstrates a step-by-step written multiplication workflow, visually organizing nonnegative decimal multiplication into place-value steps and partial products so learners can track alignment and carries. The core math ideas are place value of decimals, the decomposition into partial products, and the carry/aggregation rules when multiplying multi-digit numbers. The constructi
GeoGebra Commands & Parameters
Join({{5}, Join[Sequence[Shuffle[{1, 2, 3, 4, 5, 6, 7, 8, 9}], m, 1, 30]]}) → randomNosN2Join({{2}, Join[Sequence[Shuffle[{1, 2, 3, 4, 5, 6, 7, 8, 9}], m, 1, 30]]}) → randomNosN1Join({{RandomElement[{2, 3, 4, 5}]}, Join[Sequence[Shuffle[{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}], m, 1, 30]]}) → randomNosM3Join({{RandomElement[{1, 2, 3, 4, 5, 6, 7, 8, 9}]}, Join[Sequence[Shuffle[{1, 2, 3, 4, 5, 6, 7, 8, 9}], m, 1, 30]]}) → randomNosM2Join({{RandomElement[{1, 2, 3, 4}]}, Join[Sequence[Shuffle[{0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}], m, 1, 30]]}) → randomNosM1If(numCcorrect(1) ≟ 0, c0 ≟ 0 ∨ (¬Defined[c0]), c0 ≟ numCcorrect(1)) → correctC0If(numCcorrect(2) ≟ 0, c1 ≟ 0 ∨ (¬Defined[c1]), c1 ≟ numCcorrect(2)) → correctC1If(numBcorrect(3) ≟ 0, b2 ≟ 0 ∨ (¬Defined[b2]), b2 ≟ numBcorrect(2 + 1)) → correctB2If(numBcorrect(2) ≟ 0, b1 ≟ 0 ∨ (¬Defined[b1]), b1 ≟ numBcorrect(1 + 1)) → correctB1If(numAcorrect(2) ≟ 0, a1 ≟ 0 ∨ (¬Defined[a1]), a1 ≟ numAcorrect(2)) → correctA1If(numAcorrect(1) ≟ 0, a0 ≟ 0 ∨ (¬Defined[a0]), a0 ≟ numAcorrect(1)) → correctA0Zip(If[m ≟ 0, 3, RandomElement[{1, 2, 3}]], m, randomNosM1) → randomPosKommaPoint(Line[FA, yAxis]) → FBPolygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, ptopleftcornerfeedback, ptoprightcornerfeedback, pbottomrightcornerfeedback, pbottomleftcornerfeedbackTextfield(a1) → InputBoxA1Textfield(a2) → InputBoxA2Textfield(a3) → InputBoxA3Textfield(a4) → InputBoxA4Textfield(a5) → InputBoxA5Textfield(b0) → InputBoxB0Textfield(b1) → InputBoxB1Textfield(b2) → InputBoxB2Textfield(b3) → InputBoxB3Textfield(b4) → InputBoxB4Textfield(b5) → InputBoxB5Textfield(c0) → InputBoxC0Textfield(c1) → InputBoxC1Textfield(c2) → InputBoxC2Textfield(c3) → InputBoxC3Textfield(c4) → InputBoxC4Textfield(c5) → InputBoxC5Textfield(ua1) → InputBoxUA1Textfield(ua2) → InputBoxUA2Textfield(ub1) → InputBoxUB1Textfield(ub2) → InputBoxUB2Textfield(a0) → InputBoxA0If(ua1correct ≟ 0, (¬Defined[ua2]) ∨ ua2 ≟ 0, ua2 ≟ ua1correct) → correctUA2If(ua2correct ≟ 0, (¬Defined[ua1]) ∨ ua1 ≟ 0, ua1 ≟ ua2correct) → correctUA1If(ub2correct ≟ 0, (¬Defined[ub1]) ∨ ub1 ≟ 0, ub1 ≟ ub2correct) → correctUB1If(ub1correct ≟ 0, (¬Defined[ub2]) ∨ ub2 ≟ 0, ub2 ≟ ub1correct) → correctUB2Flatten(Sequence[Sequence[FA + (m * (dxFB1, 0)) + (j * (0, 1)), m, 0, 5], j, 0, 1]) → faPolygon(fa(1), fa(2), fa(8), fa(7)) → va0, f, g, h, iPolygon(fa(2), fa(3), fa(9), fa(8)) → va1, j, k, l, pPolygon(fa(3), fa(4), fa(10), fa(9)) → va2, q, r, s, tPolygon(fa(4), fa(5), fa(11), fa(10)) → va3, a, b, c, dPolygon(fa(5), fa(6), fa(12), fa(11)) → va4, e, f_1, g_1, h_1Flatten(Sequence[Sequence[FB + (m * (dxFB1, 0)) + (j * (0, 1)), m, 0, 5], j, 0, 1]) → fbPolygon(fb(1), fb(2), fb(8), fb(7)) → vb0, i_1, j_1, k_1, l_1Polygon(fb(3), fb(2), fb(8), fb(9)) → vb1, m_1, n_1, p_1, q_1Polygon(fb(3), fb(4), fb(10), fb(9)) → vb2, r_1, s_1, t_1, a_1Polygon(fb(4), fb(5), fb(11), fb(10)) → vb3, b_1, c_1, d_1, e_1Polygon(fb(5), fb(6), fb(12), fb(11)) → vb4, f_2, g_2, h_2, i_2Point(Line[FA, yAxis]) → FCFlatten(Sequence[Sequence[FC + (m * (dxFB1, 0)) + (j * (0, 1)), m, 0, 5], j, 0, 1]) → fcPolygon(fc(1), fc(2), fc(8), fc(7)) → vc0, j_2, k_2, l_2, m_2Polygon(fc(3), fc(2), fc(8), fc(9)) → vc1, n_2, p_2, q_2, r_2Polygon(fc(3), fc(4), fc(10), fc(9)) → vc2, s_2, t_2, a_2, b_2Polygon(fc(4), fc(5), fc(11), fc(10)) → vc3, c_2, d_2, e_2, f_3Polygon(fc(5), fc(6), fc(12), fc(11)) → vc4, g_3, h_3, i_3, j_3Flatten(Sequence[Sequence[E + (m * (dxUberschlag, 0)) + (j * (0, dyUberschlag)), m, 0, 2], j, 0, 1]) → fuaPolygon(fua(1), fua(2), fua(5), fua(4)) → vua1, k_3, l_3, m_3, n_3Polygon(fua(2), fua(3), fua(6), fua(5)) → vua2, p_3, q_3, r_3, s_3Segment(A, B) → h_4Sequence(C + (i * (dxFB1, 0)), i, 0, 6) → PosE1Translate(PosE1, (0, dyEingabefeld1)) → PosE2Translate(PosE2, (0, dyEingabefeld2)) → PosE3Sequence(F + (m * (abskomma, 0)), m, 0, 5) → listPosKomma0Sequence(G + (m * (abskomma, 0)), m, 0, 2) → listPosKomma1Zip(If[m ≟ 0, 3, RandomElement[{1, 2, 3}]], m, randomNosM1) → l1If(acorrect ≥ 10000, 5, If[acorrect ≥ 1000, 4, If[acorrect ≥ 100, 3, If[acorrect ≥ 10, 2, 1]]]) → stellenAIf(bcorrect ≥ 10000, 5, If[bcorrect ≥ 1000, 4, If[bcorrect ≥ 100, 3, If[bcorrect ≥ 10, 2, 1]]]) → stellenBIf(ccorrect ≥ 10000, 5, If[ccorrect ≥ 1000, 4, If[ccorrect ≥ 100, 3, If[ccorrect ≥ 10, 2, 1]]]) → stellenCSequence(H + (0.4, -0.7) + (m * (abskomma2, 0)), m, 0, 2) → listPosKomma2Sequence(H + (0.4, -2.95) + (m * (abskomma2, 0)), m, 0, 3) → listPosKomma3