Il Linguaggio Fortran 90: 1. Preliminari

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

LINGUAGGIO DI PROGRAMMAZIONE C
Informatica Generale Susanna Pelagatti
Fondamenti di Informatica
Process synchronization
Rappresentazione di Numeri Reali
Informatica 22/03/2012.
Introduzione al linguaggio C
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Introduzione al linguaggio C
Dall’Algoritmo al Programma
Il linguaggio C Gli operatori e le espressioni C Language
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Funzioni definite dall’utente
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
Algebra di Boole ed elementi di logica
File.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Corso di Informatica per Giurisprudenza
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Fondamenti di Informatica
Introduzione alla programmazione lll
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Organizzazione del corso
Laboratorio di Calcolo I 1) Introduzione Università Roma Tre Corso di Studi in Fisica AA 2002/03.
Strutture di controllo in C -- Flow Chart --
Dichiarazioni e tipi predefiniti nel linguaggio C
I File.
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Programmazione in Java
CONVERSIONE NUMERI INTERI CON COMPLEMENTO A DUE. I computer di oggi effettuano ogni tipo di operazione numerica, ma le prime ALU degli anni 50 erano in.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
VARIABILI E COSTANTI INTEGER
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
14 marzo 2002 Avvisi:.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 2 (Deitel) Introduzione alla programmazione in C Indice degli argomenti Introduzione 2.2 -
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Lezione 3 Struttura lessicale del linguaggio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
Process synchronization
1 Parte 3 Fondamenti di programmzione. 2 Cosa è Java Linguaggio di programmazione familiare Simile a C e C++ Linguaggio di programmazione orientato a.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
Transcript della presentazione:

Il Linguaggio Fortran 90: 1. Preliminari Stefano Leonardi, Egidio Palaia Dipartimento di Informatica e Sistemistica

Informazioni sulla Didattica Stephen J. Chapman, Fortran 90/95: guida alla programmazione, McGraw-Hill, 2000 M. Cadoli, Dispensa per il Corso di Laurea in Ingegneria Aereospaziale, A.A. 2000-2001, In distribuzione presso la libreria ``L'Universitaria'', Viale Ippocrate 99, Roma. Compilatore Fortran 90: ELF 90 I programmi illustrati in seguito sono in parte tratti dalla Dispensa di M. Cadoli e dal libro di S. Chapman. Ricevimento: Venerdì ore 11-13, via Salaria 113, II piano, Stanza 227 http://www.dis.uniroma1.it/~leon/didattica/meccanica/

Avvertenze Queste trasparenze intendono aiutare lo studente nel seguire lo svolgimento degli argomenti svolti a lezione. Queste trasparenze non sono considerate sostitutive dei testi in cui sono trattati gli argomenti del Programma del Corso. Queste trasparenze possono contenere errori ed imprecisioni che possono essere riportati scrivendo a leon@dis.uniroma1.it

Un primo programma Fortran ! File: ciao.for PROGRAM ciao ! Questo programma stampa un messaggio sullo schermo WRITE (*,*) 'CIAO MONDO!' STOP END PROGRAM ciao Ogni programma inizia con la parola chiave PROGRAM seguita dal nome del programma L’istruzione END PROGRAM deve essere seguita dal nome del programma

Compilazione ed Esecuzione > elf90 ciao.for Crea il file in oggetto ciao.obj > elf90 ciao.obj Crea il file eseguibile ciao.exe > ciao Esegue il programma

Struttura di un programma Fortran ! File: variab.for ! ! Scopo: illustrare la dichiarazione e l'uso di variabili PROGRAM variabile ! Questo programma legge un numero intero da tastiera e lo stampa sullo ! schermo ! *** SEZIONE DICHIARATIVA *** ! IMPLICIT NONE ! questa dichiarazione e' obbligatoria. E’ la prima istruzione INTEGER :: numero ! questa e' la dichiarazione di una variabile ! *** SEZIONE ESECUTIVA *** ! WRITE(*,*) 'Inserisci un numero intero, poi schiaccia il tasto RETURN: ' READ(*,*) numero ! lettura di un valore intero da tastiera WRITE(*,*) 'Hai inserito il numero ', numero STOP END PROGRAM variabile

