La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

INFO/CSE 100, Spring Fluency in Information Technology

Presentazioni simili


Presentazione sul tema: "INFO/CSE 100, Spring Fluency in Information Technology"— Transcript della presentazione:

1 INFO/CSE 100, Spring Fluency in Information Technology
Funzioni INFO/CSE 100, Spring Fluency in Information Technology 11/30/2018 fit functions

2 Letture e approfindimenti
Altri riferimenti 11/30/2018 fit functions

3 Funzioni Una funzione è un modo di assemblare un insieme di istruzioni e dar loro un nome, cosi’ da riusarlo facilmente Le funzioni hanno uno schema specifico <nome>  il nome di una funzione è un identificatore <lista parametri>  lista di variabili di ingresso <istruzioni>  le istruzioni eseguono il lavoro function <nome> ( <lista parametri> ) { <istruzioni> } 11/30/2018 fit functions

4 Esempio di funzione template example
function <nome> ( <lista parametriu> ) { <statements> } template Scrivete una semplice funzione per il caclolo dell’Indice di Massa Corporea (IMC= Body Mass Index) con i dati nel Sistema Internazionale (Metri, Kg, Secondi) // Calcola l’indice di massa corporea // peso in kilogrammi // altezza in centimetri // restituisce il valore dell’IMC function imcE(pesoKg, altezzaCM) { var altezzaM= altezzaCM / 100; // converti in m return pesoKg / (altezzaM * altezzaM); } example 11/30/2018 fit functions

5 Sviluppiamo la funzione
Per prima cosa, assicuriamoci che la nostra funzione faccia quello che abbiamo in mente. // Calocla il valore dell’IMC // peso in Kg // altezza in Metri // restituisci il valore di IMC function nome(lista parametri) { istruzioni } 11/30/2018 fit functions

6 Scegliamo un nome per la funzione
I nomi delle funzioni si chiamano identificatori Iniziano con una lettera Devono avere un significato chiaro e naturale Non devono essere parole riservate in Javascript // Calcola il valore di IMC //peso in Kg // altezza in Centimetri // restituisci il valore di IMC function IMC(lista parametri) { istruzioni } 11/30/2018 fit functions

7 Scegliamo i parametri Anche i parametri sono identificatori
Sono I nomi delle variabili che le funzioni usano nel corso dei calcoli Devono avere un significato abbastanza ovvio // Calcola il valore di IMC // peso in Kg // altezza in Centimetri // restituisci il valore di IMC function imc(pesoKg, altezzaCM) { istruzioni; } 11/30/2018 fit functions

8 Funzioni senza parametri!
Non è necessario che una funzione abbia dei parametri Ma dobbiamo comunque includere le parentesi // stampa i saluti // Un saluto tipico è “ciao a tutti" function saluti() { document.write("ciao a tutti!"); } 11/30/2018 fit functions

9 Scriviamo il corpo della funzione
Nel corpo della funzione è codificato tuto quanto serve ad eseguirla. // Calcola il valore di IMC // peso in Kg // altezza in centimetri // restiuisci il valore di IMC function imc(pesoKg, altezzaCM) { var altezzaM = altezzaCM / 100; // converti in m return pesoKG / (altezzaCM *altezzaCM); } Statements must have semicolons! Return statement returns a value. 11/30/2018 fit functions

10 Un semplice schema di test
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <title>Indice di Massa Corporea</title> <script type="text/javascript"> // Calcola l’Indice di massa corporea nel Sistema Internazionale function imc( pesoKG, altezzaCM ) { var altezzaM = altezzaCM / 100; // Converti in metri return pesoKG / (altezzaCM * altezzaCM); } </script> </head> <body> <p>Questa pagina fornisce un semplice calcolatore per IMC. Un peso normale corrisponde a un IMC di </p> document.writeln("<br>imc(70,150): "+imc(70,150)); document.writeln("<br>imc(150,72): "+imc(150,)); document.writeln("<br>imc(175,72): "+imc(175,72)); document.writeln("<br>imc(200,72): "+imc(200,72)); </body> </html> La nuova funzione Istruzioni Di test 11/30/2018 fit functions

11 Proviamo la funzione e vediamo come lavora
11/30/2018 fit functions

12 Alcune caratteristiche interessanti
<head> <title>Indice di Massa Corporea</title> <script type="text/javascript"> // Calcola l’Indice di Massa Corporea in unita S.I. // peso in Kg // altezza in Centimetri // restituisce il valore di IMC function bmiE(pesoKG, altezzaCM) { var altezzaM = altezzaCM / 100; // converti in metri return pesoKG / (altezzaM * altezzaM); } </script> </head> <script> in <head> locazione, commenti, keyword,parametri formali, parentesi graffe, parenthesi, operatori, espressioni, istruzione di assegnazione, istruzione return, punto e virgola 11/30/2018 fit functions

