Programmazione Procedurale in Linguaggio C Strutture di Controllo

  • Slides: 21
Download presentation
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 5 Il FORTRAN versione 2.

Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 5 Il FORTRAN versione 2. 0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – Università della Basilicata – mecca@unibas. it

Strutture di Controllo: Conclusioni >> Sommario m Un altro esempio: Il linguaggio FORTRAN ðDichiarazione

Strutture di Controllo: Conclusioni >> Sommario m Un altro esempio: Il linguaggio FORTRAN ðDichiarazione Implicita ðIstruzioni Condizionali ðIstruzioni Iterative G. Mecca - Programmazione Procedurale in Linguaggio C++ 2

Strutture di Controllo: Conclusioni >> FORTRAN Un Altro Esempio: FORTRAN m Strutture di controllo

Strutture di Controllo: Conclusioni >> FORTRAN Un Altro Esempio: FORTRAN m Strutture di controllo in FORTRAN 77 ðistruzioni condizionali (IF-THEN-ELSE, IFTHEN) ðciclo DO (ciclo di tipo for) m Il FORTRAN 77 non prevede il while ðintrodotto in FORTRAN 90 ðma i compilatori più recenti lo prevedono comunque come estensione al linguaggio G. Mecca - Programmazione Procedurale in Linguaggio C++ 3

Strutture di Controllo: Conclusioni >> FORTRAN Un Esempio: Media con For program mediaf implicit

Strutture di Controllo: Conclusioni >> FORTRAN Un Esempio: Media con For program mediaf implicit none real voto, somma. Voti, media integer numero. Esami, i write (*, *) 'Quanti esami hai sostenuto ? ' read (*, *) numero. Esami somma. Voti = 0. 0 do i=1, numero. Esami write (*, *) 'Immetti il voto di un esame' read (*, *) voto somma. Voti = somma. Voti+voto end do if (numero. Esami. gt. 0) then media = somma. Voti/numero. Esami write (*, *) 'La media vale: ', media else write (*, *) 'Non hai fornito alcun voto' end if stop end G. Mecca - Programmazione Procedurale in Linguaggio C++ 4

Un Esempio: Media con While Strutture di Controllo: Conclusioni >> FORTRAN program mediaw implicit

Un Esempio: Media con While Strutture di Controllo: Conclusioni >> FORTRAN program mediaw implicit none real voto, somma. Voti, media integer numero. Esami logical continua =. true. numero. Esami = 0 somma. Voti = 0. 0 do while (continua. eqv. . true. ) write (*, *) 'Immetti il voto di un esame (0 per fermarti)' read (*, *) voto if (voto. eq. 0) then continua =. false. else numero. Esami = numero. Esami+1 somma. Voti = somma. Voti+voto end if end do if (numero. Esami. gt. 0) then media = somma. Voti/numero. Esami write (*, *) 'La media vale: ', media else write (*, *) 'Non hai fornito alcun voto' end if stop end >> G. Mecca - Programmazione Procedurale in Linguaggio C++ 5

Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita m Una particolarità del prog. FORTRAN

Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita m Una particolarità del prog. FORTRAN ðistruzione implicit none ðimpedisce la dichiarazione implicita del FORTRAN m Dichiarazione implicita ðle variabili possono essere usate senza essere dichiarate ðnomi che cominciano con i, j, k, l, m, n: integer ðgli altri nomi: real G. Mecca - Programmazione Procedurale in Linguaggio C++ 6

Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita m E’ un meccanismo da non

Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita m E’ un meccanismo da non usare ðintrodotto per ragioni di economia di scrittura ðporta a numerosi errori per dimenticanze ðes: variabile continua m Nei compilatori moderni ðè stata introdotta per disabilitare questo meccanismo ðè buona norma usare sempre implicit none come prima istruzione del programma G. Mecca - Programmazione Procedurale in Linguaggio C++ 7

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Istruzioni condizionali in FORTRAN 77

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Istruzioni condizionali in FORTRAN 77 ðistruzione IF-THEN-ELSE-END IF ðistruzione IF-THEN-END IF m Sintassi if (<condizione>) then <istruzioni> else <istruzioni> end if if (<condizione>) then <istruzioni> end if G. Mecca - Programmazione Procedurale in Linguaggio C++ 8

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Semantica ðidentica a quella dell’istruzione

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Semantica ðidentica a quella dell’istruzione if in C++ m Differenze ðè obbligatoria la parola chiave THEN ðin FORTRAN non esiste il concetto di blocco di istruzioni (equivalente delle { }); i blocchi sono delimitati da THEN-ELSE-END IF ðè considerevolmente diversa la sintassi delle condizioni G. Mecca - Programmazione Procedurale in Linguaggio C++ 9

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Condizioni ðoperatori di confronto in

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali m Condizioni ðoperatori di confronto in FORTRAN. eq. . ne. . gt. . lt. . ge. . le. . eqv. . neqv. ðoperatori booleani in FORTRAN. and. . or. . not. . true. . false. m Esempi ð ((anno. gt. 1). and. (matricola. gt. 15000)) ð (continua. eqv. . true. ) G. Mecca - Programmazione Procedurale in Linguaggio C++ 10

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Iterative m Istruzioni iterative in FORTRAN 77

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Iterative m Istruzioni iterative in FORTRAN 77 ðil linguaggio prevede solo una forma di ciclo ðistruzione DO-CONTINUE ðciclo di tipo for (cicli a conteggio) ðè basato sull’uso di etichette m. I compilatori moderni consentono di ðnon utilizzare le etichette ðutilizzare anche l’istruzione while G. Mecca - Programmazione Procedurale in Linguaggio C++ 11

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do-continue m Sintassi do <etic> <variabile>=<v. iniz>,

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do-continue m Sintassi do <etic> <variabile>=<v. iniz>, <v. finale> <istruzioni> <etic> continue m Esempio 555 do 555 i=1, 10 write (*, *) i continue m Semantica ðè quella di un for G. Mecca - Programmazione Procedurale in Linguaggio C++ 12

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Iterative m In questo corso ðutilizzeremo le

Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Iterative m In questo corso ðutilizzeremo le estensioni moderne offerte dal compilatore m In particolare ðistruzione do-end do (variante del docontinue che non utilizza etichette) ðistruzione do while-end do G. Mecca - Programmazione Procedurale in Linguaggio C++ 13

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do-end do m Sintassi do <variabile> =

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do-end do m Sintassi do <variabile> = <v. iniz>, <v. finale> <istruzioni> ATTENZIONE: end do m Esempio do i = 1, write end do m 10 (*, *) ‘Valore: ’ (*, *) i la variabile viene inizializzata al valore iniziale e il ciclo prosegue finchè non ha superato il valore finale (es: i da 1 a 10 incluso) Semantica ðidentica a quella del do-continue (ciclo a conteggio) G. Mecca - Programmazione Procedurale in Linguaggio C++ 14

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do while-end do m Sintassi do while

Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do while-end do m Sintassi do while (<condizione>) <istruzioni> end do m Esempio do while (i. ne. 0) write (*, *) ‘Inserisci valore: ’ read (*, *) i end do m Semantica ðidentica a quella del while in C++ G. Mecca - Programmazione Procedurale in Linguaggio C++ 15

