qui
Transcript
qui
Le funzioni in JavaScript Funzioni Funzioni, definizione informale Vediamo l’esempio della definizione della funzione succ in JavaScript: function succ(x) { return x+1; } Confrontiamola con la definizione che daremmo in matematica, ovvero: succ(x) = x + 1 I I I I E. Occhiuto abbiamo di diverso, 2 parole chiave (key word) function e return e 2 parentesi, manca l’uguale, tutto serve per semplificare la sintassi del linguaggio. In particolare: function individua le definizione della funzione return x+1; è un’istruzione che serve per specificare il valore calcolato dalla funzione. In particolare return è una parola chiave e ciò che segue è l’espressione il cui valore è il risultato della funzione. Le parentesi racchiudono ciò che nella definizione matematica sta tra l’uguale e la fine della funzione – Fondamenti Teorici e Programmazione- 437AA – pag. 1 Le funzioni in JavaScript Funzioni Argomenti I In entrambe le definizioni, nell’espressione compaiono gli argomenti della funzione, (nell’esempio x) I in informatica gli argomenti vengono chiamati parametri formali. I In matematica l’argomento indica un elemento del dominio, in generale dominio e codominio vengono indicati esplicitamente. I Nei linguaggi di programmazione con controlllo forte dei tipi (Java, C,C++, e altri) dominio e codominio della funzione vengono indicati esplicitamente. In questo caso in fase di compilazione del programma, i tipi vengono controllati e se è il caso vengono generati errori. I In JavaScript invece i tipi non vengono indicati esplicitamente e gli eventuali errori che vengono generati, in esecuzione, sono molto spesso difficili da comprendere. Esercizio Definire dominio e codominio di succ E. Occhiuto – Fondamenti Teorici e Programmazione- 437AA – pag. 2 Le funzioni in JavaScript Funzioni Invocazione della funzione succ I La funzione può essere usata ad esempio per calcolare il successore di 0, nel modo seguente. writeln(succ(0)); 0 viene sostituito ad x nell’espressione che compare nella definizione della funzione e il valore calcolato è 1. I oppure si può calcolare il successore di un numero letto dall’input, nel seguente modo: writeln(succ(readnum())); In questo caso il numero letto dall’input viene sostituito ad x nell’espressione che compare nella definizione della funzione e utilizzato per calcolare il risultato. E. Occhiuto – Fondamenti Teorici e Programmazione- 437AA – pag. 3 Le funzioni in JavaScript Funzioni Un programma JavaScript I Cosa è un programma JavaScript? I Il programma deve includere la definizione di tutte le funzioni invocate. I Le librerie sono incluse di default I Le funzioni definte dall’utente devono essere incluse. I pertanto programmi corretti sono: function succ(x) { return x+1; } writeln(succ(readnum())); function succ(x) { return x+1; } writeln(succ(0)); E. Occhiuto – Fondamenti Teorici e Programmazione- 437AA – pag. 4 Le funzioni in JavaScript Funzioni Invocazioni multiple Ma anche il seguente. function succ(x) { return x+1; } writeln(succ(0)); writeln(succ(readnum())); I Questo programma stampa prima 1 (successore di 0) e poi il successore del numero letto in input. I Notare che in questo caso la definizione della funzione compare e deve comparire UNA sola volta, anche se la funzione è invocata più volte. I I testi degli esercizi hanno di solito una prima parte in cui viene chiesto di definire una funzione e una seconda parte in cui viene chiesto di scrivere il resto del programma o frammento di codice con l‘invocazione della funzione definita precedentemente. E. Occhiuto – Fondamenti Teorici e Programmazione- 437AA – pag. 5 Le funzioni in JavaScript Funzioni Definizione di Funzione Consideriamo un altro esempio: la funzione multiplo che calcola true se il primo parametro è un multiplo del secondo, false altrimenti: function multiplo(m,n) { return (m%n)==0; } I I parametri formali sono m ed n Esercizio Definire dominio e codominio della funzione multiplo E. Occhiuto – Fondamenti Teorici e Programmazione- 437AA – pag. 6 Le funzioni in JavaScript Funzioni Invocazione di Funzione I Al momento della chiamata, alla funzione vengono forniti i valori degli argomenti, o parametri attuali, rispetto ai quali effettuare il calcolo writeln(multiplo(34,17)); I Prima chiamata multiplo(34,17) I I I I 34 è sostituito a m nell’espressione che definisce la funzione 17 è sostituito a n nell’espressione che definisce la funzione viene calcolato il valore dell’espressione e restituito il risultato Seconda chiamata multiplo(readnum(),readnum()) I I I E. Occhiuto il primo numero letto dall’nput è sostituito a m il primo numero letto dall’nput è sostituito a n come prima, viene calcolato il valore dell’espressione e restituito il risultato – Fondamenti Teorici e Programmazione- 437AA – pag. 7