Fortran per Ingegneri



Похожие документы
Operazioni di input e output in Fortran 90

Fortran per Ingegneri

Funzioni in C. Violetta Lonati

I file di dati. Unità didattica D1 1

Liberare la memoria allocata dinamicamente.

Introduzione al Linguaggio C

Matlab: Gestione avanzata dei file

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

RISOLUTORE AUTOMATICO PER SUDOKU

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Comandi di Input/Output in Matlab

Gli ARRAY in FORTRAN 90

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione

Introduzione al MATLAB c Parte 2

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Dalla a alla zeta: Guida facile ALCUNE NOTE SU COME UTILIZZARE vers. 1 Dicembre 2010 per le assicurazioni non profit

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Capitolo Silberschatz

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

Files da allegare. 1) Dati dell impresa da inserire nel file di tipo I riempendo la riga sotto le intestazioni dei campi:

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Corso di Fondamenti di Informatica

Vettori Algoritmi elementari di ordinamento

TEST: Word & Excel Tutti i diritti riservati. Computer Facile -

Leggere e scrivere dati da file

Fogli Elettronici: MS Excel

Dati importati/esportati

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

Lezione 5. Fogli di calcolo

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Leggere un messaggio. Copyright 2009 Apogeo

STAMPA UNIONE DI WORD

Lab 11 Gestione file di testo"

Introduzione al linguaggio C Gli array

Creare un Documento PDF impostando Acrobat

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Informatica - A.A. 2010/11

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Definire gli attributi dei blocchi

RICERCA DI UN ELEMENTO

Manuale Finecrypt Prima di proteggere i files è bene fare diverse prove perché un errore potrebbe rendere il file irrecuperabile.

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Prova di Laboratorio di Programmazione

Protezione. Protezione. Protezione. Obiettivi della protezione

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Sottosistema di Ingresso/Uscita (I/O)

Syllabus (estratto) Foglio elettronico. Excel. Open office - Office. Principio e funzionamento 26/11/2012. A. Ferrari

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

MODULO 02. Iniziamo a usare il computer

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Gestione dei File in C

OSSERVATORIO DEL TURISMO GUIDA AL SERVIZIO

Esercizio 1. Esercizio 2

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Esame del 3 febbraio 2010

L'ufficio di collocamento è un ufficio regionale di

Costruzione del layout in gino cms

Realizzare la planimetria dell ufficio con Visio 2003

Introduzione a Quantum GIS (QGIS) - passaggio dal software ArcView 3.x a software GIS OpenSource

ESEMPIO DI QUERY SUL FILE Formario_minuscolo

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 13 File Binari

Organizzazione degli archivi

IL LINGUAGGIO Visual Basic

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Test Excel conoscenze di Base

Descrizione di un algoritmo

SHOCKSMS SMS SENZA LIMITI. Invia SMS al tuo elenco di contatti in tempo reale. Basta un pc, una chiavetta internet ed una SIM telefonica

Salvare e importare dati

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Plate Locator Riconoscimento Automatico di Targhe

Calcolatori Elettronici Parte X: l'assemblatore as88

Esercizio 2. Client e server comunicano attraverso socket TCP

Raggruppamenti Conti Movimenti

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Alfabetizzazione Informatica. Prof. Giuseppe Patti

COME INVIARE AUTOMATICAMENTE LA POSTA ELETTRONICA CON DOCUSOFT

Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua

TECNOLOGIA SCUOLA PRIMARIA

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Guida alla personalizzazione dei documenti in formato Open Document (ODT)

Il memory manager. Gestione della memoria centrale

L analisi dei dati. Capitolo Il foglio elettronico

Capitolo 4 Pianificazione e Sviluppo di Web Part

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Транскрипт:

Fortran per Ingegneri Lezione 5 A.A. 0/04 Ing. Davide Vanzo davide.vanzo@unitn.it Ing. Simone Zen simone.zen@unitn.it ufficio: Laboratorio didattico di modellistica ambientale ( piano) Tel interno: 488

FILE PROCESSING I dati da processare sono immagazzinati all'interno di files. Si pone il problema di leggere questi dati, di processarli e di immagazzinare i risultati in un nuovo file. Nelle istruzioni WRITE(*,*) e READ(*,*) l'asterisco nella prima posizione indica dove andare a scrivere e da dove leggere i dati. * ----> indica la standard input/output device (sui pc sono la tastiera e il video). Spesso vengono usati anche il 5 per indicare la tastiera e il 6 per il video WRITE(6,*) ----> scrivi su video READ(5,*) ----> leggi da tastiera

ISTRUZIONE OPEN (apertura file) OPEN (open_list) La open_list è una lista di opzioni che contiene il numero dell'unità da aprire, il nome del file, e informazioni su come accedere al file. Le singoli opzioni sono separate da una virgola.

ISTRUZIONE OPEN (apertura file) Le 5 più importanti opzioni per l'istruzione open sono... unit indica il numero dell'unità associato al file da aprire unit = numero intero file specifica il nome del file da aprire file = è un valore carattere 4

ISTRUZIONE OPEN (apertura file) status indica lo status del file da aprire status = 'old' status = 'new' status = 'scratch'** status = 'unknown' status = 'replace' action specifica se un file deve essere aperto solo in lettura, solo in scrittura o entrambi action = 'read', action = 'write', action = 'readwrite', **file temporaneo (usare con cautela) 5

