1 / 21

Programmazione Procedurale in Linguaggio C++

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). Strutture di Controllo: Conclusioni >> Sommario. Sommario.

mihaly
Download Presentation

Programmazione Procedurale in Linguaggio C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

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

  3. Strutture di Controllo: Conclusioni >> FORTRAN Un Altro Esempio: FORTRAN • Strutture di controllo in FORTRAN 77 • istruzioni condizionali (IF-THEN-ELSE, IF-THEN) • ciclo DO (ciclo di tipo for) • 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++

  4. Strutture di Controllo: Conclusioni >> FORTRAN Un Esempio: Media con For program mediaf implicit none real voto, sommaVoti, media integer numeroEsami, i write (*,*) 'Quanti esami hai sostenuto ?' read (*,*) numeroEsami sommaVoti = 0.0 do i=1, numeroEsami write (*,*) 'Immetti il voto di un esame' read (*,*) voto sommaVoti = sommaVoti+voto end do if (numeroEsami.gt.0) then media = sommaVoti/numeroEsami 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 program mediaw implicit none real voto, sommaVoti, media integer numeroEsami logical continua continua = .true. numeroEsami = 0 sommaVoti = 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 numeroEsami = numeroEsami+1 sommaVoti = sommaVoti+voto end if end do if (numeroEsami.gt.0) then media = sommaVoti/numeroEsami write (*,*) 'La media vale: ', media else write (*,*) 'Non hai fornito alcun voto' end if stop end Un Esempio: Media con While >> G. Mecca - Programmazione Procedurale in Linguaggio C++

  6. Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita • Una particolarità del prog. FORTRAN • istruzione implicit none • impedisce la dichiarazione implicita del FORTRAN • 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++

  7. Strutture di Controllo: Conclusioni >> FORTRAN Dichiarazione Implicita • E’ un meccanismo da non usare • introdotto per ragioni di economia di scrittura • porta a numerosi errori per dimenticanze • es: variabile continua • 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++

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

  9. Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Condizionali • Semantica • identica a quella dell’istruzione if in C++ • 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++

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

  11. Strutture di Controllo: Conclusioni >> FORTRAN Istruzioni Iterative • 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 • I compilatori moderni consentono di • non utilizzare le etichette • utilizzare anche l’istruzione while G. Mecca - Programmazione Procedurale in Linguaggio C++

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

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

  14. Strutture di Controllo: Conclusioni >> FORTRAN Istruzione do-end do • Sintassi do <variabile> = <v.iniz>, <v.finale> <istruzioni> end do • Esempio do i = 1, 10 write (*,*) ‘Valore:’ write (*,*) i end do • Semantica • identica a quella del do-continue (ciclo a conteggio) ATTENZIONE: 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) G. Mecca - Programmazione Procedurale in Linguaggio C++

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

  16. Strutture di Controllo: Conclusioni >> Sommario Riassumendo • 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++

  17. Strutture di Controllo: Conclusioni >> Un Esempio Un Esempio: Media con For #include <iostream.h> void main() { float voto, sommaVoti, media; int numeroEsami, i; cout << "Quanti esami hai sostenuto ?" << endl; cin >> numeroEsami; sommaVoti = 0.0; for (i=0; i<numeroEsami; i++) { cout << "Immetti il voto di un esame" << endl; cin >> voto; sommaVoti += voto; } if (numeroEsami > 0) { media = sommaVoti/numeroEsami; 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 >> Un Esempio Un Esempio: Media con While #include <iostream.h> void main() { float voto, sommaVoti, media; int numeroEsami; bool continua; continua = true; numeroEsami = 0; sommaVoti = 0.0; while (continua == true) { cout << "Immetti il voto (0 per fermarti)" << endl; cin >> voto; if (voto == 0) continua = false; else { numeroEsami++; sommaVoti += voto; } } if (numeroEsami > 0) { media = sommaVoti/numeroEsami; cout << "La media vale: " << media << endl; } else cout << "Non hai fornito nessun voto" << endl; } G. Mecca - Programmazione Procedurale in Linguaggio C++

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

  20. Strutture di Controllo: Conclusioni >> FORTRAN program mediaw implicit none real voto, sommaVoti, media integer numeroEsami logical continua continua = .true. numeroEsami = 0 sommaVoti = 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 numeroEsami = numeroEsami+1 sommaVoti = sommaVoti+voto end if end do if (numeroEsami.gt.0) then media = sommaVoti/numeroEsami write (*,*) 'La media vale: ', media else write (*,*) 'Non hai fornito alcun voto' end if stop end Un Esempio: Media con While G. Mecca - Programmazione Procedurale in Linguaggio C++

  21. Termini della Licenza Termini della Licenza • This work is licensed under the Creative Commons Attribution-ShareAlike 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. • Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” 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++

More Related