lunedì 2 dicembre 2013

Le procedure ricorsive nel Fortran

Le procedure ricorsive nel Fortran
Le procedure ricorsive nel Fortran
Una procedura ricorsiva rappresenta una costruzione artificiosa che ci consente di utilizzare una funzione in se stessa. Analizziamo come nel liguaggio di programmazione Fortran possa essere gestita una procedura di talke tipo; vediamo allora un semplice esempio di funzione ricorsiva alfine di mettere in evidenza appunto il fatto che la funzione richiama se stessa:
RECURSIVE FUNCTION factorial(n) RESULT(res)
INTEGER res, n
IF(n.EQ.1) THEN
res = 1
ELSE
res = n*factorial(n-1)
END IF
END


Analizziamo allora nel dettaglio la funzione che presenta una struttura ramificata. La condizione n == 1 è la base della ricorsione. Questo è l’unico modo che si ha per ottenere che il programma smetta di chiamare se stesso. 

La parte contenuta nel costrutto else rappresenta la ricorsione. C'è da notare che la chiamata factorial(n-1) avviene all'interno della funzione che sta definendo factorial(n). La parte essenziale di tutto il procedimento di ricorsione è appunto la chiamata a un valore inferiore, n-1, e tale chiamata continuerà fino a quando non si verificherà un valore di n pari a 0. 

Possiamo quindi affermare che una procedura di ricorsione che abbia successo chiamerà sempre un valore inferiore.Ci sono molti pericoli connessi all'utilizzo di un algoritmo di ricorsione. Ad esempio così come accade con i cicli while, è possibile per la funzione di chiamare se stessa all'infinito in modo da non fornire mai una risposta. Un'altro problema che può nascere dal suo utilizzo è legato al fatto che la ricorsione può causare calcoli ridondanti che, anche se possono essere conclusi, possono richiedere molto tempo. Infine  mentre un programma ricorsivo è in esecuzione ha bisogno di spazio in più per accogliere l’overhead della ricorsione. 


PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:



venerdì 29 novembre 2013

Il comando implicit none nel Fortran

Il comando implicit none nel Fortran
Il comando implicit none nel Fortran
Un errore frequente che viene commesso dai programmatori è quello di utilizzare una variabile prima che questa venga dichiarata. In realtà tale rischio è tipico dei linguaggi di programmazione procedurali mentre quelli che sono stati realizzati per la programmazione ad oggetti ne sono esenti. Il motivo di tutto questo è dovuto al fatto che il linguaggio di programmazione Fortran richiede che ogni variabile prima di essere utilizzata sia correttamente dichiarata, e non solo; prima di essere utilizzata dovrà anche essere inizializzata.

E' questo il motivo per cui ogni programma Fortran, nella sezione dichiarativa presenta una dichiarazione dettagliata di tutte le variabili che in esso vengoo utilizzate. Ed è proprio in tale momento che si può commettere l'errore di dimenticarsi della dichiarazione di una variabile che quindi verrà utilizzata all'interno del programma senza essere stata utilizzata e provocando quindi un errore.

Per obbligare il programmatore alla dichiarazione di tutte le variabili si utilizza appunto il comando inplicit none.

La sintassi dello statement implicit none è la seguente:

IMPLICIT NONE

Questo statement è utilizzato per evitare errori di utilizzo di variabili.Quando cioè viene utilizzato lo statement implicit none tutte le variabili devono essere dichiarate in una dichiarazione di tipo (dichiarazione specifica). 

Ad esempio del tipo:

REAL :: {list of variables}

Nell’ipotesi una variabile venisse utilizzata senza essere stata dichiarata, un errore verrebbe rilevato in fase di compilazione. in questo modo riusciamo ad avere un controllo sulle variabili utilizzate nel programma.

LINK DI APPROFONDIMENTO PER L'ARGOMENTO:


martedì 12 novembre 2013

Struttura di un programma Fortran

Struttura di un programma Fortran
Struttura di un programma Fortran
Un programma in fortran 90 è caratterizzato dalla seguente struttura:

1) Sezione dichiarativa
E’ posizionata all’inizio e contiene istruzioni non eseguibili quali:
  • nome del programma preceduto dal testo program;
  • dichiarazione delle variabili.

2) Sezione esecutiva.
Rappresenta il corpo del programma e contiene le istruzioni eseguibili necessarie per effettuare le operazioni
per le quali il programma stesso è stato ideato.

3) Sezione conclusiva.
Contiene le istruzioni che interrompono il programma quali:
  • stop che interrompe il programma;
  • end program che dice al compilatore che non c’`e pi`u nulla da compilare.