ISTRUZIONE OPEN (apertura file) iostat=inter_var indica il nome della variabile intera in cui viene inserito un numero intero che dice se l'operazione di open è stata eseguita correttamente o meno. inter_var = 0--> apertura/lettura corretta inter_var > 0 --> errore nella lettura o nel formato, inter_var < 0----> indica che è stata raggiunta la fine del file) INTEGER:: status OPEN(UNIT=8,FILE='esempio.dat',status='old',action='read', & iostat=status) Write(*,*)status 6

ISTRUZIONE CLOSE (chiusura file) Quando si finisce di utilizzare un file è buona norma chiudere il file lasciando libera così l'unità di i/o associata. ES: CLOSE(unit) 7

Apertura di un file di lunghezza ignota 8

9

Vettori e Matrici a più dimensioni (Terminologia) Un array (vettore o matrici a più dimensioni) permette di specificare con un nome ed un insieme di indici una serie di elementi in modo molto semplice. Ogni array ha un tipo ed ogni elemento è di tale tipo. La terminologia relativa agli array è la seguente: RANGO (RANK) - Numero di dimensioni A(n,m) ==> rank ; A(n,m,l) ==> rank= LIMITI (BOUNDS) - Limite superiore ed inferiore di ogni dimensione A(5,0) ==> lower bound = per entrambe le dimensioni ==> upper bound = 5 e 0 B(-:7, 0:) ==> lower bound = - per prima dim e 0 per seconda dim ==> upper bound = 7 e 0

Vettori e Matrici (Terminologia) ESTENSIONE (EXTENT) - Numero di elementi in ogni dimensione B(-:7, 0:) ==> extension = 0 per prima dim e per seconda dim GRANDEZZA (SIZE) - Numero totale di elementi B(-:7, 0:) ==> size = FORMA (SHAPE) - Rango ed estensione CONFORMI (CONFORMABLE) - Stessa forma

Array bidimensionali (rank=) Riga a a a a4 a5 Riga a a a a4 a5 Riga a a a a4 a5 Riga 4 a4 a4 a4 a44 a45 Col Col Col Col 4 Col 5 Sono utili quando si devono immagazzinare alcuni tipi di dati che sono funzione di più variabili indipendenti. ES : Misure di temperature in 4 differenti tempi in 5 sezioni diverse.

Lettura da file degli elementi degli array array_rank(4,) INITIAL.DAT 4 5 6 7 8 9 9 Per ogni riga i, leggo i elementi sulle colonne 4 7 5 8 9 6 9 REAL, DIMENSION(4,) :: array_rank! Questo è un array di dimensione > rank= OPEN (7,FILE='initial.dat'STATUS='old',ACTION='read') do i =,4 READ(7,*) array_rank(i,),array_rank(i,),array_rank(i,) end do

Lettura da file degli elementi degli array Lettura con istruzione READ INITIAL.DAT INTEGER, DIMENSION(4,) :: istat OPEN (7,FILE='initial.dat'STATUS='old',ACTION='read') READ(7,*) istat In assenza di istruzioni diverse, i dati vengono letti in colonna INTEGER, DIMENSION(4,) :: istat 4

Lettura da file degli elementi degli array Lettura con istruzione READ INITIAL.DAT INTEGER::i,j INTEGER, DIMENSION(4,) :: istat OPEN (7,FILE='initial.dat'STATUS='old',ACTION='read') READ(7,*) ((istat(i,j),j=,),i=,4) 5

Array subset A = 4 7 5 8 9 A(:,)= 4 7 A(,:)= 0 0 real,dimension(4,)::a Somma = sum(a(:,)) =.0 (reale) massimo = maxval(a(:,)) =.0 (reale) pos_min = minloc(a(,:)) = (intera) 6

Array multidimensionali Il fortran suporta al massimo array che al massimo hanno 7 subscript, cioè rank=7 REAL, DIMENSION (0,0,0):: array_ REAL, DIMENSION (0,0,0,0):: array_ REAL, DIMENSION (0,0,0,50,50,00):: array_ REAL, DIMENSION (5,7,,,,,):: array_max_rank 7

Funzioni intrinseche per array Elemental intrinsic function REAL,DIMENSION(4):: x=(/0.,.459,.,./) REAL, DIMENSION(4)::y INTEGER:: i y = sin(x)!operazione su intero array DO i=,4 y(i) = sin(x(i))!operazione elemento per elemento END DO 8

Funzioni intrinseche per array Inquiry functions ALLOCATED(array) Determina lo stato di allocazione LBOUND(array,DIM) Indica i lower bound di array UBOUND(array,DIM) Indica gli upper bound di array SHAPE(array) Ritorna la forma di array SIZE(array,DIM) Ritorna l'estensione di array 9

Funzioni intrinseche per array Transformational intrinsic function DOT_PRODUCT(vector_a,vector_b) :: calcola il prodotto di due array con size = MATMUL(matrix_a,matrix_b) :: prodotto matriciale MAXLOC(array):: ritorna la locazione del massimo di array MINLOC(array):: ritorna la locazione del minimo di array MAXVAL(array):: ritorna il valore massimo di array MINVAL(array):: ritorna il valore minimo di array SUM(array):: calcola la somma degli elementi di un array 0

ESERCIZIO Leggere 0 dati contenuti in un file (che dovete generare) e calcolare la media e la deviazione standard. Scrivere i risultati in un file di output. ESERCIZIO Leggere i dati di portata contenuti nel file 'portata.txt' ( colonne n righe) e salvarli in array time (INTEGER, rango ) e Q (REAL, rango ). Calcolare: - portata media giornaliera (mc/s) - portata massima giornaliera (mc/s) e ora - portata minima giornaliera (mc/s) e ora - rapporto tra portata massima e minima giornaliera (-) Scrivere i risultati in un file di output.