13 Funzioni <body> <Questa pagina fornisce un semplice calcolatore per IMC </p> <script type="text/javascript"> document.writeln("<br>imc(100,72): "+imc(100,72)+"); document.writeln("<br>imc(150,72): "+imc(150,72)+"); document.writeln("<br>imc(175,72): "+imc(175,72)+"); document.writeln("<br>imc(200,72): "+imc(200,72)+"); </script> </body> <script> in <body> locazione, documento, chiamet funzioni writeln , stringhe, stringhe concatenate chiamate di funzioni imc , argomenti (aka parametri attuali) 11/30/2018 fit functions

14 Globale o Locale?!? Lo scope di una variabile descrive quando e dove deve essere referenziata Le variabili locali sono conosciute solo dentro la funzione (parentesi graffe) Le variabili globali sono conosciute in tutto lo script Javascript, all’interno di <script> </script> // Calcola la percentuale di ore di studio settimanali // tempo di studio in ore // restituisce la percentuale var giorni = 7; function calcolaOreStudio(tempo) { var totaleOre = 24 * giorni; return tempo/totaleOre; } days = global variable time, totalHrs are local variables 11/30/2018 fit functions

15 Debugging Può essere difficile Ogni browser è fatto a modo suo
se il browser è vecchio aggiornatelo! 11/30/2018 fit functions

16 Usate il programma TryIt Editor
11/30/2018 fit functions

