Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Strutture di controllo e cicli
Fondamenti di Informatica T (A-K)
AA 2012-2013
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
IF logico
L’IF logico rappresenta il tipo piu semplice di istruzionecondizionale
Sintassi IF ( e s p r e s s i o n e l o g i c a ) i s t r u z i o n e
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
IF logico
L’IF logico rappresenta il tipo piu semplice di istruzionecondizionale
Sintassi IF ( e s p r e s s i o n e l o g i c a ) i s t r u z i o n e
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Costrutto IF
Qualora si debba operare piu di una scelta, si utilizza ilcostrutto IF
Sintassi IF ( e s p r e s s i o n e l o g i c a ) THENi s t r u z i o n e
ELSEi s t r u z i o n e
END IF
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Costrutto IF
Qualora si debba operare piu di una scelta, si utilizza ilcostrutto IF
Sintassi IF ( e s p r e s s i o n e l o g i c a ) THENi s t r u z i o n e
ELSEi s t r u z i o n e
END IF
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Costrutto IF - Forma generale
IF ( e s p r e s s i o n e l o g i c a ) THENi s t r u z i o n e
ELSE IF ( e s p r e s s i o n e l o g i c a ) THENi s t r u z i o n e
ELSEi s t r u z i o n e
END IF
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Costrutto IF - Strutture annidate
IF ( e s p r e s s i o n e l o g i c a ) THENIF ( e s p r e s s i o n e l o g i c a ) THEN
i s t r u z i o n eELSE
i s t r u z i o n eEND IF
ELSEi s t r u z i o n e
END IF
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Esercizio
Soluzione di un’equazione di secondo grado
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Soluzione di un’equazione di secondo grado
PROGRAM equaz i oneIMPLICIT NONEREAL : : ALFA , BETA, GAMMA, DELTA, XM, XPWRITE(∗ ,∗ ) ’ i n s e r i s c i a l f a , be ta e gamma ’READ(∗ ,∗ ) ALFA , BETA, GAMMADELTA = BETA∗∗2 − 4∗ALFA∗GAMMAWRITE(∗ ,∗ ) ’DELTA = ’ ,DELTAIF (DELTA < 0 . ) THEN
WRITE(∗ ,∗ ) ’DISCRIMINANTE NEGATIVO ! ! ! ’ELSE
XP = (−BETA + SQRT(DELTA))/ (2∗ALFA)XM = (−BETA − SQRT(DELTA))/ (2∗ALFA)WRITE(∗ ,∗ ) ’X+= ’ ,XPWRITE(∗ ,∗ ) ’X−= ’ ,XM
ENDIFEND PROGRAM equaz i one
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
SELECT CASE
Il costrutto SELECT CASE e simile al costrutto IF.Risulta particolarmente utile quando una particolare serie diistruzioni va selezionata in base al risultato di un’espressione.
Sintassi SELECT CASE ( e s p r e s s i o n e )CASE ( caso1 )
i s t r u z i o n i caso1CASE ( caso2 )
i s t r u z i o n i caso2. . .
CASE DEFAULTi s t r u z i o n i caso d e f a u l t
END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
SELECT CASE
Il costrutto SELECT CASE e simile al costrutto IF.Risulta particolarmente utile quando una particolare serie diistruzioni va selezionata in base al risultato di un’espressione.
Sintassi SELECT CASE ( e s p r e s s i o n e )CASE ( caso1 )
i s t r u z i o n i caso1CASE ( caso2 )
i s t r u z i o n i caso2. . .
CASE DEFAULTi s t r u z i o n i caso d e f a u l t
END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Note su SELECT CASE
L’espressione del SELECT CASE deve essere di tipoINTEGER, LOGICAL o CHARACTER.NB: Non puo essere di tipo REAL!
Ci puo essere un numero a piacere di CASE
Ci puo essere uno e un solo CASE DEFAULT
Dopo l’esecuzione delle istruzioni del caso selezionato, ilprogramma esce dal costrutto, cioe salta all’istruzionesuccessiva ad END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Note su SELECT CASE
L’espressione del SELECT CASE deve essere di tipoINTEGER, LOGICAL o CHARACTER.NB: Non puo essere di tipo REAL!
Ci puo essere un numero a piacere di CASE
Ci puo essere uno e un solo CASE DEFAULT
Dopo l’esecuzione delle istruzioni del caso selezionato, ilprogramma esce dal costrutto, cioe salta all’istruzionesuccessiva ad END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Note su SELECT CASE
L’espressione del SELECT CASE deve essere di tipoINTEGER, LOGICAL o CHARACTER.NB: Non puo essere di tipo REAL!
Ci puo essere un numero a piacere di CASE
Ci puo essere uno e un solo CASE DEFAULT
Dopo l’esecuzione delle istruzioni del caso selezionato, ilprogramma esce dal costrutto, cioe salta all’istruzionesuccessiva ad END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Note su SELECT CASE
L’espressione del SELECT CASE deve essere di tipoINTEGER, LOGICAL o CHARACTER.NB: Non puo essere di tipo REAL!
Ci puo essere un numero a piacere di CASE
Ci puo essere uno e un solo CASE DEFAULT
Dopo l’esecuzione delle istruzioni del caso selezionato, ilprogramma esce dal costrutto, cioe salta all’istruzionesuccessiva ad END SELECT
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Esempio
Calcolo del fattoriale
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
program f a t t 1 ! c a l c o l o d e l f a t t o r i a l ei m p l i c i t nonei n t e g e r : : i , nr e a l : : f a t tw r i t e (∗ ,∗ ) ’ i n s e r i s c i i l v a l o r e pe r c a l c o l a r e i l f a t t o r i a l e ’read (∗ ,∗ ) ns e l e c t case ( n )case (0 )f a t t = 1 .p r i n t ∗ , ’ F a t t o r i a l e=’ , f a t t
case ( 1 : )f a t t = 1 . ! i n i z i a l i z z a z i o n edo i =1,n , 1
f a t t = f a t t ∗ ienddop r i n t ∗ , ’ F a t t o r i a l e=’ , f a t t
case d e f a u l tw r i t e (∗ ,∗ ) ’ i n s e r i r e n p o s i t i v o o 0 ! ’
end s e l e c tend program f a t t 1
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO
Il ciclo e un costrutto usato ogni volta che un blocco diistruzioni va ripetuto per un certo numero di volte.
Per evitare la creazione di cicli infiniti, e necessario stabilireuna condizione di uscita (termine, fine) del ciclo.
E possibile distinguere diversi tipi di ciclo a seconda delmeccanismo con cui terminano:
repeat until ripeti le istruzioni finche una particolare condizione non esoddisfatta
DO con indice ripeti le istruzioni un numero predefinito di volte
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO
Il ciclo e un costrutto usato ogni volta che un blocco diistruzioni va ripetuto per un certo numero di volte.
Per evitare la creazione di cicli infiniti, e necessario stabilireuna condizione di uscita (termine, fine) del ciclo.
E possibile distinguere diversi tipi di ciclo a seconda delmeccanismo con cui terminano:
repeat until ripeti le istruzioni finche una particolare condizione non esoddisfatta
DO con indice ripeti le istruzioni un numero predefinito di volte
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO
Il ciclo e un costrutto usato ogni volta che un blocco diistruzioni va ripetuto per un certo numero di volte.
Per evitare la creazione di cicli infiniti, e necessario stabilireuna condizione di uscita (termine, fine) del ciclo.
E possibile distinguere diversi tipi di ciclo a seconda delmeccanismo con cui terminano:
repeat until ripeti le istruzioni finche una particolare condizione non esoddisfatta
DO con indice ripeti le istruzioni un numero predefinito di volte
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO
Il ciclo e un costrutto usato ogni volta che un blocco diistruzioni va ripetuto per un certo numero di volte.
Per evitare la creazione di cicli infiniti, e necessario stabilireuna condizione di uscita (termine, fine) del ciclo.
E possibile distinguere diversi tipi di ciclo a seconda delmeccanismo con cui terminano:
repeat until ripeti le istruzioni finche una particolare condizione non esoddisfatta
DO con indice ripeti le istruzioni un numero predefinito di volte
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO
Il ciclo e un costrutto usato ogni volta che un blocco diistruzioni va ripetuto per un certo numero di volte.
Per evitare la creazione di cicli infiniti, e necessario stabilireuna condizione di uscita (termine, fine) del ciclo.
E possibile distinguere diversi tipi di ciclo a seconda delmeccanismo con cui terminano:
repeat until ripeti le istruzioni finche una particolare condizione non esoddisfatta
DO con indice ripeti le istruzioni un numero predefinito di volte
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until
Significato: ripeti le istruzioni finche una particolarecondizione (espressione logica) non diventa vera.
Sintassi DOi s t r u z i o n iIF ( e s p r e s s i o n e ) EXITi s t r u z i o n i
END DO
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until
Significato: ripeti le istruzioni finche una particolarecondizione (espressione logica) non diventa vera.
Sintassi DOi s t r u z i o n iIF ( e s p r e s s i o n e ) EXITi s t r u z i o n i
END DO
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until - Esempio 1
WRITE(∗ ,∗ ) ’ i n s e r i s c i i ’READ(∗ ,∗ ) iDO
i = i + 1IF ( i > 100) EXITPRINT∗ , ’ I v a l e ’ , i
END DO! quando i > 100PRINT∗ , ’ C i c l o f i n i t o . Adesso I v a l e ’ , i
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until - Esempio 2
WRITE(∗ ,∗ ) ’ i n s e r i s c i i ’READ(∗ ,∗ ) iDO
IF ( i > 100) EXITi = i + 1PRINT∗ , ’ I v a l e ’ , i
END DO! quando i > 100PRINT∗ , ’ C i c l o f i n i t o . Adesso I v a l e ’ , i
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until
In cosa differiscono gli esempi 1 e 2?
Suggerimento: provare i due esempi assegnando a i il valore101 e confrontare i risultati.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo repeat until
In cosa differiscono gli esempi 1 e 2?
Suggerimento: provare i due esempi assegnando a i il valore101 e confrontare i risultati.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
Significato: ripeti le istruzioni un numero predefinito di volte.
Sintassi DO v = e1 , e2 , e3i s t r u z i o n i
END DO
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
Significato: ripeti le istruzioni un numero predefinito di volte.
Sintassi DO v = e1 , e2 , e3i s t r u z i o n i
END DO
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
v nome di una variabile, detta variabile del ciclo DO, che puoessere di tipo INTEGER, REAL o DOUBLE PRECISION. Siconsiglia tuttavia di usare sempre variabili INTEGER.
e1 (parametro iniziale) espressione aritmetica che da il valoreiniziale di v
e2 (parametro finale) espressione aritmetica che da il valore che vnon puo superare
e3 (incremento) espressione aritmetica che da l’incremento di vad ogni ciclo. Puo essere omessa. Qualora non sia presente, siassume un incremento pari a 1.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
v nome di una variabile, detta variabile del ciclo DO, che puoessere di tipo INTEGER, REAL o DOUBLE PRECISION. Siconsiglia tuttavia di usare sempre variabili INTEGER.
e1 (parametro iniziale) espressione aritmetica che da il valoreiniziale di v
e2 (parametro finale) espressione aritmetica che da il valore che vnon puo superare
e3 (incremento) espressione aritmetica che da l’incremento di vad ogni ciclo. Puo essere omessa. Qualora non sia presente, siassume un incremento pari a 1.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
v nome di una variabile, detta variabile del ciclo DO, che puoessere di tipo INTEGER, REAL o DOUBLE PRECISION. Siconsiglia tuttavia di usare sempre variabili INTEGER.
e1 (parametro iniziale) espressione aritmetica che da il valoreiniziale di v
e2 (parametro finale) espressione aritmetica che da il valore che vnon puo superare
e3 (incremento) espressione aritmetica che da l’incremento di vad ogni ciclo. Puo essere omessa. Qualora non sia presente, siassume un incremento pari a 1.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Ciclo DO con indice
v nome di una variabile, detta variabile del ciclo DO, che puoessere di tipo INTEGER, REAL o DOUBLE PRECISION. Siconsiglia tuttavia di usare sempre variabili INTEGER.
e1 (parametro iniziale) espressione aritmetica che da il valoreiniziale di v
e2 (parametro finale) espressione aritmetica che da il valore che vnon puo superare
e3 (incremento) espressione aritmetica che da l’incremento di vad ogni ciclo. Puo essere omessa. Qualora non sia presente, siassume un incremento pari a 1.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
1 Si calcolano i parametri del ciclo DO valutando le espressioni:m1 = e1m2 = e2m3 = e3
2 Si ponev = m1
3 Si calcola il contatoreC = MAX(0, INT((m2 - m1 + m3)/m3))C indica il numero di volte che il ciclo DO viene eseguitoNB: C ≥ 0! Se C = 0 il ciclo non viene mai eseguito!
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
1 Si calcolano i parametri del ciclo DO valutando le espressioni:m1 = e1m2 = e2m3 = e3
2 Si ponev = m1
3 Si calcola il contatoreC = MAX(0, INT((m2 - m1 + m3)/m3))C indica il numero di volte che il ciclo DO viene eseguitoNB: C ≥ 0! Se C = 0 il ciclo non viene mai eseguito!
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
1 Si calcolano i parametri del ciclo DO valutando le espressioni:m1 = e1m2 = e2m3 = e3
2 Si ponev = m1
3 Si calcola il contatoreC = MAX(0, INT((m2 - m1 + m3)/m3))C indica il numero di volte che il ciclo DO viene eseguitoNB: C ≥ 0! Se C = 0 il ciclo non viene mai eseguito!
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
4 Se C > 0 si svolgono le istruzioni contenute nel ciclo,altrimenti l’esecuzione del programma prosegue dall’istruzioneEND DO
5 Si ponev = v + m3
6 Si poneC = C - 1
7 Si torna al punto 4.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
4 Se C > 0 si svolgono le istruzioni contenute nel ciclo,altrimenti l’esecuzione del programma prosegue dall’istruzioneEND DO
5 Si ponev = v + m3
6 Si poneC = C - 1
7 Si torna al punto 4.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
4 Se C > 0 si svolgono le istruzioni contenute nel ciclo,altrimenti l’esecuzione del programma prosegue dall’istruzioneEND DO
5 Si ponev = v + m3
6 Si poneC = C - 1
7 Si torna al punto 4.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Schema del ciclo DO
4 Se C > 0 si svolgono le istruzioni contenute nel ciclo,altrimenti l’esecuzione del programma prosegue dall’istruzioneEND DO
5 Si ponev = v + m3
6 Si poneC = C - 1
7 Si torna al punto 4.
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Esempio: somma dei primi 10 numeri
sum = 0 . ! I n i z i a l i z z a z i o n e d e l l a sommaDO i =1 ,10
sum = sum + iEND DOWRITE(∗ ,∗ ) ’ r i s u l t a t o d e l l a somma ’ , sum
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli
Strutture di controllo - Istruzioni condizionaliStrutture di controllo - SELECT CASE
Cicli
Esempio: calcolo del fattoriale
WRITE(∗ ,∗ ) ’ i n s e r i s c i numero d i c u i vuo i &c a l c o l a r e i l f a t t o r i a l e ’
READ(∗ ,∗ ) nn f a t t o r i a l e = 1
DO i =1,nn f a t t o r i a l e = n f a t t o r i a l e ∗ i
END DOWRITE(∗ ,∗ ) ’ i l f a t t o r i a l e d i ’ , n , ’ v a l e ’ , n f a t t o r i a l e
Fondamenti di Informatica T (A-K) Strutture di controllo e cicli