LINK DI APPROFONDIMENTO PER L'ARGOMENTO:


Caratteristiche fondamentali del fortran

Caratteristiche fondamentali del fortran
Caratteristiche fondamentali del fortran
In questa lezione analizzeremo le caratteristiche fondamentali del linguaggio fortran, a partire dal Fortran 90 che ha visto un netto cambiamento rispetto alle prime versioni del linguaggio.
Il nuovo Fortran consente di scrivere il codice sorgente nel formato libero, in questo modo non saremo più legati a delle rigide regole di formattazione, cosa che invece accadeva per il fortran 77. Le istruzione possono iniziare in qualsiasi punto della colonna. 

Le righe possono contenere fino a 132 caratteri. Su una riga può essere disposta più di un’istruzione, in questo caso è necessario utilizzare un punto e virgola  come delimitatore per separare le istruzioni. 

I commenti e le osservazioni in linea sono permesse. Tali osservazioni cominciano con un punto di esclamazione e si estendono fino all’estremità della riga. 

Le istruzione di continuazione sono indicate tramite la disposizione d’un segno & (&) come ultimo carattere non in bianco nella riga che è continuata. Fino a 39 continuazioni sono permesse. 

I nomi delle variabili possono raggiungere fino a 31 carattere.I caratteri validi includono tutte le lettere, cifre ed il simbolo del sottolineamento ( ) il primo carattere d’un nome di variabile deve essere una lettera. 

Il fortran 90 è case sensitive ma le istruzioni possono essere digitate come si vuole, per rendere il codice più leggibile è consigliato di indicare in grande i caratteri relativi alle istruzioni.


LINK DI APPROFONDIMENTO PER L'ARGOMENTO:

giovedì 7 novembre 2013

Come compilare un programma fortran

Come compilare un programma fortran
Come compilare un programma fortran
La procedura di compilazione di un programma fortran 90 avviene in maniera del tutto identica a quella utilizzata nelle precedenti versioni del fortran. Allora per compilare e collegare un codice sorgente fortran 90 con il nome main.f90, dobbiamo semplicemente digitare la seguente riga:

f90 main.f90

Questo creerà un archivio eseguibile chiamato a.out.

I programmi in fortran 90 che usano la forma libera di formato devono avere un'estensione f90.
Come per il compilatore fortran 77, anche per il compilatore f90 possiamo specificare il nome del nostro file eseguibile utilizzando la seguente opzione:

f90 main.f90 -o main.out

Abbiamo cioè utilizzato l’ opzione -o. Ciò creerà un archivio eseguibile chiamato main.out. Allo stesso modo, possiamo collegarci ad una libreria compilata di fortran 90 :

f90 main.f90 -L/usr/class/sccm001/lib -lmy\_lib90

Ciò collegherà il vostro programma main.f90 alla libreria compilata chiamata libmy\_lib90.a che risiede nell’indice /usr/class/sccm001/lib.

Supponiamo di aver scritto un programma per il calcolo dell’area di un triangolo che avremo chiamato triangolo.f90 a questo punto utilizzando il compilatore, vogliamo ottenere il file eseguibile; procediamo nel seguente modo:

1) Creiamo dapprima il file oggetto:

f90 -c triangolo.f90

Questo comando creerà un file triangolo.o.

2) Creiamo quindi il file eseguibile:

f90 -o triangolo.exe triangolo.o

Questo comando creerà il file triangolo.exe che rappresenta il file eseguibile cercato. A questo punto basterà digitare il nome del file senz estensione per lanciare il programma.

mercoledì 23 ottobre 2013

Come nominare un programma Fortran

Come nominare un programma Fortran
Come nominare un programma Fortran

Nel momento in cui andiamo a realizzare il nostro primo programma ci dobbiamo porre il problema di come nominare il nostro programma, in modo corretto e secondo quanto previsto dallle regole del linguaggio.

A tal proposito possiamo dire che nel Fortran per l’attribuzione dei nomi possono essere usati caratteri fino ad un massimo di 31 tra lettere, cifre e underscore; le parentesi quadre([ ]) sono usate per introdurre informazioni ausiliarie. 

La sintassi dell’istruzione program è la seguente: 

PROGRAM prova
............ 
............
............ 

END[PROGRAM[prova]] 

In questo modo avremo nominato il nostro programma con il nome prova.
Il fortran 90 non distingue tra lettere maiuscole e minuscole (cioè non è case sensitive) quindi le dichiarazioni seguenti sono errate: 

real :: a,A

in quanto producono un errore in fase di compilazione riferendosi alla stessa variabile che quindi viene vista dichiarata due volte.