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

Documenti analoghi
Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Gestione di files Motivazioni

Architettura degli elaboratori Docente:

Linguaggio C: introduzione

Input/output in C e in C++

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Esercizio 1: archivio CD e DVD

Esercitazione 4. Comandi iterativi for, while, do-while

Introduzione al linguaggio Fortran 90

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

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

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

Definizione di metodi in Java

Problema: calcolare il massimo tra K numeri

FILE BINARI FILE BINARI

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

4 GLI ARRAY E LE STRINGHE

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

La rappresentazione delle informazioni

Laboratorio di Elementi di Bioinformatica

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Elementi base per la realizzazione dell unità di calcolo

Mirko Mariotti. March 9, 2009

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Individuazione di sottoproblemi

Vademecum inserimento Modello Organizzativo attraverso

Esercizi per il recupero del debito formativo:

Procedura operativa per la gestione della funzione di formazione classi prime

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

PROGRAMMAZIONE STRUTTURATA

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE

U.T.E FOGLIO ELETTRONICO. Università della Terza Età. Sede di Novate Milanese. Corso Informatica Approfondimento. Docente: Giovanni Pozzi

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

GUIDA RAPIDA PER LA GESTIONE DELLE ADOZIONI LIBRI DI TESTO 2016/2017

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Manipolazioni elementari di flussi di testo strutturati

Quick Print. Quick Print. Guida Utente. Copyright 2013 Hyperbolic Software.

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Supporto On Line Allegato FAQ

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Allocazione Dinamica della Memoria

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

GENERATORE DI MATRICI COMMUTATIVE

La programmazione nel linguaggio C

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Istruzioni di ripetizione in Java 1

Shell BASH. Variabili Redirezione

COSA SONO I FLOW CHART

Laboratorio di Informatica L-A 1. ne: M se macchina, P se parte Nel caso di macchina seguono: L identificatore

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.

SCADENZIARIO. Manuale

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2014

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

PAG. 1 DI NOV 2005 ESTRATTI DI MAPPA MANUALE PER L'UTENTE

DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI

VISUAL BASIC FOR APPLICATION

Modulo 17: Invio del BF tramite

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Strutturare il codice: sottoprogrammi

5.16 Aggiornamento automatico Contesti scuola

Informatica Teorica. Macchine a registri

TUTORIAL LIBRI IN SIMBOLI

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Currency Converter (conversione di valute)

Introduzione al C. Stream e disk file

ATTENZIONE! Per completare la procedura di accesso è indispensabile eseguire la sincronizzazione del Token (vedi punto 1.10).

La codifica. dell informazione

IL MIO PRIMO IPERTESTO CON POWERPOINT

COSTRUZIONE DI UN APPLICAZIONE

LP1 Lezione 13: i File in C. Maurizio Tucci

Introduzione alla programmazione. Walter Didimo

Guida Compilazione Questionario SCUOLA DELL INFANZIA PARITARIA

AGGIORNAMENTO SOFTWARE

NUVOLA COMUNICAZIONI

Codifica dell Informazione

Introduzione alle macchine a stati (non definitivo)

Esercitazione 3. Espressioni booleane I comandi if-else e while

OPERAZIONI CHIUSURA E APERTURA Note operative

Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS

Manutenzione periodica al PIANO DEI CONTI

Via Oberdan, 42, Faenza (RA) Italy Tel.: Fax: WAVE MODE MOBILE GUIDA RAPIDA

Programma Richiesta riproduzione RFID versione 1.0

Strutture Dinamiche. Fondamenti di Informatica

Transcript:

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza I file esterni Assign flessibile I file di tipo text I/O bufferizzato La procedura page Creazione, Stampa, Travaso, Conteggio delle linee di un file di tipo text Editazione a cura di Aprile S. e D Onghia V. 1

I FILE ESTERNI I file esterni esistono sia prima del programma ( da cui sono ispezionati ) che dopo (nel caso siano generati dal programma stesso ) : sono permanenti. La intestazione di programma deve contenere la lista dei file esterni usati. La connessione fra il nome del file logico ( quello della variabile file che compare allo interno del programma ) e il nome del file fisico ( nome del file su disco) è dipendente dall implementazione, ossia non è standard. < parametri di programma > : : = < identificatore > < parametri di programma >, < identificatore > I parametri del programma sono le variabili file e rappresentano gli argomenti (dati in ingresso ) ed i risultati (uscita ) della elaborazione, essi denotano entità che esistono esternamente al programma e attraverso i quali il programma comunica con l ambiente (lo si può considerare come una specie di procedura chiamata dal sistema operativo ). Esempi di intestazione di programma PROGRAM prova ; PROGRAM prova ( output ) ; PROGRAM prova ( input, output ) ; PROGRAM prova ( input, output, f ) ; PROGRAM prova ( input, output, f, g ) ; 2