Identificatori Fortran Nomi utilizzati per indicare le variabili, le costanti ed i nomi di un’unità di programma Regole per la formazione dei nomi: Al più 31 caratteri Lettere alfabetiche: abcd…ABCDE… Cifre: 012…. Il carattere di sottolineatura: _ Identificatori validi: conta, zzzzeta1, numero_elementi Identificatori non validi: A$, esempio-non-valido Fortran è Case Insensitive Stile di Programmazione: minuscole per variabili, maiuscole per parole chiave del Fortran (ex: PROGRAM, INTEGER)

Variabili Fortran numero 5 E’ un tipo di dato che viene modificato durante l’esecuzione di un programma. Una variabile è associata ad una locazione di memoria che memorizza ad ogni passo dell’esecuzione del programma il valore corrente della variabile. numero 5

Uso delle variabili in Fortran L’istruzione IMPLICIT NONE impone che tutte le variabili che vengono utilizzate siano precedentemente dichiarate indicando il nome ed il tipo. L’identificatore della variabile ne indica il valore. Il valore di una variabile è inizialmente non definito. Il valore di una variabile è modificato attraverso l’uso dell’Istruzione di Assegnazione

Esempio di Istruzione di Assegnazione ! File: assegnaz.for ! Scopo: illustrare l'istruzione di assegnazione PROGRAM assegnazione ! Questo programma effettua varie operazioni su due ! variabili intere ! *** SEZIONE DICHIARATIVA *** ! IMPLICIT NONE INTEGER :: num1, num2 ! questa e' la dichiarazione di due variabili ! *** SEZIONE ESECUTIVA *** ! WRITE(*,*) 'Inserisci due numeri interi, poi schiaccia il tasto RETURN: ' READ(*,*) num1, num2 WRITE(*,*) 'Hai inserito i numeri ', num1, num2 num1 = num2 * 10 ! assegnazione alla variabile num1 WRITE(*,*) 'Le variabili ora valgono: ', num1, num2 STOP END PROGRAM assegnazione

Costanti in Fortran Tipo di dato i cui valori non mutano durante l’esecuzione del programma. INTEGER, PARAMETER :: max_num=100 !Dichiarazione di una costante intera Costanti intere possono assumere numeri positivi e negativi. Ex: +10, 0, +30 Possono essere nell’intervallo [-2**31, 2**31-1] Costanti sono utilizzate solo nella parte destra di un’espressione insieme a variabili e ad operatori

Istruzione di Assegnazione nome_variabile = espressione Ex: num1 num2 num1=7 7 -- num2=num1+10 7 17 num1=num1+3 10 17 num2=num2+num1 10 27 num1=num1+max_num 110 27

Espressioni Intere Operatori binari: Operatori unari: +, -, *,/, ** Operatori unari: +, - 1. Non è possibile affiancare due operatori: a*-b  a*(-b); a**-ba**(-b) 2. Moltiplicazione implicita non ammessa x(y+z)x*(y+z) 3. Parentesi permettono di raggruppare i termini delle espressioni. Priorità ai termini all’interno delle parentesi 2**((8+2)/5)= 2**(10/5)=2**2=4 4. Divisione tra interi, troncamento all’intero inferiore: 8/5=1

Uso di variabili e costanti reali ! File: cerchio.for PROGRAM area_cerchio ! Questo programma legge il raggio di un cerchio (reale positivo) e ! calcola i valori di circonferenza e area IMPLICIT NONE REAL, PARAMETER :: pi = 3.141592 ! dichiarazione di una costante con nome REAL :: raggio, area, circonferenza ! dichiarazione di variabili WRITE (*,*) 'Raggio del cerchio? ' READ (*,*) raggio circonferenza = 2 * pi * raggio area = pi * raggio * raggio WRITE (*,*) 'Circonferenza : ', circonferenza WRITE (*,*) 'Area : ', area STOP END PROGRAM area_cerchio

