Operazioni base di Input e Output

Documenti analoghi
Le operazioni di Input e Output

Esercizi. Fortran 90[/95] Algoritmo di Newton. Esercizi. Algoritmo di Newton: Progetto

Operazioni di Input/Output

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

r fattore di ripetizione w ampiezza di campo m numero minimo cifre da visualizzare d numero cifre decimali Print e Read I/O in Fortran sintassi

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

File binari e file di testo

Breve guida al linguaggio FORTRAN 77

Input/Output. Console e File.

Rappresentazione di interi

LabVIEW parte II. Ing. Gianfranco Miele November 3, 2010

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++

Descrittori di formato

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Variabili intere, funzioni e input/ Alessandra Giordani Lunedì 19 marzo

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

ciclo di vita della soluzione (informatica) di un problema

Costrutti condizionali e iterativi

Introduction to modern Fortran

Costrutti condizionali e iterativi

Descrittori di formato. n di cifre a destra del punto decimale n di spazi da saltare fattore di ripetizione larghezza del campo

Introduction to modern Fortran

Gestione di files Motivazioni

LESSICO E SINTASSI DEL PASCAL

Operazioni di input e output in Fortran 90

Cosa serve per cominciare?

Istruzioni condizionali di diramazione in Fortran 90

Gestione dei File. Credits Prof. Campi

Input/Output di numeri

INPUT E OUTPUT DI VALORI NUMERICI

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

L utility Unix awk [Aho-Weinberger-Kernighan]

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza

I files in C. A cura del prof. Ghezzi

Introduzione alla programmazione in linguaggio C

Programmazione in Java (I modulo) Lezione 5: Più dettagli su Input e Output La classe String L'istruzione while

Fondamenti di Informatica T-1

Corso di Informatica A.A

Sistemi Operativi Teledidattico

Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions

Capitolo 3. Input/Output formattato

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

PASCAL. 05/04/2012 Pascal 1

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.

Input Output. Massimiliano Guarrasi, CINECA

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

INPUT/OUTPUT INPUT/OUTPUT

I file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd

Corso sul linguaggio Java

Laboratorio di Programmazione

Fortran per Ingegneri

L AMBIENTE CODE BLOCKS E L IO

Input output. Andrea Passerini informatica. Input output

Unità B1 Programmazione base

Tipi di dato semplici

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

La sezione di dichiarazione delle costanti 1.2 I tipi elementari Classificazione dei tipi Il tipo integer Il tipo boolean

Introduzione al C++ (continua)

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Processore Danilo Dessì. Architettura degli Elaboratori.

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>}

28/02/2014 Copyright V. Moriggia

Variabili e Istruzioni

INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL. Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio.

Corso di Fondamenti di Informatica

STRUTTURA DI UN PROGRAMMA C

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Sviluppare un programma in FORTRAN

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Tipi di dato semplici

Ing. Lorenzo Vismara

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

INPUT/OUTPUT. L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura

STRUTTURE DI CONTROLLO DEL C++

Ingresso ed Uscita in C. Informatica 1 / 15

INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura.

6 Typedef, matrici e codifica

STRUTTURA DI UN PROGRAMMA C

Parte 1: tipi primitivi e istruzioni C

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Corso sul linguaggio C

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

LETTURA E SCRITTURA DI FILE

4. I moduli in Access 2000/2003

Transcript:

Operazioni base di Input e Output Introduction to modern Fortran Maurizio Cremonesi, CINECA Maggio 2016

Input e Output Il salvataggio dei dati su disco e la loro lettura è possibile dopo aver generato un "collegamento" tra le aree disco ed il programma. Accanto alle unità di I/O corrispondenti ad aree disco esistono unità predefinite, che corrispondono a dispositivi di I/O particolari, quali stampanti, schermi, tastiere.

Input e Output Un programma legge il valore delle variabili dall esterno (INPUT), le elabora, quindi scrive i risultati verso l esterno (OUTPUT) Input e Output di norma leggono e scrivono da/verso file Il file deve essere preventivamente indicato e associato a una file unit Tutte le operazioni di I/O fanno riferimento alla file unit