La intestazione di un programma è la INTERFACCIA di comunicazione con l esterno. PROGRAM prova ( input, output, dati ) Serve a specificare - l inizio del programma - il nome del programma - quali e quanti file vengono usati si tratta di file che sono già stati creati in precedenza (conterranno dati di ingresso per il programma ) oppure che dovranno essere creati dal programma (costituiscono risultati del programma ). E consigliabile controllare tramite una DIR la loro effettiva presenza sul supporto di memoria esterna. 3

Per assegnare il nome fisico di un file da associare alla variabile FILE si può usare l ASSIGN : - all interno del programma Pascal - prima della inizializzazione RESET/REWRITE relativa a quei file assign ( nomevariabilefile, stringa ) dove stringa deve essere un nome di file del DOS. ESEMPIO assign ( f, b: archivio ) sul dischetto in B: ci sarà un file di nome archivio senza estensione OPPURE (dipende dal File System) si può specificare il nome quando si manda in run il programma f: b:archivio PRIMA DI RIUSARE UN FILE BISOGNA CHIUDERLO CON LA CLOSE Close ( nomefile ) chiusura del file nomefile NON E STANDARD SPECIFICA CHE SONO TERMINATE LE OPERAZIONI DI SCRITTURA DEL FILE e ha come effetto l aggiornamento nel file fisico esterno a cui la variabile file è stata associata mediante l ASSIGN, se è un file di uscita sarà scritto il carattere < eof > alla fine del file. Per leggere il contenuto di un file creato in precedenza nello stesso programma bisogna prima chiudere il file e poi aprirlo in lettura 4

Si può fare un ASSIGN flessibile nel modo seguente: PROGRAM esempio ( input, output, a, b ) ; VAR a, b : file del programma Nomea, nomeb : string [ 12 ] Packed array [ 1.12 ] of char ; Write ( nome del file sorgente? ) Readln ( nomea ) ; write ( nome del file di destinazione? ) readln ( nomeb ) ; ASSIGN ( a, nomea ) ; ASSIGN ( b, nomeb ) ; xxxxxxxx.xxx 8 1 3 = 12 caratteri (ricordiamo che STRING non è standard!!) In TURBO se usiamo la stringa nulla come nome nell ASSIGN : tastiera Generalmente in ambiente UNIX o MacIntosh le procedure reset e rewrite sono estese per consentire anche la connessione all interno del main ES. rewrite ( output, DATI.OUT ) 5

TEXTFILE TEXT è un tipo di file predefinito in Pascal. Le componenti di un file di tipo TEXT sono i caratteri del Pascal ( tipo char ) ed un carattere speciale detto marcatore di fine linea ( end of line mark ). Il marcatore di fine linea permette di raggruppare sequenze di caratteri in linee. ESEMPIO VAR infile, outfile : text e VAR infile, outfile : FILE OF char differiscono, poichè text è organizzato in linee. ( I file standard input ed output sono file di tipo text ) Oss. La variabile buffer di qualsiasi file di tipo text è di tipo char 6

ESEMPIO DI TEXTFILE l a v i s p a t e r e s a eoln a v e a A eoln eof 1 linea fine file I textfile sono utilizzati per realizzare la COMUNICAZIONE fra i programmi e l esterno Possiamo usare un file text che contenga i dati di ingresso per il nostro programma : il nostro programma dovrà leggere i dati da tale file invece che dalla tastiera. Possiamo far scrivere i risultati di un nostro programma su un file text invece che sullo schermo : il file con i risultati potrà essere stampato in seguito. 7

Su un file di tipo text sono applicabili : - reset, rewrite, get (non in TURBO), put (non in TURBO), read, write, eof e writeln (nomefile) appende un marcatore di fine linea al file nomefile : = chr(13) (ascii) put ( nomefile ) readln ( nomefile) ignora i caratteri del file fino a trovare un marcatore di fine linea e si posiziona sulla nuova linea while not eoln ( nomefile) do get ( nomefile ) get ( nomefile ) eoln ( nomefile) funzione booleana produce il valore TRUE se ci si trova su un marcatore di fine linea, altrimenti FALSE 8

I file standard input e output - sono di tipo text - non è necessario dichiararli nella VAR - per convenzione ad input si applicano operazioni di lettura ( get, read, readln ) ad output di scrittura ( put, write, writeln ) - la reset e la rewrite sono implicitamente applicate - tutte le procedure e funzioni standard applicabili ai files in Pascal assumono implicitamente input o output come files su cui operare qualora venga omesso il nome del file. VAR input, output : text due variabili file Predichiarate Destinate alla Comunicazione Connessi generalmente alla tastiera e al video 9

Le operazioni di ingresso e di uscita non sono altro che operazioni di lettura ( da input ) e operazioni di generazione ( di output ) di file di testo implicitamente definiti nel programma VAR x : char ; Begin read ( x ) x: input ; equivale a read ( input, x ) get ( input ) si può omettere End Begin write ( x ) input : = x ; equivale a write ( output, x ) put ( output ) si può omettere End 10

