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