Proeftentamen Programmeren in JavaScript - Mediatechnologie

Onderstaande opgaven geven een indruk van het tentamen. Op het tentamen worden er niet zoveel tegelijk gevraagd!
  1. Wat is het verschil tussen Java en JavaScript?
  2. Stel dat je twee gehele getallen (x en y) wilt optellen. Leg uit waarom het verstandig is in bepaalde situatie de functie parseInt hierbij te gebruiken. Geef een voorbeeld.
  3. Leg uit hoe je een plaatje op een bepaalde plek kan zetten. Waarom bestond deze mogelijkheid niet in eerdere browsers?
  4. Stel je hebt een aantal frames, waaronder zoon en dochter. Stel dat je zegt parent.dochter.parent.zoon.location = "anders.html";. Wat gebeurt er, en in welk frame mag deze regel staan?
  5. Leg uit waarom vaak een timer gecleard wordt (met clearTimeout (naamtimer), waarbij naamtimer het nummer van de betreffende timer is) voordat de bij de timer behorende functie (typisch iets als update ( )) weer gedaan wordt. Geef een klein voorbeeld.
  6. Leg uit hoe de meeste JavaScript-programma's gebruik maken van twee soorten commentaar om problemen met oudere browsers, die geen JavaScript ondersteunen, te voorkomen.
  7. Leg uit wat de drie alert's in het volgende korte JavaScript programma opleveren. Leg tevens uit hoe de variabelen worden doorgegeven in de drie gevallen.
       var getal = 100;
       function maaknul1 ( ) { getal = 0; }
       function maaknul2 (getal) { getal = 0; }
       function maaknul3 (variabele) { variabele = 0; }
       function maaknul4 (variabele) { getal = 0; }
       getal = 42; maaknul1 ( ); alert (getal);
       getal = 42; maaknul2 (getal); alert (getal);
       getal = 42; maaknul3 (getal); alert (getal);
       getal = 42; maaknul4 (getal); alert (getal);
  8. Welke van de volgende JavaScript-functies verwisselen de waardes van de globale variabelen a en b en welke niet, en waarom? Leg tevens uit hoe de variabelen worden doorgegeven in de verschillende gevallen.
       function wissel1 ( ) { var temp = a; a = b; b = temp; }
       function wissel2 ( ) { a = b; b = a; }
       function wissel3 (a,b) { var temp = a; a = b; b = temp; }
       function wissel4 (a,b) { a = b; b = a; }
  9. Schrijf een JavaScript-functie die met behulp van een for-loop de getallen 1 tot en met n (n is een aan de functie mee te geven parameter) afdrukt in het document, samen met hun kwadraten. Per regel moeten 5 getallen en hun kwadraat worden afgedrukt, daarna moet een <br> worden uitgevoerd.
  10. Schrijf een JavaScript-functie die aan de gebruiker een rij getallen vraagt (ieder getal wordt via een prompt-box ingevoerd), af te sluiten met een negatief getal. Vervolgens worden in een alert-box afgebrukt: het aantal ingevoerde getallen (exclusief het negatieve getal) en hun gemiddelde.
  11. Schrijf een JavaScript-functie menu ( ) die het volgende doet. Aan de gebruiker wordt een menu met drie keuzes gepresenteerd, S, A en B. Bij S stopt de functie, bij A komt een alert-box met het nummer van de huidige maand (een 1 voor januari), en bij B een alert-box met de tekst Bbb. Bij de keuzes A en B wordt daarna weer het menu gepresenteerd.
  12. Schrijf een JavaScript-functie eenna (A,n) die het op een na grootste getal van de eerste n (minstens 2) getallen uit het array A opzoekt en retourneert.
  13. Schrijf een JavaScript-functie linzoek (A,n,X) die het de array-index van het getal X in het array A (met n getallen) opzoekt en retourneert. Neem aan dat X voorkomt.
  14. Schrijf een JavaScript-functie bubblesort (A) die het array A met behulp van bubblesort oplopend sorteert.
  15. Schrijf een JavaScript-functie sorteer (A,n) die een array A met n verschillende getallen oplopend sorteert, waarbij gebruik gemaakt wordt van het (toevallige) feit dat A gesorteerd was en er precies twee (willekeurige, niet naast elkaar zich bevindende) getallen verwisseld zijn. Hint: je hoeft maar één keer door het array heen te lopen.
  16. Schrijf een JavaScript-functie maak (A,m,n) die een m bij n array A aanmaakt (met new etcetera). In A[i][j] moet de grootste van de getallen i en j worden opgeborgen, dus bijvoorbeeld A[2][5] moet 5 worden.
  17. Schrijf een JavaScript-functie som (A,m,n) die de som van de getallen uit het m bij n array A uitrekent en retourneert.
  18. Schrijf een JavaScript-functie rijgem (A,i,m,n) die het gemiddelde van de getallen uit de i-de rij van het m bij n array A uitrekent en retourneert.
  19. Schrijf een JavaScript-functie roteer ( ) die drie even grote plaatjes (a.jpg, b.jpg en c.jpg) afwisselend laat zien, elk 5 seconden.
  20. Schrijf een JavaScript-functie willekeur (n) die een willekeurig (random) geheel getal tussen 1 en n, grenzen inbegrepen, oplevert. Gebruik Math.floor (rond naar beneden af) en Math.random (geeft random getal groter dan of gelijk aan 0, en kleiner dan 1). Leg uit waarom het alleen werkt met naar beneden afronden, en niet met naar boven afronden.
  21. lastig
    Stel dat in het m bij m array A een afstandentabel is opgeslagen, dus A[i][j] stelt de afstand tussen plaats i en plaats j voor. Schrijf een JavaScript-functie die controleert of het altijd zo is dat de afstand tussen twee plaatsen (zeg p en r) hoogstens gelijk is aan een "omweg": van p naar een of andere q, en dan naar r.


Op vrijdag 2 november 2001, van 9.30 tot 12.30 uur, is het schriftelijk tentamen. Het eindcijfer wordt bepaald door dit schriftelijk examen, afgerond in de richting van het resultaat van het programmeerwerk. Zowel schriftelijk tentamen als programmeerwerk moeten uiteindelijk voldoende beoordeeld zijn. Het hertentamen is op vrijdag 11 januari 2002, van 9.30 tot 12.30 uur.
Het tentamen is een "gesloten-boek"-tentamen: alleen een pen meenemen dus.


Vragen en/of opmerkingen kunnen worden gestuurd naar: kosters@liacs.nl.

22 oktober 2001 - http://www.liacs.nl/home/kosters/js/proef.html