Strutture di Controllo: Conclusioni >> Sommario Riassumendo m Un altro esempio: Il linguaggio FORTRAN

Strutture di Controllo: Conclusioni >> Sommario Riassumendo m Un altro esempio: Il linguaggio FORTRAN ðDichiarazione Implicita (implicit none) ðIstruzioni Condizionali in FORTRAN 77 ðIstruzioni Iterative in FORTRAN 77 (ATTENZIONE) G. Mecca - Programmazione Procedurale in Linguaggio C++ 16

Strutture di Controllo: Conclusioni >> Un Esempio: Media con For #include <iostream. h> void

Strutture di Controllo: Conclusioni >> Un Esempio: Media con For #include <iostream. h> void main() { float voto, somma. Voti, media; int numero. Esami, i; cout << "Quanti esami hai sostenuto ? " << cin >> numero. Esami; somma. Voti = 0. 0; for (i=0; i<numero. Esami; i++) { cout << "Immetti il voto di un esame" cin >> voto; somma. Voti += voto; } if (numero. Esami > 0) { media = somma. Voti/numero. Esami; cout << "La media vale: " << media << } else cout << "Non hai fornito nessun voto" } G. Mecca - Programmazione Procedurale in Linguaggio C++ endl; << endl; 17

Strutture di Controllo: Conclusioni >> Un Esempio: Media con While #include <iostream. h> void

Strutture di Controllo: Conclusioni >> Un Esempio: Media con While #include <iostream. h> void main() { float voto, somma. Voti, media; int numero. Esami; bool continua; continua = true; numero. Esami = 0; somma. Voti = 0. 0; while (continua == true) { cout << "Immetti il voto (0 per fermarti)" << endl; cin >> voto; if (voto == 0) continua = false; else { numero. Esami++; somma. Voti += voto; } } if (numero. Esami > 0) { media = somma. Voti/numero. Esami; cout << "La media vale: " << media << endl; } else cout << "Non hai fornito nessun voto" << endl; } G. Mecca - Programmazione Procedurale in Linguaggio C++ 18

Strutture di Controllo: Conclusioni >> FORTRAN Un Esempio: Media con For program mediaf implicit

Strutture di Controllo: Conclusioni >> FORTRAN Un Esempio: Media con For program mediaf implicit none real voto, somma. Voti, media integer numero. Esami, i write (*, *) 'Quanti esami hai sostenuto ? ' read (*, *) numero. Esami somma. Voti = 0. 0 do i=1, numero. Esami write (*, *) 'Immetti il voto di un esame' read (*, *) voto somma. Voti = somma. Voti+voto end do if (numero. Esami. gt. 0) then media = somma. Voti/numero. Esami write (*, *) 'La media vale: ', media else write (*, *) 'Non hai fornito alcun voto' end if stop end G. Mecca - Programmazione Procedurale in Linguaggio C++ 19

Un Esempio: Media con While Strutture di Controllo: Conclusioni >> FORTRAN program mediaw implicit

Un Esempio: Media con While Strutture di Controllo: Conclusioni >> FORTRAN program mediaw implicit none real voto, somma. Voti, media integer numero. Esami logical continua =. true. numero. Esami = 0 somma. Voti = 0. 0 do while (continua. eqv. . true. ) write (*, *) 'Immetti il voto di un esame (0 per fermarti)' read (*, *) voto if (voto. eq. 0) then continua =. false. else numero. Esami = numero. Esami+1 somma. Voti = somma. Voti+voto end if end do if (numero. Esami. gt. 0) then media = somma. Voti/numero. Esami write (*, *) 'La media vale: ', media else write (*, *) 'Non hai fornito alcun voto' end if stop end G. Mecca - Programmazione Procedurale in Linguaggio C++ 20

Termini della Licenza m This work is licensed under the Creative Commons Attribution. Share.

Termini della Licenza m This work is licensed under the Creative Commons Attribution. Share. Alike License. To view a copy of this license, visit http: //creativecommons. org/licenses/by-sa/1. 0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-Share. Alike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http: //creativecommons. org/licenses/by-sa/1. 0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - Programmazione Procedurale in Linguaggio C++ 21