In deze opgave ontwikkelen we een webtoepassing waarmee kinderen kunnen leren hoofdrekenen. De kinderen krijgen een $$4 \times 4$$ rooster met natuurlijke getallen te zien, samen met een bewerking waarvan het resultaat minstens één keer in het rooster terug te vinden is. Ze kunnen punten verdienen door in het rooster te drukken op een cel die het juiste resultaat van de bewerking bevat. Na elke poging krijgen ze het juiste antwoord te zien, en verschijnt er een nieuwe bewerking.

rekenen
Screenshot van de webapplicatie waarmee kinderen kunnen leren hoofdrekenen.

De bewerking gebruikt telkens een binaire operator (+, −, × of ÷) die inwerkt op twee natuurlijke getallen. De kinderen kiezen zelf met welke operatoren ze willen werken, en kunnen ook aangeven wat de maximale waarde is van het resultaat van de bewerkingen. Om de interactiviteit met de kinderen te verhogen, worden ze zelfs aangesproken door een stem die hun prestaties beoordeelt.

Opgave

We hebben reeds het grootste deel van deze webtoepassing ontwikkeld. De bronbestanden hebben we gebundeld in het ZIP bestand rekenen.zip1. Enkel de JavaScript functies uit het bestand rekenen.hulpfuncties.js2 moeten nog geïmplementeerd worden.

Gevraagd wordt:

Voorbeeld

>>> randomNumber(10)
5
>>> randomNumbers(3, 4, 10, false)
[8, 5, 8]
>>> randomNumbers(3, 4, 10, true)
[6, 5, 9]
>>> randomElement([3, 2, 8])
8

>>> divisors(24)
[1, 2, 3, 4, 6, 8, 12, 24]
>>> divisors(15)
[1, 15]
>>> multiples(4, 25)
[4, 8, 12, 16, 20, 24]

>>> randomExpression('+', 16, 10)
[9, 7]
>>> randomExpression('-', 8, 20)
[12, 4]
>>> randomExpression('*', 15, 8)
[3, 5]
>>> randomExpression('/', 3, 15)
[12, 4]