2^C
Esercitazione di Laboratorio n. 5
29/11/07
Funzioni in JavaScript
1) Funzioni da “capire“
Interpretare il codice delle seguenti funzioni e il risultato delle loro chiamate.
Implementarle e verificare i risultati calcolati.
i)
function cosafa1(x,y) {
if (x % 2 == 0) return x+y;
if (y % 2 == 0) return x*y;
if ((x+y) % 2 == 0) return x-y;
}
z=cosafa1(10,12);
alert(z);
z=cosafa1(9,12);
alert(z);
z=cosafa1(9,7);
alert(z);
ii)
function cosafa2(x,y) {
c=0;
for (i=x;i<=y;i++) c+=i;
return c;
}
z=cosafa2(5,10);
alert(z);
z=cosafa2(17,5);
alert(z);
z=cosafa2(cosafa1(4,5),cosafa1(5,4));
alert(z);
2) Funzioni da implementare
i) Scrivere il codice di una funzione che riceva due numeri interi e restituisca la loro media
ii) Scrivere il codice di una funzione che riceva un numero intero e scriva nella pagina i suoi primi 10 multipli.
iii) Scrivere il codice di una funzione che riceva un numero intero e ritorni il suo più grande divisore (diverso dal
numero stesso).
iv) Scrivere il codice di una funzione che riceva un numero intero calcoli il numero dei suoi divisori.
Usare questa funzione per farsi scrivere nella pagina i divisori dei numeri interi da 1 a 100, individuando quello
che ha il numero di divisori più grande.
v) Scrivere il codice di una funzione che riceva due numeri naturali e ritorni il numero ottenuto elevando il
primo ad esponente il secondo.
3) Esercizi assegnati nei compiti degli anni scorsi
i) 2C AS 06/07 Data la funzione
function cosafa(x) {
if (x%3==0) return 1;
else return 0;
}
a) determina il valore delle della variabile c dopo il ciclo
c=0;
for (k=10;k<=100;k++) c+= cosafa(k) ;
2^C
Esercitazione di Laboratorio n. 5
b) spiega cosa fa la funzione e cosa fa un segmento di istruzioni come in a)
ii) 2C AS 06/07 Date le funzioni
function cosafa1(x) {
return x*x;
}
function cosafa2(x,y) {
if (x>y) return x-y;
else return y-x;
}
a) determina il valore delle chiamate
cosafa1(7)
b) determina il valore della chiamata
cosafa2(cosafa1(5), cosafa1(8))
e
c) determinare il valore della variabile s dopo il ciclo
s=0
for (k=1;k<=5;k++) s+= cosafa1(k) ;
cosafa2(10,15)
29/11/07