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 – [email protected]
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++
2
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++
3
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++
4
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++
5
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++
6
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++
7
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++
8
Elementi di Base: Conclusioni >> FORTRAN
Struttura del Programma
1.....5 6 7....................72 73...80
C Questa e’ una riga di commento
program primo
integer i
do 500 i=1,10
write (*,*) ‘Istruzione
* molto lunga’
500
continue
stop
end
colonne
destinate
alle etichette
colonna 6
per spezzare
le istruzioni
colonne
destinate
alle istruzioni
G. Mecca - Programmazione Procedurale in Linguaggio C++
colonne
ignorate
9
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++
10
Elementi di Base: Conclusioni >> FORTRAN
Dichiarazioni in FORTRAN 77
 Costanti
si dichiarano in due passi
primo passo: tipo della costante
secondo passo: valore della costante
si utilizza parameter (<nome>=<valore>)
 Variabili
si dichiarano esattamente come in C++
<tipo> <identificatore>
G. Mecca - Programmazione Procedurale in Linguaggio C++
11
Elementi di Base: Conclusioni >> FORTRAN
Assegnazioni in FORTRAN 77
 Assegnazioni
semantica uguale a quella del C++
leggere differenze sintattiche
 Esempio:
C++:
operatori
==
&&
!=
||
>
!
<
>=
<=
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++
12
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++
13
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++
14
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++
15
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++
16
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++
17
Termini della Licenza
Termini della Licenza

This work is licensed under the Creative Commons AttributionShareAlike 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++
18
Scarica

Programmazione Procedurale in Linguaggio C++