Uitwerkingen van het proeftentamen
http://www.liacs.nl/home/kosters/js/proef.html
de maaknul-som:
alleen maaknul1 en maaknul4 maken de globale variabele getal 0
de wissel-som
alleen wissle1 wisselt echt de waardes van de globale variabelen a en b om
function kwadraten (n) {
var i; // tellertje
for ( i = 1; i <= n; i++ ) {
window.document.write(i + " : " + i * i + " ; ");
if ( i % 5 == 0 )
window.document.write("
\n");
} // for
} // kwadraten
function vraag ( ) {
var getal = 1; // ingelezen getal
var aantal = 0; // aantal ingevoerde getallen
var som = 0; // en hun som
while ( getal >= 0 ) {
getal = prompt ("Uw getal ...", "");
getal = parseInt (getal);
if ( ! NaN (getal) && getal >= 0 ) {
som += getal;
aantal++;
} // if
} // while
if ( aantal > 0 )
window.document.write(aantal + " getallen, met gemiddelde "
+ som / aantal);
} // vraag
function menu ( ) {
var keuze = "X"; // keuze van gebruiker
var detijd; // voor de datum etcetera
var maandnummer; // nummer van de huidige maand
while ( keuze != 'S' ) {
keuze = prompt ("[S]toppen [A]lert-box [B]bb", "");
if ( keuze == "A" ) {
detijd = new Date ( );
maandnummer = detijd.getMonth ( );
maandnummer++; // anders is januari 0
alert ("Maand " + maandnummer);
} // if
else if ( keuze == "B" )
alert ("Bbb");
} // while
} // menu
function eenna (A,n) {
var eenna; // array-index van op een na grootste getal uit A
var gr; // idem, grootste
var i; // tellertje
if ( A[0] > A[1] ) {
gr = 0;
eenna = 1;
} // if
else {
gr = 1;
eenna = 0;
} //else
for ( i = 2; i < n; i++ ) {
if ( A[i] > A[gr] ) {
eenna = gr;
gr = i;
} // if
else if ( A[i] > A[eenna] )
eenna = i;
} // for
return A[eenna];
} // eenna
function linzoek (A,n,X) {
var i = 0; // om langs array te lopen: i is de array-index
var positie = -1; // waar staat X?
var gevonden = false; // hebben we succes?
while ( i < n && ! gevonden ) {
if ( A[i] == X ) {
gevonden = true;
positie = i;
} // if
else
i++;
} // while
return positie;
} // linzoek
OF korter, gebruik makend van de wetenschap dat X zeker voorkomt:
function linzoek (A,n,X) {
var i = 0; // om langs array te lopen: i is de array-index
while ( i < n ) {
if ( A[i] == X )
return i;
else
i++;
} // while
} // linzoek
function bubblesort (A) {
var i; // turft de rondes
var j; // om langs array te lopen
var temp; // hulpvariabele voor verwisselen
for ( i = 1; i < A.length; i++ )
for ( j = 0; j < A.length - i; j++ )
if ( A[j] > A[j+1] ) {
temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
} // if
} // bubblesort
function sorteer (A,n) {
// voorbeeld: 0 1 2 3 4 5 6 7 8
// 1 2 7 4 5 6 3 8 9 ( 3 en 7 verwisseld)
// i wordt nu 2, en j wordt 5; wissel getallen op plekken 2 en 6
var i = 0; // zoek eerste plek
var j; // zoek tweede plek
var temp; // voor verwisselen
while ( A[i] < A[i+1] )
i++;
j = i+1;
while ( A[j] < A[j+1] )
j++;
temp = A[i];
A[i] = A[j+1];
A[j+1] = temp;
} // sorteer
function maak (A,m,n) {
var i; // voor rijen
var j; // voor kolommen
A = new Array (m);
for ( i = 0; i < m; i++ ) {
A[i] = new Array (n);
for ( j = 0; j < n; j++ )
if ( i > j )
A[i][j] = i;
else
A[i][j] = j;
} // for
} // maak
function som (A,m,n) {
var i; // voor rijen
var j; // voor kolommen
var totaalsom = 0; // voor de som
for ( i = 0; i < m; i++ )
for ( j = 0; j < n; j++ )
totaalsom += A[i][j];
return totaalsom;
} // som
function rijgem (A,i,m,n) {
var j; // voor kolommen
var rijsom = 0; // voor de som
for ( j = 0; j < n; j++ )
rijsom += A[i][j];
return rijsom / n;
} // rijgem
var index = 0; // welk plaatje?
var detimer; // hoe heet de wekker?
function roteer ( ) {
if ( index == 0 )
window.document.hetplaatje.src = "a.jpg";
else if ( index == 1 )
window.document.hetplaatje.src = "b.jpg";
else
window.document.hetplaatje.src = "c.jpg";
index++;
if ( index >= 3 )
index = 0;
detimer = setTimeout ("roteer ( );", 5000);
} // roteer
roteer ( );
in HTML:
function willekeur (n) {
return ( 1 + Math.floor ( Math.random ( ) * n ) );
// 0 <= Math.random ( ) * n < n, dus afronden naar beneden
// geeft geheel getal met 0 <= getal <= n-1
} // willekeur
function controle (A,m,n) {
var i; // voor rijen
var j; // voor kolommen
var q; // tussenstation
for ( i = 0; i < m; i++ )
for ( j =i+1; j < m; j++ )
for ( q = 0; q < m; p++ )
if ( q != i && q != j && A[i][q] + A[q][j] < A[i][j] )
return false;
return true;
} // controle