180 likes | 360 Views
Programmazione Procedurale in Linguaggio C++. Elementi di Base Parte 6 Il FORTRAN. versione 2.1. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). Elementi di Base: Conclusioni >> Sommario. Sommario. Un Altro Esempio: Il FORTRAN 77
E N D
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 6 Il FORTRAN versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – Università della Basilicata – mecca@unibas.it
Elementi di Base: Conclusioni >> Sommario Sommario • Un Altro Esempio: Il FORTRAN 77 • Struttura del Programma • Tipi di Base • Dichiarazioni • Assegnazioni • Istruzioni di Lettura e Stampa G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Un Altro Esempio: Il FORTRAN • Gli stessi concetti sono alla base di tutti i linguaggi di programmazione procedurale • Esempio: il FORTRAN 77 • linguaggio di più antica concezione • conserva alcune caratteristiche legate all’informatica degli anni 50 • recentemente: FORTRAN 90 • Attenzione • le differenze sono principalmente sintattiche G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Un Semplice Programma in FORTRAN 77 C------Calcolo della superficie del cerchio program primo C------Dichiarazioni real pigreco parameter (pigreco=3.14) integer raggio real cerchio, circonf C------Operazioni write(*,*) 'Immetti la lungh. del raggio' write(*,*) '(deve essere un numero intero)' read(*,*) raggio cerchio = raggio*raggio*pigreco circonf = 2*pigreco*raggio write(*,*) 'La circonferenza misura', circonf write(*,*) 'Il cerchio ha superficie', cerchio stop end G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Struttura del Programma • Principali differenze • comincia con la parola chiave program • finisce con stop ed end • non ci sono direttive di inclusione • non si usa il punto e virgola • le stringhe si scrivono tra apici singoli • particolare disposizione del codice G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Struttura del Programma • In generale • il FORTRAN 77 è decisamente più rigido degli altri linguaggi nella disposizione del codice • Esempio • tutte le istruzioni di dichiarazione devono comparire prima delle operazioni • non è possibile mischiarle • in C++, viceversa, è possibile farlo (dichiarazioni in mezzo alle operazioni) G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Struttura del Programma • Altro esempio • scrittura delle istruzioni sulle righe dello schermo • In particolare • è possibile specificare una sola istruzione su ogni riga (errori sintattici) • non è possibile utilizzare liberamente le colonne della riga • uso riservato delle colonne da 1 a 6 G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Struttura del Programma • Utilizzo delle colonne • colonne da 1 a 5: riservate alle etichette • colonna 6: serve per spezzare le istruzioni • colonne da 7 a 72: istruzioni • colonne da 73 in poi: ignorate • commenti: ‘C’ in colonna 1 • E’ necessario rispettare i vincoli • errori sintattici G. Mecca - Programmazione Procedurale in Linguaggio C++
colonna 6 per spezzare le istruzioni colonne destinate alle istruzioni colonne ignorate colonne destinate alle etichette Elementi di Base: Conclusioni >> FORTRAN Struttura del Programma 7....................72 73...80 1.....5 6 C Questa e’ una riga di commento program primo integer i do 500 i=1,10 write (*,*) ‘Istruzione * molto lunga’ 500 continue stop end G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Tipi di Base del FORTRAN 77 • Numeri • tipo INTEGER (int): 16 bit in complemento a 2 • tipo REAL (float): 32 bit in virgola mobile • tipo DOUBLE PRECISION (double): 64 bit in v.m. • Caratteri • tipo CHARACTER (char): 8 bit in codice ASCII • tipo CHARACTER*n per le stringhe: n*8 bit ASCII • Booleani • tipo LOGICAL (bool): 1 bit; valori .true. .false. G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Dichiarazioni in FORTRAN 77 • Costanti • si dichiarano in due passi • primo passo: tipo della costante • secondo passo: valore della costantesi utilizza parameter (<nome>=<valore>) • Variabili • si dichiarano esattamente come in C++ • <tipo> <identificatore> G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Assegnazioni in FORTRAN 77 • Assegnazioni • semantica uguale a quella del C++ • leggere differenze sintattiche • Esempio: operatori C++: == != > < >= <= && || ! FORTRAN: .eq. .ne. .gt. .lt. .ge. .le. .and. .or. .not. .eqv. .neqv. es:((anno.eq.1).and.(matricola.gt.15000)) G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Istruzioni di Lettura e Stampa in F77 • Istruzioni di stampa • write(*,*) <argom1>, <argom2>, ... • stampa sul flusso standard di uscita (schermo) • le stringhe costanti vanno tra apici singoli • es: ‘Immetti la lungh. del raggio’ • ATTENZIONE agli apostrofi nelle stringhe • devono essere raddoppiati • ‘Ecco il valore dell’’anno’ G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Istruzioni di Lettura e Stampa in F77 • Istruzioni di lettura • read (*,*) <variabile> • legge dal flusso standard di ingresso (tastiera) • eseguono un input formattato (con qualche piccola differenza) • es: per istruzioni di lettura diversa i dati vanno forniti su righe diverse cerchiof.for >> G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> Sommario Riassumendo • Un Altro Esempio: Il FORTRAN 77 • Struttura del Programma • Tipi di Base • Dichiarazioni • Assegnazioni • Istruzioni di Lettura e Stampa • Grandi differenze nella sintassi • Piccole differenze nella semantica G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> Ricapitolazione Un Semplice Programma // Calcolo della superficie del cerchio #include <iostream.h> void main() { // Dichiarazioni const float pigreco=3.14; int raggio; float cerchio, circonf; // Operazioni cout << “Immetti la lungh. del raggio” << endl; cout << “(deve essere un numero intero)” << endl; cin >> raggio; cerchio = raggio*raggio*pigreco; circonf = 2*pigreco*raggio; cout << “La circonferenza misura: “ << circonf << endl; cout << “Il cerchio ha superficie: “ << cerchio << endl; } G. Mecca - Programmazione Procedurale in Linguaggio C++
Elementi di Base: Conclusioni >> FORTRAN Un Semplice Programma in FORTRAN 77 C------Calcolo della superficie del cerchio program primo C------Dichiarazioni real pigreco parameter (pigreco=3.14) integer raggio real cerchio, circonf C------Operazioni write(*,*) 'Immetti la lungh. del raggio' write(*,*) '(deve essere un numero intero)' read(*,*) raggio cerchio = raggio * raggio * pigreco circonf = 2 * pigreco * raggio write(*,*) 'La circonferenza misura', circonf write(*,*) 'Il cerchio ha superficie', cerchio stop end G. Mecca - Programmazione Procedurale in Linguaggio C++
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++