R1_GIVEN ? R1 : R2 R1_GIVEN ? R2 : R1 R1_GIVEN ? R1_RATIO : R2_RATIO R1_GIVEN ? R1_MOLAR_MASS : R2_MOLAR_MASS randRange(5, 100) roundTo(3, GIVEN_MASS / GIVEN_MOLAR_MASS) roundTo(3, GIVEN_MOL * P1_RATIO / GIVEN_RATIO) roundTo(3, P1_MOL * P1_MOLAR_MASS) $._("grams of") $._("molar mass of") $._("moles of") $._("of") new Plural(function(num) { return $.ngettext("mole", "moles", num); })

Given the following reaction:

`\qquad R1_RATIO === 1 ? "" : R1_RATIOR1 + R2_RATIO === 1 ? "" : R2_RATIOR2 \rightarrow P1_RATIO === 1 ? "" : P1_RATIOP1 + P2_RATIO === 1 ? "" : P2_RATIOP2`

How many moles of `P1` will be produced from `GIVEN_MASS \text{g}` of `GIVEN`, assuming `NOT_GIVEN` is available in excess?

P1_MOL moles (you can round to the nearest tenth of a mole)

`\dfrac{GIVEN_MASS \cancel{\text{g}}}{GIVEN_MOLAR_MASS \cancel{\text{g}} / \text{mol}} = \text{ plural(GIVEN_MOL, "mole")} \text{ OF }GIVEN` [Explain]

First we want to convert the given amount of `GIVEN` from grams to moles. To do this, we divide the given amount of `GIVEN` by the molar mass of `GIVEN`.

`\dfrac{\text{GRAMS_OF }GIVEN}{\text{MOLAR_MASS_OF }GIVEN} = \text{MOLES_OF }GIVEN`

To find the molar mass of `GIVEN`, we look up the atomic weight of each atom in a molecule of `GIVEN` in the periodic table and add them together. In this case, it's `GIVEN_MOLAR_MASS \text{g/mol}`.

Dividing the given `GIVEN_MASS \text{g}` of `GIVEN` by the molar mass of `GIVEN_MOLAR_MASS \text{g/mol}` tells us we're starting with `\text{GIVEN_MOL plural_form(MOLE, GIVEN_MOL)}` of `GIVEN`.

The mole ratio of `\dfrac{GIVEN}{P1}` in the reaction is `\dfrac{GIVEN_RATIO}{P1_RATIO}`. [Explain]

The reaction is `\blue{GIVEN_RATIO}GIVEN + R2_RATIOR2 \rightarrow \red{P1_RATIO}P1 + P2_RATIOP2`. The coefficients in front of each molecule tell us in what ratios the molecules react. In this case cardinalThrough20(GIVEN_RATIO) `GIVEN` for every cardinalThrough20(P1_RATIO) `P1` molecule.

The reaction is `\blue{GIVEN_RATIO}GIVEN + R2_RATIOR2 \rightarrow \red{P1_RATIO}P1 + P2_RATIOP2`. The coefficients in front of each molecule tell us in what ratios the molecules react. In this case cardinalThrough20(GIVEN_RATIO) `GIVEN` for every cardinalThrough20(P1_RATIO) `P1` molecules.

`\qquad \dfrac{GIVEN}{P1} = \dfrac{GIVEN_RATIO}{P1_RATIO} = \dfrac{\text{ plural(GIVEN_MOL, "mole")}}{x}`

`x = \text{ P1_MOL plural_form(MOLE, P1_MOL)}` of `P1` produced.

"\\text{CH}_4" 1 roundTo(3, molarMass("C") + molarMass("H") * 4) "\\text{O}_2" 2 roundTo(3, molarMass("O") * 2) "\\text{CO}_2" 1 roundTo(3, molarMass("C") + molarMass("O") * 2) "\\text{H}_2\\text{O}" 2 true
"\\text{Mg(OH)}_2" 1 roundTo(3, molarMass("Mg") + (molarMass("O") + molarMass("H")) * 2) "\\text{HCl}" 2 roundTo(3, molarMass("H") + molarMass("Cl")) "\\text{MgCl}_2" 1 roundTo(3, (molarMass("Mg") + molarMass("Cl")) * 2) "\\text{H}_2\\text{O}" 2 true
"\\text{NaCl}" 1 roundTo(3, molarMass("Na") + molarMass("Cl")) "\\text{AgNO}_3" 1 roundTo(3, molarMass("Ag") + molarMass("N") + molarMass("O") * 3) "\\text{AgCl}" 1 roundTo(3, molarMass("Ag") + molarMass("Cl")) "\\text{NaNO}_3" 1 !!rand(2)
"\\text{C}_3\\text{H}_8" 1 roundTo(3, molarMass("C") * 3 + molarMass("H") * 8) "\\text{O}_2" 5 roundTo(3, molarMass("O") * 2) "\\text{CO}_2" 3 roundTo(3, molarMass("C") + molarMass("O") * 2) "\\text{H}_2\\text{O}" 4 true
"\\text{Zn}" 1 roundTo(3, molarMass("Zn")) "\\text{HCl}" 2 roundTo(3, molarMass("H") + molarMass("Cl")) "\\text{ZnCl}_2" 1 roundTo(3, molarMass("Zn") + molarMass("Cl") * 2) "\\text{H}_2" 1 true
"\\text{Cu}" 1 roundTo(3, molarMass("Cu")) "\\text{AgNO}_3" 2 roundTo(3, molarMass("Ag") + molarMass("N") + molarMass("O") * 3) "\\text{Ag}" 2 roundTo(3, molarMass("Ag")) "\\text{Cu(NO}_3\\text{)}_2" 1 true
"\\text{Zn}" 1 roundTo(3, molarMass("Zn")) "\\text{CuCl}_2" 1 roundTo(3, molarMass("Cu") + molarMass("Cl") * 2) "\\text{ZnCl}_2" 1 roundTo(3, molarMass("Zn") + molarMass("Cl") * 2) "\\text{Cu}" 1 true
"\\text{Fe}" 4 roundTo(3, molarMass("Fe")) "\\text{O}_2" 3 roundTo(3, molarMass("O") * 2) "\\text{Fe}_2\\text{O}_3" 2 roundTo(3, molarMass("Fe") * 2 + molarMass("O") * 3) "" true
"\\text{Na}" 2 roundTo(3, molarMass("Na")) "\\text{Cl}_2" 1 roundTo(3, molarMass("Cl") * 2) "\\text{NaCl}" 2 roundTo(3, molarMass("Na") + molarMass("Cl")) "" true
"\\text{HgO}" 2 roundTo(3, molarMass("Hg") + molarMass("O")) "" 0 0 "\\text{Hg}" 2 roundTo(3, molarMass("Hg")) "\\text{O}_2" 1 true
"\\text{H}_2\\text{O}_2" 2 roundTo(3, molarMass("H") * 2 + molarMass("O") * 2) "" 0 0 "\\text{H}_2\\text{O}" 2 roundTo(3, molarMass("H") * 2 + molarMass("O")) "\\text{O}_2" 1 true
"\\text{KClO}_3" 2 roundTo(3, molarMass("K") + molarMass("Cl") + molarMass("O") * 3) "" 0 0 "\\text{KCl}" 2 roundTo(3, molarMass("K") + molarMass("Cl")) "\\text{O}_2" 3 true