JavaScript
Lezione 6
Strutture di controllo
Il condizionale
Le 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 …).
Le 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.
Perché 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.
La 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.
La 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.
<script>
x=prompt("Introduci il primo numero x","")
y=prompt("Introduci il secondo numero y","")
z=x*y;
output = x + " * " + y + " = " + z;
alert(output);
</script>
Struttura 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 condizione
allora esegui queste istruzioni
[altrimenti esegui queste altre istruzioni]
• La struttura condizionale dà due possibilità: senza o con
altrimenti.
Struttura condizionale senza altrimenti
• se è vera questa condizione
esegui queste istruzioni
e poi prosegui con le istruzioni successive
• Lo schema a blocchi è quello della figura
Struttura condizionale con altrimenti
• se è vera questa condizione
esegui queste istruzioni
altrimenti (cioè: se la condizione è falsa) esegui queste
altre istruzioni
e poi prosegui con le istruzioni successive
• Lo schema a blocchi è quello della figura
Struttura 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
Esempio
L’esempio scrive il maggiore di due numeri oppure che i
due numeri sono uguali
<SCRIPT>
x=prompt("Introduci il primo numero x","");
y=prompt("Introduci il secondo numero y","");
x=x*1; // li trasforma in numeri
y=y*1;
if (x>y) alert("il primo numero è il maggiore");
if (x<y) alert("il secondo numero è il maggiore");
if (x == y) alert("i due numeri sono uguali");
</SCRIPT>
Esercitazioni
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