Title: JavaScript
1JavaScript
- Lezione 6
- Strutture di controlloIl condizionale
2Le strutture di controllo
- Quando risolviamo un problema mediante un
algoritmo, dobbiamo combinare le varie istruzioni
utilizzando delle particolari strutture. - Ad esempio, l'algoritmo per determinare i
divisori di numero intero n "Divido
ripetutamente il numero n per tutti i numeri x
che assumono i valori da 1 fino al numero n
stesso. Se il resto di tali divisioni è 0 allora
faccio scrivere x ." - Si osserva quindi che questo algoritmo ripete
delle istruzioni (dividi n per 1, 2, 3, , n )
ed esegue delle istruzioni se è vera una certa
condizione (se il resto della divisione è 0
allora ).
3Le tre strutture di controllo della programmazione
- Per scrivere programmi che risolvono problemi
significativi occorre organizzare le istruzioni
in tre strutture - la sequenza le istruzioni vengono eseguite tutte
nella sequenza in cui sono state scritte, dalla
prima all'ultima. - il condizionale (decision making) permette di
eseguire o meno delle istruzioni a seconda che
sia soddisfatta o meno una certa condizione
(booleana - il ciclo (loop) permette di eseguire una
porzione di codice più volte, fino a che una
condizione risulta soddisfatta. Ogni passaggio
attraverso il ciclo è detto iterazione.
4Perché solo tre strutture?
- E' stato dimostrato il seguente teorema
fondamentale"Ogni algoritmo può essere
espresso con le sole tre strutture di controllo
fondamentali sequenza di istruzioni, selezione e
iterazione" (teorema di Jacopini - Bohm, 1966) - Sulla base di questo teorema, ogni programma che
codifica un algoritmo (anche il più complesso), è
formato da istruzioni aggregate secondo le tre
strutture di controllo di base.
5La sequenza di istruzioni
- La sequenza di istruzioni è una struttura nella
quale le istruzioni vengono eseguite tutte una
sola volta nell'ordine in cui sono state scritte.
- La figura mostra graficamente (diagramma di
flusso) la situazione. - Avendo a disposizione solo questa struttura non
è possibile scrivere programmi che risolvano
problemi significativi. - Infatti gli algoritmi, anche quelli più semplici,
richiedono quasi sempre anche di scegliere quali
istruzioni eseguire e/o di eseguirle più volte.
6La sequenza di istruzioni
- Tutti gli script considerati fino ad ora
contengono solo la sequenza di istruzioni. - Esempio lo script chiede due numeri, li
moltiplica e scrive il risultato. Tutte le 5
istruzioni vengono eseguite in successione. - ltscriptgt
- xprompt("Introduci il primo numero x","")
- yprompt("Introduci il secondo numero y","")
- zxy
- output x " " y " " z
- alert(output)
- lt/scriptgt
7Struttura condizionale
- La struttura condizionale permette al programma
di scegliere se eseguire una istruzione (o un
blocco di istruzioni) oppure un'altra istruzione
(oppure un altro blocco di istruzioni). - La struttura condizionale quindi traduce la
situazione Se è vera una certa
condizioneallora esegui queste
istruzionialtrimenti esegui queste altre
istruzioni - La struttura condizionale dà due possibilità
senza o con altrimenti.
8Struttura condizionale senza altrimenti
- se è vera questa condizioneesegui queste
istruzionie poi prosegui con le istruzioni
successive - Lo schema a blocchi è quello della figura
9Struttura condizionale con altrimenti
- se è vera questa condizioneesegui queste
istruzionialtrimenti (cioè se la condizione è
falsa) esegui queste altre istruzionie poi
prosegui con le istruzioni successive - Lo schema a blocchi è quello della figura
10Struttura condizionale in JavaScript
- La sintassi del costrutto condizionale in
JavaScript è la seguente - if (condizione)
- esegui le istruzioni contenute in questo
blocco -
- else
-
- esegui le istruzioni contenute in questo
blocco -
- Note
- condizione è un'istruzione che ha un valore
booleano e deve essere messa tra parentesi tonde - L'istruzione else può anche non esserci.
- Le parentesi graffe vengono usate se le
istruzioni da eseguire sono più di una se il
programma deve eseguire una sola istruzione, le
parentesi graffe possono essere omesse
11Esempio
- Lesempio scrive il maggiore di due numeri oppure
che i due numeri sono uguali - ltSCRIPTgt
- xprompt("Introduci il primo numero x","")
- yprompt("Introduci il secondo numero y","")
- xx1 // li trasforma in numeri
- yy1
- if (xgty) alert("il primo numero è il maggiore")
- if (xlty) alert("il secondo numero è il
maggiore") - if (x y) alert("i due numeri sono uguali")
- lt/SCRIPTgt
12Esercitazioni
Il link apre un documento di word nel quale sono
presenti alcuni script con la struttura di
selezione Gli script vanno provati e compresi,
aiutandosi con le spiegazioni e con i commenti
messi tra le istruzioni Esercitazioni conversioni
di tipo