Espressioni Reali Una costante reale è un numero che contiene cifre decimali. Numeri reali possono essere scritti con o senza esponente. Numeri reali senza esponente: 1.,-10., 7.5, 0., -99.6 Numeri reali con esponente: <mantissa>E<esponente> Ex: 0.123E+6, -999.0E-4, 123.4E-6 Reali rappresentati con 32 o 64 bit. Se la parola è di 32 bit, 24 per la mantissa e 8 per l’esponente. Il numero di bit per la mantissa indica la massima precisione rappresentabile.

Operazioni con numeri reali Generano un risultato reale. Ex: 1./4.=0.25, 1./3.=.3333333 Gerarchia tra operazioni: Operazioni interne alle parentesi, dalle più interne alle più esterne Elevazioni a potenza, da dx verso sx Moltiplicazioni e divisioni, da dx verso sx Addizioni e sottrazioni, da dx verso sx

Esempio a=3. b=2. c=5. d=4. e=10. f=2. g=3. output=a*(b+c)*(d+e)/f**g = 3.*7.*14./2.**3. = 3.*7.*14./8. = 294./8. = 36.75

Operazioni miste con numeri interi e reali Operazioni in cui compaiono numeri reali ed interi I numeri interi vengono trasformati in numeri reali ed il risultato è reale. La conversione avviene quando un numero reale ed uno intero compaiono nella stessa operazione secondo le regole di valutazione di un’espressione. Ex: 1. + 1/4 = 1. 1+1./4=1.25 INTEGER :: n n = 1.25 + 9/4 ! n=3 REAL :: n n = (3 + 4)/2 ! n=3.

Variabili di Caratteri e Stringhe Assegnazione a variabile di caratteri: variabile di caratteri = espressione di caratteri Espressione di caratteri sono formate da variabili, costanti ed operatori su caratteri. Costanti di caratteri o Stringhe: ‘costante di caratteri’, “ABCDEFGHI” Dichiarazione di variabili di caratteri: CHARACTER (lunghezza=20) :: nome = ‘federico’ La parte in eccesso nell’assegnazione viene troncata: CHARACTER (lunghezza=3) :: est_file est_file = ‘FILE01’ ! est_file=FIL

Sottostringhe CHARACTER (len=8) :: str, str_1 str = ‘1234567’ WRITE(*,*) str_1 ! Stampa ‘234’ PROGRAM test CHARACTER (len=8) :: a,b,c a = ‘ABCDEFGHIJ’ b = ‘12345678’ c = a(5:7) ! c = ‘EFG’ b(7:8) = a(2:6) ! b = ‘123456BC’ END PROGRAM test

Operatori su Stringhe Operatore di Concatenazione: // PROGRAM test CHARACTER (len=10) :: a CHARACTER (len=8) :: b,c a = ‘ABCDEFGHIJ’ b = ‘12345678’ c = a(1:3) // b(4:5) // a(6:8) ! c = ‘ABG45FGH’ END PROGRAM test

Input/Output con Formato libero Unità di Input: Tastiera, File Unità di Output: Monitor Stampante Legge i valori in Input in un insieme di variabili: READ(*,*) lista_input I due asterischi indicano l’unità di Input standard e il formato indirizzato da lista, cioè le variabili nella lista determinano il tipo di dati in Input PROGRAM esempio_di_input INTEGER :: i, j REAL :: a CHARACTER (len=12) :: testo READ (*,*) i, j, a, testo END PROGRAM esempio_di_input

Inizializzazione delle variabili Le variabili devono sempre essere inizializzate prima di apparire in un’espressione. PROGRAM init INTEGER :: i WRITE(*,*) i ! i non definita END PROGRAM init PROGRAM init_1 INTEGER :: i, j i = 1 READ (*,*) j WRITE (*,*) i, j ! I definita END PROGRAM init_1

Inizializzazione delle variabili (continua) L’inizializzazione può anche avvenire all’interno dalla dichiarazione delle variabili. PROGRAM init_2 INTEGER :: i = 1 WRITE (*,*) i END PROGRAM init_2