Input e Output OPEN (FILE = mydata.in,unit=3) READ (UNIT=3,*) date WRITE (UNIT=4,*) results CLOSE (UNIT=3) 5 std-in 6 std-out 0, 3 std-err Non serve OPEN

L istruzione READ L istruzione READ serve per la lettura di dati (input) Sintassi: READ (elenco clausole) {input} dove le clausole principali sono: UNIT = numero (* = unit5 std-in) FMT = formato (* = variabledriven) IOSTAT = valore (opzionale) END = valore_label(opzionale) Read (*,*) ncasi

L istruzione READ Le clausole devono essere riportate con il loro nome. Esempio 1: READ (UNIT=41,FMT="(F10.2)",END=99) anno Possono fare eccezione UNIT e FMT purché siano, rispettivamente la prima e la seconda clausola. Esempio 2: READ (41,"(F10.2)",END=99) anno Esempio 3: READ (41,"(3(F10.2))",END=99) aa,mm,gg

L istruzione READ La clausola UNIT rappresenta l'unità su cui si vuole operare per leggere o scrivere dati. Spesso è associata ad un filea cui è necessario accedere con l istruzione OPEN. L'uso dell'asterisco indica la periferica di default (std-in): Esempio 1: READ (*,"(F10.2)",END=99) anno

L istruzione READ La clausolafmt determina il formato dei dati da leggere o scrivere. Il formato può essere specificato all'interno dell'istruzione di lettura/scrittura (esempio 1) oppure richiamando l istruzione FORMAT tramite un'etichetta(2). Esempio 1: READ (41,"(8X, I4)",END=99) anno Esempio 2: READ (18, 60) anno 60 FORMAT (8X, I4) Esempio 3 CHARACTER (*), parameter :: fmt1="(8x, I4)". READ(*, FMT=fmt1) anno

L istruzione READ L'uso dell'asterisco come formato indica che i dati sono letti in formato libero. Esempio: READ (*, *) anno La clausola IOSTAT ritorna un valore intero, indicativo dell esito della lettura(0 in caso di successo) Si può specificare in END l etichetta a cui passare il controllo dell esecuzione nel caso in cui la lettura giunga al termine del file.

L istruzione WRITE L istruzione WRITE serve per la scrittura di dati (output) Sintassi: WRITE (elenco clausole) {output} dove le clausole principali sono: UNIT = numero (* = unit6= std-out) FMT = formato (* = variabledriven) IOSTAT = valore (opzionale) WRITE(*,*) Hello World

L istruzione WRITE Le clausole hanno lo stesso significato e utilizzo delle clausole omonime dell istruzione READ. ERR specifica il valore di un etichetta a cui passare il controllo dell esecuzione nel caso in cui vi sia un errore in fase di scrittura.

L istruzione WRITE Esempio 1: WRITE (*, *) anno Esempio 2: WRITE (41,"(8X,I4)",ERR=99) anno Esempio 3: WRITE (18, 60) (anni(i),i=1,10) 60 FORMAT (8X,I4)

L istruzione PRINT Solamente per la scrittura a standard output esiste anche l'istruzione PRINT con una sintassi molto più semplice: PRINT format, {output} Esempio: PRINT *, anno

Esercizi 1. Scrivere un programma che legga dati da tastiera e li scriva a video. Utilizzare il formato libero 2. Al programma precedente, aggiungere la stampa del valore diiostat, sia per le istruzioniread, sia per le istruzioni WRITE.

L istruzione OPEN L'istruzione OPEN realizza un collegamento tra le aree disco e il programma, associando un determinato file ad un numero. Questo numero, chiamato unit (unità di I/O) da quel momento in poi individua quel file in tutte le operazioni di I/O(fino al CLOSE). Sintassi: OPEN (elenco clausole) dove le clausole principali sono: UNIT = numero (necessaria) FILE = nome (necessaria) STATUS = stringa ACTION = stringa IOSTAT = valore

L istruzione OPEN UNIT indica il numero di unità associato al file: sarà lo stesso numero da indicare come UNIT nelle istruzioni di READ o WRITE. FILE indica il nome delfile a cui si deve accedere (comprensivo di path, anche relativo). Lo stesso file non può essere connesso a 2 unità diverse. Esempio: OPEN (UNIT=100, FILE="input.dat") WRITE(100,*) anno