tastiera input / output 3 buffer input tasto premuto dall utente il programma attende che l utente introduca il valore per num da tastiera cioè da input Read ( num ) PROGRAMMA lettura del buffer effetto : num 3 PROGRAMMA m = 18 ; write ( m ) Scrittura sul file output 18 BUFFER OUTPUT 18 VIDEO Effetto : visualizza il valore di m 11

I numeri, sia di tipo integer che real, non possono essere direttamente letti e scritti sui file di testo ( vale per qualunque textfile ) senza operazioni di CONVERSIONE! Le operazioni di conversione sono nascoste nelle procedure read e write! VAR x : = integer read ( x ) 1 2 7 Convertito rappr. interna x l elemento di un file input è un carattere write ( x ) rappr. interna Convertito in caratteri x scrittura sul file standard output 12

READ ( è una procedura predefinita ) L effetto di read ( v) dipende dal tipo di v : si preleve dal file input una sequenza di caratteri corrispondente alla sintassi del tipo associato alla variabile Read (v, v,.. v(n) ) È equivalente a Begin Read ( v ) ; Read ( v ) ;.. Read ( v(n) ) ; End v deve essere stata definita; il tipo di v può essere char, integer, real READLN è equivalente a read seguita dall andata a capo 13

VAR v : integer ; read ( v ) implica la lettura da tastiera di una sequenza di caratteri che costituiscono un intero con segno e l assegnamento a v del valore intero corrispondente. Il valore deve essere compatibile per l assegnamento rispetto al tipo di v. Eventuali b prima del numero sono saltati. Se sono trovati caratteri inattesi ( ad esempio la virgola o una lettera ) si ha un errore b b b + 1450 v 1450 read ( num1, num2 ) separare mediante b i numeri interi o reali b b 14 b 96 num1 14 num2 96 quanti b voglio read ( c ) VAR c : char ; viene letto 1 carattere e assegnato ad a c read ( r ) VAR r : real ; b b - 380.39 b r - 380.39 14

WRITE Possono essere scritti numeri interi numeri reali caratteri stringhe valori booleani il formato con cui una quantità viene scritta può essere specificato attraverso l ampiezza del campo e, per i numeri reali, la lunghezza della parte frazionaria. write ( pippo : 8 ) b b b pippo write ( 3 > 20 ) write ( ciao ) false ciao write ( alfa : 6 : 2 ) - 82.50 WRITELN : andare a capo file output associato al video 15

I/O Bufferizzato I dati immessi da tastiera sono memorizzati temporaneamente in un buffer fino a che viene premuto il tasto ENTER. Fino a che non vieni premuto il tasto enter, i dati possono essere editati nel buffer di input tramite il tasto per cancellare caratteri e reimmetterli. Battere enter equivale ad inserire il carattere < eoln > nel buffer di input e il programma può cominciare ad elaborare la line di dati. Analogamente per la visualizzazione dei risultati sullo schermo Writeln = muove il cursore all inizio della linea Successiva sullo schermo Quando si chiude ( close ) un file di output qualunque carattere rimasto nel suo buffer viene scritto nel file assieme all < eof >. 16

PROCEDURA PAGE È stata inclusa nel Pascal standard secondo l ISO page ( nomefiletext ) causa un azione definita dalla implementazione sul file text andare ad una nuova pagina il file deve essere stato aperto come file di uscita 17

PROCEDURE createsto ( VAR testo : text ) ; VAR car : char ; writeln ( inserire il testo ; per terminare ^ E ) ; rewrite ( testo); WHILE NOT eof DO WHILE NOT eoln DO END read ( car ) ; write ( testo, car ) ; END writeln ( testo ) ; readln END ; ( * creastesto * ) 18

PROCEDURE stampa ( VAR t : text ) ; VAR car : char ; Reset ( t ) WHILE NOT eof ( t ) DO WHILE NOT eoln( t ) DO readln ( t ) ; writeln END END ; ( * stampa * ) read ( t, car ) ; write ( car ) END ; 19

PROCEDURE travaso ( VAR sorgente, destinazione : text ) ; VAR ch : char ; reset ( sorgente ) ; rewrite ( destinazione ) ; WHILE NOT eof ( sorgente ) DO WHILE NOT eoln ( sorgente ) DO read ( sorgente, ch ) ; write ( destinazione, ch ) END ; writeln ( destinazione ) ; readln ( sorgente ) END END ( * travaso * ) Simile a copia di file nontext 20

CONTEGGIO DELLE LINEE DI UN FILE DI TIPO TEXT PROCEDURE contalinee ( VAR testo : text ; VAR nlinee : integer ) ; Reset ( testo ) ; nlinee : = 0 ; WHILE NOT eof ( testo ) DO END WHILE NOT eoln ( testo ) DO get ( testo ) Readln ( testo ) ; nlinee : = nlinee + 1 END N.B. E perfettamente legale mescolare l uso della get / put con read / write La suddivisione in linee influenza la struttura dei programmi che elaborano file di testo che avranno una struttura ciclica a più livelli ( per elaborare le singole linee e per elaborare i singoli caratteri di una linea ) 21