randFromArray(metricUnits.concat([genericUnit]))
randRange(2, 9) $._("area")

What is the area of the square?

init({ range: [[-2, S + 1], [-1, S + 1]], scale: 30 }); path([[0, 0], [0, S], [S, S], [S, 0], true], {stroke: BLUE, fill: "#eee"}); label([S / 2, S], S + "\\text{ " + UNIT + "}", "above"); label([0, S / 2], S + "\\text{ " + UNIT + "}", "left");
S * S square plural_form(UNIT_TEXT)

The area is the length times the width.

_(S - 1).times(function(y) { style({ stroke: GRAY, strokeWidth: 1, strokeDasharray: "-" }, function() { path([[0, y + 61 / 60], [S, y + 61 / 60]]); path([[y + 61 / 60, 0], [y + 61 / 60, S]]); }); });

The length is S UNIT_TEXT and the width is S UNIT_TEXT, so the area is S\timesS square plural_form(UNIT_TEXT, S * S).

The length is S plural_form(UNIT_TEXT, S) and the width is S plural_form(UNIT_TEXT, S), so the area is S\timesS square plural_form(UNIT_TEXT, S * S).

\qquad\text{AREA} = S \times S = S*S

We can also count S * S square plural_form(UNIT_TEXT, S * S).

_(S * S).times(function(n) { label([n % S + 0.5, S - floor(n / S) - 0.5], n + 1, "center", false) .css({ color: GRAY }); });
randRange(2, 9) randRange(2, 9) $._("area")

What is the area of the rectangle?

init({ range: [[-2, L + 1], [-1, W + 1]], scale: 30 }); path([[0, 0], [0, W], [L, W], [L, 0], true], {stroke: BLUE, fill: "#eee"}); label([L / 2, W], L + "\\text{ " + UNIT + "}", "above"); label([0, W / 2], W + "\\text{ " + UNIT + "}", "left");
L * W square plural_form(UNIT_TEXT)

The area is the length times the width.

style({ stroke: GRAY, strokeWidth: 1, strokeDasharray: "-" }, function() { _(L - 1).times(function(x) { path([[x + 61 / 60, 0], [x + 61 / 60, W]]); }); _(W - 1).times(function(y) { path([[0, y + 61 / 60], [L, y + 61 / 60]]); }); });

The length is L UNIT_TEXT. The length is L plural_form(UNIT_TEXT, L). The width is W UNIT_TEXT. The width is W plural_form(UNIT_TEXT, W). Thus the area is L\timesW square plural_form(UNIT_TEXT, L * W).

\qquad\text{AREA} = L \times W = L * W

We can also count L * W square plural_form(UNIT_TEXT, L * W).

_(L * W).times(function(n) { label([n % L + 0.5, W - floor(n / L) - 0.5], n + 1, "center", false) .css({ color: GRAY }); });