L istruzione OPEN IOSTAT restituisce alla variabile indicata un numero intero: quando è pari a zero, l'operazione richiesta ha avuto successo, se invece è un valore positivo, l'operazione di apertura del file è fallita. STATUS indica se il file da aprire deve esiste già oppure se deve essere creato o deve rimpiazzarne uno esistente. I soli valori possibili sono: OLD, REPLACE, NEW, SCRATCH, UNKNOWN

L istruzione OPEN ACTION indica la modalità con cui operare su quel file, ovvero sesiagiràinsolalettura,insolascritturaoinentrambiimodi. I soli valori possibili sono: READ, WRITE, READWRITE Esempio: OPEN (UNIT=100, FILE="input.dat", STATUS="OLD", ACTION="READ", IOSTAT=var)

L istruzione CLOSE CLOSE chiude l'unità e libera il numero associato ad essa. Se tale istruzione non viene usata, al termine del programma l'unità viene chiusa automaticamente. Sintassi: CLOSE (elenco clausole) dove le clausole principali sono: UNIT = numero (necessaria) STATUS = stringa

L istruzione CLOSE STATUS indica se mantenere o rimuovere il file dopo la sua chiusura. I soli valori possibili sono: KEEP, DELETE Esempio: CLOSE(UNIT=100,STATUS="KEEP) CLOSE(100,STATUS="KEEP )

Esercizi 3. Scrivere un programma che legga dati da tastiera e li scriva su un file. Utilizzare il formato libero 4. Scrivere un programma per la conversione di una qualsiasi temperatura da gradi Fahrenheit in gradi Kelvin e Celsius. Leggere il dato di temperatura da un file e stampare i risultati sul video. Conversione in gradi Kelvin: temp_k = (5. / 9.) * (temp_f - 32.) + 273.15 Conversione in gradi Celsius: temp_c = temp_k - 273.15

Formato I valori delle variabili sono mantenute come stringhe di bit che vengono interpretate in modo diverso a seconda del tipo della variabile(formato BINARIO). Durante le operazioni di I/O spesso è necessario trasformare il formato BINARIO in un formato leggibile(formattato). Questa conversione può avvenire in diversi modi e viene comandata tramite il campo FORMAT

Formato Il formato dei dati nelle istruzioni di input e output può essere specificato: con l istruzione FORMAT, preceduta da una label 100 FORMAT (10x, i3) all interno dell istruzione READ/WRITE FMT="(I3, 2x, F10.2)"

Descrittori del formato In entrambi i casi la sequenza del formato è costituita da una serie di descrittori dei dati e di funzioni di controllo che specificanoqualisonoitipididaticheverrannolettioscrittie in che modo dovranno essere disposti (per esempio, su quante righe, con quale intervallo ). Una cifra posta prima del descrittore indica quante volte deve essere ripetuto il descrittore in oggetto (fattore di ripetizione).

Descrittori del formato Descrittori di base: w = massimo numero di caratteri utilizzabili; m = minimo numero di caratteri utilizzabili; d= numero di cifre a destra del punto decimale; e = numero di cifre dell'esponente.

L istruzione READ Le lettere maiuscole indicano: I=numeriinteri E = numeri reali nel formato esponenziale F= numeri reali L= dati logici, può indicare solo T (true) o F (false) A = stringhe di caratteri G= generico

Descrittori del formato Tra i descrittori di formato è possibile inserire: /= indica di passare a nuova riga (andare a capo) nx= sposta il cursore di n spazi bianchi. WRITE (100, 10) "La media ottenuta e' ", val_med 10 FORMAT (1X, A, F10.5) oppure: WRITE (100, "(1X, A, F10.5)") "La media ottenuta & &e' ", val_med 123456789.123456789.123456789.123456789. La media ottenuta e -375.12345

Descrittori del formato Esempio: WRITE (100, 20) I dati sono:, & a,b,c, La media ottenuta e' ", val_med 20 FORMAT (1X, A, 3(F10.5,1x), /, A, F10.5) WRITE (100, 20) a,b,c 20FORMAT (f10.3)

Esercizi 5. Ripetere gli esercizi precedenti introducendo i descrittori di formato.