17 Visualizziamo le variabili con alert(...)
Usiamo la funzione alert(“messaggio") 11/30/2018 fit functions

18 Usiamo un editor che ci aiuta
L’editor TextPad ha delle funzioni di evidenziazione 11/30/2018 fit functions

19 Visualizziamo il risultato con writeln(...)
<body> <script type="text/javascript"> document.writeln(“qualcheVariabile: "+qualcheVariabile); </script> </body> 11/30/2018 fit functions

20 Usiamo un browser che ci aiuta
Tutti I browser tollerano gli errori Usiamo un browser che aiuta nel debug ome Mozilla 11/30/2018 fit functions

21 Abilitiamo la Mozilla JavaScript Console
11/30/2018 fit functions

22 The Mozilla JavaScript console helps you by showing good error messages.

23 Interfacce grafiche (GUIs)
Possiamo usare JavaScript per creare interfacce grafiche. 11/30/2018 fit functions

24 GUI I campi testo richiedono dati
Una interfaccia grafica è un modo intuitivo di dare comandi, invece che memorizzare tabelle I campi testo richiedono dati I campi testo con etichette visualizzano dati Ipulsanti eseguono azioni radio buttons e caselle di controllo definiscono condizioni 11/30/2018 fit functions

25 Un semplice esempio Questa GUI ha diversi semplici controlli.
Due pulsanti controllano il risultato Un campo di testo visualizza il risultato Una coppia di pulsanti di scelta controlla il display Pulsante per re-inizializzare 11/30/2018 fit functions

26 Un semplice esempio <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <title>Un semplice esempio di GUI</title> <script type="text/javascript"> codice funzione Javascript </script> </head> <body> HTML form </body> </html> Put the Javascript functions in the HTML <head> The HTML Form Element goes in the HTML <body> 11/30/2018 fit functions

27 Struttura della GUI La struttura del modulo è controllata con il codice HTML nel corpo della pagina Lo schema e I controlli sono forniti da nuovi tag <form id="buttonForm"> <button type="button" ... <input type="text" … <input type="radio" … <button type="reset" … <body> HTML form </body> </html> 11/30/2018 fit functions

28 <form> I moduli HTML forniscono all’utente un modo per inserire I dati in una pagina Web Un modulo può contenere diversi tipi di controlli ed elementi di visualizzazione I dati in un modulo possono essere trasferiti a un server Web o elaborati localmente Un modulo è definito come <form id="dmvForm"> ... </form> tag Un modulo ha vari attributi quali id, a cui ci si può riferire nel codice Un modulo contiene vari elementi come <input> e <button> 11/30/2018 fit functions

29 <button type="button" ...>
<form> <button type="button" onclick=“poniRisultato(‘buon risultato')">Buoni risultati</button> onclick=“poniRisultato(‘cattivo risultato')">Cattivo risultato </button> </form> Un tag <button> può essere di tre tipi tipo “button” usato localmente Tipo “ submit” invia dati al server Tipo “cancella” re-inizializza il modulo Il valore dell’attributo “onclick” è un codice Javascript, in questo caso una chiamata a una funzione poniRisultato(stringa) 11/30/2018 fit functions

30 <input type="text" ...>
<form> <b>Risultato:</b> <input type="text" value="nullo" readonly id=“campoRisultato"> <br> <input type="radio" name="carattere" id="radioMin" checked onclick=“poniRisultato(document.getElementById(‘campoRisultato').value)">Minuscolo <input type="radio" name="carattere" id="radioMaiusc" onclick=“poniRisultato(document.getElementById(‘campoRisultato').value)">Maiuscolo <br><button type="reset">Cancella</button> </form> Un campo <input> con type="text" è usato per inserire dati utenti e dati programmi value="nullo" definisce i valori iniziali readonly significa che solo il programma può definire il valore id=“campoRisultato" dà un modo per identificare questo particolare controllo in Javascript 11/30/2018 fit functions

31 <input type="radio" ...>
<form> <b>Result:</b> <input type="text" value="nullo" readonly id="rcampoRisultato"> <br> <input type="radio" name=“carattere" id="radioMinusc" checked onclick=“poniRisultato(document.getElementById(‘campoRisultato').value)">Minuscolo <input type="radio" name="carattere" id="radioMaiusc" onclick=“poniRisultato(document.getElementById(‘campoRisultato').value)">Maiuscolo <br><button type="reset">Cancella</button> </form> Un tag <input> con type="radio" permette all’utente di selezionare diverse scelte name="case" identifica tutti I pulsanti dello stesso gruppo (ne sarà selezionato solo uno) L’attributo onclick fornisce a Javascript il codice da eseguire quando si clicca il pulsante id="radioLC" ci dà un modo per identificare un controllo particolare in Javascript 11/30/2018 fit functions

32 <button type="reset" ...>
<form> <b>Risultato:</b> <input type="text" value="nullo" readonly id=“campoRisultato"> <br> <input type="radio" name=“carattere" id="radioMinusc" checked onclick=“poniRisultato(document.getElementById(‘campoRisultato').value)">Minuscolo <input type="radio" name="carattare" id="radioMaiusc" onclick=“poniRisultati(document.getElementById(‘campoRisultato').value)">Maiuscolo <br><button type="reset">Cancella</button> </form> Un tag <button> con type="reset" riporta tutti I controlli del modulo al loro valore originale 11/30/2018 fit functions

33 Un evento determina un processo
Dopo avere visualizzato una agina, il browser Web attende … quando facciamo qualcosa, succede un evento Elaborare eventi è compito di un blocco di condice chiamato gestore di eventi event handler Il codice è identificato da particolari attributi Ci sono diversi eventi onClick, onChange, onMouseOver ... 11/30/2018 fit functions

34 Richiesta di elaborazione di un evento
<form> <button type="button" onclick="sponiRisultato(‘buon risultato')">Buon risultato</button> onclick=“poniRisultato(‘cattivo risultato')">Cattivo risultato </button> </form> L’attributo onclick definisce una chiamata Javascript quando il pulsante è premuto In questo caso è la funzione poniRisultato(stringa) definita nella tag <head> Il valore della stringa è passato alla funzione poniRisultato(stringa) che viene eseguita 11/30/2018 fit functions

35 Elaborare un clic <script type="text/javascript"> function ponirRisultato(stringaRisultato) { var tempStringa = stringaRisultato; if (document.getElementById("radioMinusc").checked) { tempStringa = tempStringa.toLowerCase(); } else if (document.getElementById("radioMaiusc").checked) { tempStringa = tempStringa.toUpperCase(); } document.getElementById(“campoRisultato").value = tempStringa; </script> La funzione poniRisultato(stringa) + chiamata da diversi gestori di eventi In ogni caso, prende una stringa in ingresso, decide se si vuole in maiusco o in minuscolo e setta campRisultato in modo opporuno 11/30/2018 fit functions

36 poniRisultato(stringaRisultato)
<script type="text/javascript"> function setResults(resultString) { var tempStringa = stringaRisultato; if (document.getElementById("radioMinusc").checked) { tempStringa = tempStringa.toLowerCase(); } else if (document.getElementById("radioMaiusc").checked) { tempStringa = tempStringa.toUpperCase(); } document.getElementById(“campoRisultato").value = tempStringa; </script> parametri, variabile locale, blocco if/else , referenza di campo, chiamata alla funzione toLowerCase() 11/30/2018 fit functions


Scaricare ppt "INFO/CSE 100, Spring Fluency in Information Technology"

Presentazioni simili


Annunci Google