fondamenti di informatica t (a-k) aa 2012-2013fimecc.ing.unibo.it/programma/costrutti.pdf ·...

Post on 16-Oct-2019

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related