• Non ci sono risultati.

Programmazione Procedurale in Linguaggio C++

N/A
N/A
Protected

Academic year: 2021

Condividi "Programmazione Procedurale in Linguaggio C++"

Copied!
10
0
0

Testo completo

(1)

G. Mecca – Università della Basilicata – mecca@unibas.it

Programmazione Procedurale in Linguaggio C++

Elementi di Base Parte 6

Il FORTRAN

versione 2.2

Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

2

Sommario

m

Un Altro Esempio: Il FORTRAN 77

m

Struttura del Programma

m

Tipi di Base

m

Dichiarazioni

m

Dichiarazione Implicita

m

Assegnazioni

m

Istruzioni di Lettura e Stampa

Elementi di Base: Conclusioni >> Sommario

(2)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 3

m Gli stessi concetti visti per il “clean C”

ðsono alla base di tutti i linguaggi di programmazione procedurale

m Esempio: il FORTRAN 77

ðlinguaggio di più antica concezione

ðconserva alcune caratteristiche legate all’informatica degli anni 50

ðrecentemente: FORTRAN 90

m Attenzione

ðle differenze sono principalmente sintattiche

Elementi di Base: Conclusioni >> FORTRAN

C---Calcolo della superficie del cerchio program primo

implicit none 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

Un Semplice Programma in FORTRAN 77

(3)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 5

Struttura del Programma

m

Principali differenze

ðcomincia con la parola chiave program

ðseguito dal nome del programma (es: primo) che deve essere un identificatore

ð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

6

Struttura del Programma

m

In generale

ðil FORTRAN 77 è decisamente più rigido degli altri linguaggi nella disposizione del codice

m

Esempio

ðtutte le istruzioni di dichiarazione devono comparire prima delle operazioni

ðnon è possibile mischiarle

ðin C++, viceversa, è possibile farlo (dichiarazioni in mezzo alle operazioni)

Elementi di Base: Conclusioni >> FORTRAN

(4)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 7

m

Altro esempio

ðscrittura delle istruzioni sulle righe dello schermo

m

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

Struttura del Programma

m

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

m

E’ necessario rispettare i vincoli

ðerrori sintattici

Elementi di Base: Conclusioni >> FORTRAN

(5)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 9

Struttura del Programma

1...5 6 7...72 73...80

colonne destinate alle etichette

colonna 6 per spezzare le istruzioni

colonne destinate alle istruzioni

colonne ignorate C Questa e’ una riga di commento

program primo integer i

do 500 i=1,10

500 continue

write (*,*) ‘Istruzione

* molto lunga’

stop end

10

Tipi di Base del FORTRAN 77

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

m Caratteri

ðtipo CHARACTER (char): 8 bit in codice ASCII ðtipo CHARACTER*n per le stringhe: n*8 bit ASCII

m Booleani

ðtipo LOGICAL (bool): 1 bit; valori .true. .false.

Elementi di Base: Conclusioni >> FORTRAN

(6)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 11

m

Costanti

ðsi dichiarano in due passi

ðprimo passo: tipo della costante ðsecondo passo: valore della costante

si utilizza parameter (<nome>=<valore>) m

Variabili

ðsi dichiarano esattamente come in C++

ð<tipo> <identificatore>

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

Elementi di Base: Conclusioni >> FORTRAN

(7)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 13

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” di tipo logical

m

Nei compilatori moderni

ðè stata introdotta per disabilitare questo meccanismo

ðè buona norma usare sempre implicit none

come prima istruzione del programma

14

Assegnazioni in FORTRAN 77

m

Assegnazioni

ðsemantica uguale a quella del C++

ðleggere differenze sintattiche

m

Esempio: operatori

C++: == != > < >= <=

&& || !

FORTRAN: .eq. .ne. .gt. .lt. .ge. .le.

.and. .or. .not. .eqv. .neqv.

es:((anno.eq.1).and.(matricola.gt.15000))

Elementi di Base: Conclusioni >> FORTRAN

(8)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 15

m

Istruzioni di stampa

ðwrite(*,*) <argom1>, <argom2>, ...

ðstampa gli argomenti sul flusso standard di uscita (schermo) e poi va a capo (\n)

ðle stringhe costanti vanno tra apici singoli ðes: ‘Immetti la lungh. del raggio’

m

ATTENZIONE agli apostrofi nelle stringhe

ðdevono essere raddoppiati

ð‘Ecco il valore dell’’anno’

Istruzioni di Lettura e Stampa in F77

m

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

Elementi di Base: Conclusioni >> FORTRAN

cerchiof.for >>

(9)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 17

Riassumendo

m

Un Altro Esempio: Il FORTRAN 77

m

Struttura del Programma

m

Tipi di Base

m

Dichiarazioni

ðDichiarazione Implicita (ATTENZIONE)

m

Assegnazioni

m

Istruzioni di Lettura e Stampa

m

Differenze sintattiche, stessa semantica

18 Elementi di Base: Conclusioni >> Ricapitolazione

// 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;

}

Un Semplice Programma

(10)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 19 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

Termini della Licenza

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

Termini della Licenza

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

Riferimenti

Documenti correlati

Tale assunto, logico e coerente a una prima analisi, parrebbe estendibile anche al conte- sto storico-architettonico, sostenuto peraltro da alcuni casi di indubbio interesse:

The aim of the study was to examine, through the push-out test, how bond strength between the post and the dentin varied with etching time with 37% orthophosphoric acid,

Per disegnare una circonferenza bastano un punto (centro) ed un segmento (il raggio) che determina la lunghezza della..

Error E2015 cerchioErrori.cpp 13: Ambiguity between 'cout' and 'std::cout' Error E2238 cerchioErrori.cpp 13: Multiple declaration for 'cout' Error E2344 cerchioErrori.cpp 12:

m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è

ðil valore di i mi dice in ogni istante quante volte è stato già eseguito il corpo del ciclo. Strutture di Controllo: Cicli &gt;&gt;

 Due circonferenze sono esterne l’una all’altra se la distanza tra i loro centri O e O’ è maggiore della somma dei loro raggi r e r’ (OO’ &gt; r+r’), sono

Viene detto apotema il raggio della circonferenza inscritta al poligono regolare che rappresenta la distanza del lato del poligono rispetto al suo centro; quando tracciamo