Deze video bestaat uit twee delen:
deel 1:
deel 2:
Vraag 8.1: optelfunctie
Maak een javascript-functie die de som van drie getallen oplevert als return-waarde. Dus
som( 20,30,70 ) // levert 120 op, en som(5,5,10) // levert 20 op
De eerste regel van je functie is dan
function som( a,b,c ) {
Vraag 8.2: nieuwe functie gebruikt eerdere functie
Maak een javascript-functie die het gemiddelde van zes (6) getallen oplevert. Dus
gemiddelde( 20,30,70, 50,20,50 ) // levert 40 op, en gemiddelde( 5,5,6,4,5,5 ) // levert 5 op
De eerte regel van je functie is dan
function gemiddelde( a,b,c,d,e,f ) {
Gebruik hierbij de functie ‘som’ die je gemaakt hebt in opgave 8.1 (zonder dat je die functie ‘som’ verandert. (b.v. in eentje die zes getallen optelt)).
Opdracht 8.3: tekst uit invoervelden
Voeg de volgende HTML toe als inhoud van de “groeneBlok”-DIV van de voorbeeld HTML (de textbox die er nu staat mag weg).
<textarea id="textbox1"></textarea> <br> <textarea id="textbox2"></textarea> <br> <textarea id="textbox3"></textarea> <br>
en voeg de volgende functie toe aan de Javascript-code:
function textInhoud( id ) { return document.getElementById( id ).value }
Kun je omschrijven wat deze functie ‘tekstInhoud()’ doet/berekent? (“value” haalt de tekst op die een gebruiker in een html-textveld heeft ingetikt. Experimenteer er ook eens mee)
[ Mail je antwoord… ]Opdracht 8.4: biljartwedstrijd
Om de winnaar van een potje biljarten uit te rekenen, willen we weten wat het grootste getal is dat in de tekstvelden van opdracht 8.3 is ingevoerd. De ingebouwde Javascript functie Math.max() levert je het grootste getal op van twee of meer getallen die je als parameter meegeeft:
Math.max( 3,4,1,3,2 ) // levert 4 op; werkt ook voor // meer of minder parameters
Speel even in de console met deze Math.max functie (er is ook een Math.min).
Combineer het gebruik van de functie textInhoud en van Math.max tot een berekening van het grootste getal dat de gebruiker in een van de drie invoervelden heeft ingetikt.
Vraag 8.5: Arduino doet maximum
De Arduino heeft ook een functie om het maximum uit te rekenen: max(a,b) (zie de Arduino reference, online of in je directory met de arduino software). Deze functie heeft geen “Math.” ervoor, en heeft een beperking: hij kan maar van twee getallen het maximum berekenen.
Schrijf een Arduino-programmaatje, dat een functie max3(a,b,c) bevat dat het maximum van drie getallen kan berekenen. Hier is alvast de test-code:
void setup() { Serial.begin(9600); Serial.println( max3(1,2,3) ); Serial.println( max3(3,2,1) ); Serial.println( max3(6,6,6) ); Serial.println( max3(-1,-2,-3) ); } int max3( int a, int b, int c )// De 'int's zorgen ervoor dat arduino-software { // kan controleren dat je alleen gehele getallen // meegeeft. return .............. ; // Vul hier je berekening van het maximum van a,b,c in. } // Gebruik hierbij de max(a,b) functie van Arduino. void loop() { }
Vraag 8.6: de ene gezondheid is de andere niet…
Gegeven de volgende Javascript code:
var gezondheid = 100; function eetEensWat( gezondheid, voedselWaarde ) { console.log( "gezondheid = ", gezondheid ) gezondheid = gezondheid + voedselWaarde return gezondheid } console.log("returnwaarde = ", eetEensWat(50, 10) ) console.log("gezondheid = ", gezondheid )
Voorspel voordat je dit hebt uitgevoerd in je browser, wat de uitvoer naar de Firebug console zal zijn.
[ Mail je voorspelling… ]Probeer de code nu echt uit in Firefox. Klopte je voorspelling?
Vraag 8.7 en 8.8: Gezondheid op de Arduino
Gegeven de volgende Arduinocode:
int gezondheid = 100; int eetEensWat( int gezondheid, int voedselWaarde ) { Serial.print( "gezondheid = "); Serial.println( gezondheid ); gezondheid = gezondheid + voedselWaarde; return gezondheid; } void setup() { Serial.begin(9600); Serial.print("returnwaarde = "); Serial.println( eetEensWat(50, 10) ); Serial.print("gezondheid = "); Serial.println( gezondheid ); } void loop() { // deze laat ik leeg... }
Check of dit Arduino programma op dezelfde manier omgaat met de gezondheid.
Je ziet dat de Ardiuno code nogal wat “int” heeft staan op plaatsen waar De Javascript versie “var”, of “function”, of niks heeft staan.
De “int” op de eerste regel zorgt ervoor dat variabele “gezondheid
” geschikt is om (alleen maar) gehele getallen te bevatten. De compiler ( = “Verify”-knop in Arduino software) controleert ook of de programmeur er niet per ongeluk een ander soort informatie in stopt (zoals tekst).
Wat denk je dat de “int” voor de functie-definitie van “eetEensWat” (op regel 3) zou kunnen betekenen? Wat voor controles verwacht je dat de Arduino-compiler hierdoor zal uitvoeren?