I file. Record logici e record fisici
|
|
- Federica Carletti
- 5 anni fa
- Visualizzazioni
Transcript
1 I file La struttura dati per memorizzare e organizzare i dati in memoria di massa è il FILE. Esso consiste in una sequenza di elementi il cui numero cresce indefinitamente in base alle esigenze. Tra i vari tipi di file implementabili da programma risulta particolarmente interessante per i nostri scopi il file di testo e il file di record Il file di testo contiene elementi elementari come char, int, float ecc. Il file di record può essere pensato come un vettore di record residente su disco, di cui non è necessario definire a priori la dimensione. Infatti anche il file è una struttura lineare composta di record tutti fra loro omogenei, individuabili tramite un puntatore di lettura/ scrittura (indice posizionale) che parte convenzionalmente dalla posizione O (se un file è composto da 15 record, questi ultimi sono numerati da O a 14). Inoltre, poiché la dimensione non viene definita a priori, il sistema pone, dopo l'ultimo record un segnalatore di fine file (end of file EOF), che segnala il raggiungimento della fine della struttura registrata. Record logici e record fisici Fino a questo momento abbiamo visto il record come un insieme di informazioni relative a un'entità logica. Tale insieme viene definito tenendo conto delle esigenze dell applicazione. La definizione che abbiamo dato coincide con quella di record logico, ossia con la descrizione di come il programmatore vorrà suddividere il gruppo di informazioni che caratterizzano l'oggetto osservato. Il record logico ha una lunghezza in byte pari alla somma della dimensione dei campi che costituiscono il record stesso. Sulla memoria di massa dove risiede il file, invece, i record logici sono raggruppati in blocchi o record fisici (di lunghezza prefissata), che costituiscono l'unità di trattamento fisico. In altri termini: il record fisico rappresenta l'insieme dei caratteri che possono essere letti o scritti in memoria di massa con una singola operazione di lettura o scrittura. Supponiamo di avere un record col seguente tracciato: Persona = RECORD Nome: Stringa[10] Classe: Stringa[2] FINERECORD Record fisico Il numero di record logici presenti in un unico blocco fisico prende il nome di fattore di bloccaggio o fattore di blocco. Tale numero può essere maggiore, minore o uguale a l. In particolare: - se è maggiore di l, ossia se ogni record fisico contiene più record logici, i record si dicono bloccati; - se è uguale a l, i record si dicono sbloccati; - se è minore di l, ossia se sono necessari più record fisici per memorizzare un record logico, si parla di multiblocco. Il tempo di accesso alla memoria di massa è notevolmente superiore a quello relativo alla memoria centrale. Per questa ragione, nei vari sistemi i record fisici hanno una capienza sufficiente a garantire un minor numero di accessi alla memoria secondaria. La memoria di massa, infatti, ha il compito principale di conservare permanentemente dati e programmi. Inoltre, supporta una parte dell'elaborazione. Per elaborare dei dati è quindi necessario un loro trasferimento in memoria centrale, poiché, come sappiamo, la CPU è in grado di operare solo su questa memoria. Quando la CPU, eseguendo un programma, incontra un'operazione di lettura/scrittura di un record, non preleva dalla memoria di massa il record logico interessato, bensì l'intero record fisico che contiene il record logico in questione. Per poter essere elaborato, il record fisico viene posto in un'area della RAM chiamata buffer, adibita dal sistema proprio a questo scopo.
2 Organizzazione degli archivi Per organizzazione o implementazione di un archivio si intende sia il modo in cui l'archivio è rappresentato sul supporto fisico di memoria, sia l'insieme di operazioni consentite per la sua elaborazione. L'organizzazione, pertanto, si distingue in: - fisica (relativa al supporto); - logica (relativa alla modalità di gestione). L'aspetto fisico dell'organizzazione riguarda la macchina, mentre l'aspetto logico :!guarda il lavoro del programmatore e la fruizione successiva da parte dell'utente. L organizzazione fisica I supporti fisici per la memorizzazione dei file sono stati già trattati nel primo volume, parlando dell'architettura dei computer. Ricordiamo che i supporti fisici si classificano in: - supporti ad accesso sequenziale, come i nastri, nei quali, per accedere a un particolare record, è necessario scorrere tutto il file, record per record. La registrazione e il reperimento di un record, quindi, possono avvenire solo in modo consecutivo al record precedentemente registrato o esaminato. In tal caso organizzazione fisica e organizzazione logica coincidono; - supporti ad accesso diretto, come i dischi, nei quali è possibile accedere al record sia sequenzialmente, sia in modo diretto. In tali tipi di supporto, quindi, si può reperire l'informazione anche in modo diverso rispetto alla loro organizzazione fisica. Pertanto, la dipendenza tra organizzazione fisica e organizzazione logica diviene meno rilevante. Nel corso di questa e della successiva unità vedremo come questi supporti influenzano notevolmente il trattamento degli archivi. Un problema da risolvere, infatti, è proprio quello di adattare in modo soddisfacente la struttura logica degli archivi alla struttura fisica dei supporti di memorizzazione. L'organizzazione logica L'organizzazione logica fa riferimento alla gestione dell'archivio, ossia fissa il modo in cui i record sono disposti all'interno dell'archivio e, quindi, il modo in cui possono essere reperiti. L'organizzazione logica può essere: - sequenziale, quando per ogni record ne esiste uno precedente e uno successivo, a eccezione del primo e dell'ultimo. In tale tipo di organizzazione, quindi, i record sono memorizzati uno di seguito all'altro; - non sequenziale, se la sequenza non esiste, ossia se i record sono memorizzati in maniera sparsa all'interno dello spazio a disposizione. Su uno stesso supporto fisico è possibile implementare un archivio utilizzando diverse organizzazioni logiche. Si pensi, ad esempio, a un archivio a organizzazione sequenziale che debba contenere i dati relativi a un gruppo di studenti, con il campo Nome che funge da chiave per la ricerca. Con tale tipo di organizzazione logica è semplice manipolare i dati di uno studente: è sufficiente digitarne il nominativo per poter accedere al suo record. Nel caso in cui l'utilizzo del campo Nome non riesca a identificare univocamente uno studente o le prestazioni non vengano ritenute soddisfacenti, si procederà a organizzare l'archivio in qualche altro modo. Al concetto di organizzazione logica è quindi legato quello di metodo di accesso ai record. Parlando dell'organizzazione fisica abbiamo già introdotto il termine accesso e lo abbiamo utilizzato per caratterizzare la struttura fisica dei supporti di memorizzazione. Con metodo di accesso, invece, intendiamo quanto segue: il metodo di accesso è la particolare operazione per mezzo della quale è
3 possibile reperire i record memorizzati nell'archivio. Il metodo di accesso sequenziale consente di accedere a un record solo dopo aver fatto accesso a tutti i record che lo precedono. In questo caso, il tempo di accesso al record è in funzione della posizione del record, ossia varia in base al numero di record che devono essere esaminati prima di accedere al record che si vuole trovare. È l'accesso tipico per i file memorizzati su supporti sequenziali come i nastri magnetici. Ciò significa che un archivio implementato su nastro potrà essere trattato solo nello stesso modo in cui è stato realizzato: i dati potranno essere consultati nello stesso ordine con cui sono stati inseriti. È in questo caso evidente la coincidenza tra organizzazione logica e organizzazione fisica. Il metodo di accesso diretto o casuale consente di posizionarsi direttamente sul record interessato in un tempo che non dipende dalla posizione che esso occupa nell archivio. Operazioni sui file Sui file possono essere eseguite le seguenti operazioni fondamentali: l'apertura di un archivio stabilisce un collegamento tra la memoria centrale e il file registrato sulla memoria di massa, riservando in memoria centrale una zona (buffer) per le operazioni di I/O e individuando nella tabella dei descrittori di file le informazioni necessarie per accedere ai blocchi fisici del file. Il comando di apertura deve essere eseguito prima di iniziare qualsiasi operazione di lettura o scrittura. l'operazione di lettura copia in memoria centrale dalla memoria di massa i dati registrati nei blocchi fisici del file; l'operazione di scrittura trasferisce sulla memoria di massa i dati composti in memoria centrale; l'operazione di riscrittura aggiorna nel file su memoria di massa i dati modificati durante l'elaborazione; la consultazione o interrogazione consente il reperimento all'interno dell'archivio delle informazioni necessarie per l'elaborazione desiderata. Il risultato dell'interrogazione può essere rappresentato mediante una visualizzazione sul monitor del computer oppure con una stampa su carta. Gli output su stampante vengono correntemente indicati con il termine report. la chiusura del file interrompe il collegamento tra memoria centrale e file, liberando la memoria riservata per le operazioni di I/O e aggiornando le informazioni sul file nella tabella dei descrittori. Perciò è opportuno chiudere un archivio quando non sono previste ulteriori operazioni di lettura e scrittura. Un programma in linguaggio C++, che deve utilizzare i dati contenuti in un file, contiene le seguenti fasi di lavoro: 1) definizione di una variabile di tipo fstream, ifstream, ofstream da associare al file 2) apertura del file specificandone il nome e il tipo di accesso 3) operazioni di manipolazione o di interrogazioni sul file 4) chiusura del file. Lettura e scrittura di un file sequenziale Un file sequenziale può essere utilizzato per scrivere nuove registrazioni, per leggere dati o per aggiungere dati in coda a quelli già registrati. La scrittura a partire dall'inizio, eseguita su un file già esistente, provoca la cancellazione di eventuali dati presenti nell'archivio. Nei programmi di lettura in un archivio sequenziale, occorre introdurre un opportuno. controllo per segnalare il raggiungimento della fine del file. Un file sequenziale può essere aperto per le seguenti operazioni: scrivere caratteri in un file (Output) leggere caratteri da un file (Input) aggiungere caratteri in un file in coda a quelli già esistenti (Append). Facciamo un esempio
4 Creare un archivio con i nomi dei nostri amici. Il creazione archivio ofstream fout("amici.dat"); Il apre il file in scrittura cout cc "inserisci un nome (^Z per terminare)\n"; while (cin >> nome) fout << nome << endl; I I scrive sul file All'inizio del programma viene definito un oggetto fout della classe ofstream, associato al nome fisico del file, amjci.dat, cioè al nome con cui il file è registrato su disco. La lettera iniziale della classe (lettera 'o') indica che fout è un oggetto di output. Il costruttore contiene l'apertura implicita del file: vedremo in seguito gli esempi con l'apertura esplicita, tramite il metodo open(). La scrittura sul file viene eseguita con l'operatore < < applicato all'oggetto fout. Al termine del programma il file viene chiuso con il metodo close(). Si noti l'inclusione del file di header fstream.h per consentire al programma di utilizzare le classi di I/O. Per controllare il contenuto di un file sequenziale si può utilizzare un programma di lettura. Poiché nell'accesso sequenziale i dati registrati vengono letti dal file uno di seguito all'altro, a partire dall'inizio, nello stesso ordine con il quale erano stati scritti, occorre inserire all'interno del programma di lettura un controllo sul raggiungimento della fine del file. TESTO DEL PROBLEMA Visualizzare il contenuto dell archivio Amici.dat precedentemente creato Il lettura archivio ifstream fin("amici.dat"); Il apre il file in lettura while (fin >> nome) Il legge dal file cout << nome << endl; All'inizio del programma viene definito un oggetto fin della classe ifstream, associato a: nome fisico del file, amici.dat.. La lettera iniziale della classe (lettera 'i') indica che fin; è un oggetto di input. La lettura sul file viene eseguita con l'operatore > > applicato all'oggetto fin. Si noti l'inclusione del file di header fstream.h per consentire al programma di utilizzare le classi di I/O. Si possono aggiungere altri dati ad un archivio creato in precedenza specificando la modalità append nell'apertura del file. Per esempio, se si vogliono aggiungere altri nomi di amici all'archivio, si può usare un programma del tutto simile
5 a quello usato per l'inserimento dei nomi. La variazione riguarda solo l'aggiunta della costante ios::app nella dichiarazione del file. per specificare la modalità di apertura in appendo La costante appartiene all'insieme delle costanti enumerative per l'apertura del file: esse sono definite nella classe ios, contenuta nel file di header iostream.h. Le altre costanti, presentate in seguito, sono ios::in, per la modalità di lettura, e ios::out, per la modalità di scrittura. Il aggiunta dei nomi all archivio ofstream fout("amici.dat", ios::app); Il apre il file in scrittura cout << "inserisci un nome (^Z per terminare)\n"; while (cin >> nome) fout << nome << endl; I I scrive sul file Di seguito viene presentata un'ulteriore versione del programma di lettura sequenziale del file, che utilizza la funzione eof() per il controllo di fine file, nonché il controllo della corretta apertura del file. Il lettura archivio #include <iostream. h> ifstream fin("amici.dat"); Il apre il file in lettura if (!fin) cout «"Errore nell'apertura del file" «endl; exit (l) ; fin >> nome; while (!fin.eof()) cout << nome <<endl; fin >> nome; // legge dal file fin.close(); Di seguito vengono riproposti gli algoritmi di lettura e scrittura usando il metodo OPEN() //creazione archivio ofstream fout; I I dichiara stream fout.open("amici.dat"); Il connette stream all'archivio if (! fout) cout << "Errore nell'apertura del file"<< endl; exit (1) ; cout << "inserisci un nome (^Z per terminare)\n";
6 while (cin >> nome) fout << nome << endl; Il scrive sul file // lettura archivio ifstream fin; // dichiara stream fin.open("amici.dat"); // apre il file in lettura if (!fin) cout << "Errore nell'apertura del file"<< endl; exit (1) ; while (fin >> nome) cout << nome << endl; fin.close() ; // aggiunta nomi nel archivio ofstream fout; // legge dal file // chiude il file I I dichiara stream fout.open("amici.dat", ios::app); // connette stream all'archivio if (! fout) cout << "Errore nell'apertura del file"<< endl; exit (1) ; cout << "inserisci un nome (^Z per terminare)\n"; while (cin >> nome) fout << nome << endl; // scrive sul file Finora abbiamo utilizzato come struttura dati da memorizzare nel file una stringa allo stesso modo si possono memorizzare dati strutture con le stesse funzioni o metodi. Un po diversa è la gestione del file di testo puro dove la variabile da leggere è il carattere, ma logicamente è identico. Riportiamo di seguito un programma che tratta questo tipo di problema. #include <cstdlib> #include <iostream> #include <fstream> #include <string> using namespace std; int crea(); int leggi(); int appendi(); int main(int argc, char *argv[]) int risp; cout<< "devi creare o aggiornare?"<<endl<<"1 per creare 2 per aggiungere in coda"; cin>>risp; if (risp==1) crea(); leggi(); else appendi(); leggi(); system("pause"); return EXIT_SUCCESS;
7 int crea() char ch; ofstream fout("prova.dat"); if (!fout) cout<<"errore nell'apertura del file"<<endl; return 1; cout<<"inserire il testo while(cin.get(ch)) fout<<ch; return 0; ^Z per terminare "<<endl; int leggi() char ch; int l=0; ifstream fin("prova.dat"); if (!fin) cout<<"errore nell'apertura del file"<<endl; return 1; cout<<"ecco l'elenco dei dati "<< endl; while (!fin.eof()) fin.get(ch); cout<<ch; if (ch==10) l++; fin.close(); cout<<" vi sono "<<l-1<<" righe"<<endl; return 0; int appendi() char ch; ofstream fout("prova.dat",ios::app); if (!fout) cout<<"errore nell'apertura del file"<<endl; return 1; while(cin.get(ch)) fout<<ch; return 0;
Gestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliGestione dei file di dati
Gestione dei file di dati 1. Le classi di input/output Il linguaggio C++ non dispone di proprie istruzioni per la gestione dell interazione con l utente. Si appoggia infatti su appositi comandi scritti
DettagliConcetto di stream. c i a o \0. c i a o \0. c i a o \0
Concetto di stream Uno stream è un flusso di byte che permette al programma di comunicare con l esterno (es. con periferiche di input/output) c i a o \0 c i a o \0 c i a o \0 Stream di uscita standard
DettagliHo raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero
Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto
DettagliINFORMATICA File di testo in C Roberta Gerboni
2018 - Roberta Gerboni File di testo in C++ Il linguaggio C++ mette a disposizione le seguenti classi per operare sui file (è necessario includere nel programma l header ), consentendo tipo di
DettagliInformatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione
Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione stream o l input/output del C++ è basato sugli stream o gli stream sono
Dettagli4. Accesso diretto per gli archivi con record a lunghezza costante
4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione
DettagliIL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
Dettagli2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
DettagliFondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++
Fondamenti di Informatica 2008 corso prof. A. Picariello Operazioni sui FILE in C++ Librerie di I/O per la gestione dei FILE Il C++ consente di utilizzare le librerie standard di I/O del C mette anche
DettagliStandard Input e Standard Output
Istruzioni di I/O Standard Input e Standard Output Il C++ utilizza i concetti di standard input e standard output rispettivamente come astrazione di un canale per l ingresso e per l uscita dei dati In
DettagliLa gestione di file in C++
Prof.ssa Sara Michelangeli La gestione di file in C++ I file sono strutture dati che consentono di conservare permanentemente, su memoria di massa, i nostri dati. Imparare ad usare i file è quindi INDISPENSABILE
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliInput/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
Dettagliingresso/uscita da file
ingresso/uscita da file fino ad ora: il programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti al volo dall utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliCorso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione
L argomento della lezione Dall informazione al file Per permettere il riutilizzo di informazioni oltre la durata dei programmi che le hanno prodotte, i dati sono allocati su dispositivi in memoria secondaria.
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliFiles in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007
Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)
DettagliFile. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
Dettagliingresso/uscita da file
ingresso/uscita da file fino ad ora: il programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti al volo dall utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliPremessa. 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 e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
DettagliCorso di Informatica
Corso di Informatica Modulo T1 A3 Accesso 1 Prerequisiti Tipi di organizzazione 2 1 Introduzione L importanza degli archivi sta sia nel consentire di memorizzare grandi quantità di dati, sia nell offrire
DettagliText files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro
Text files, streams I file che ci interessano sono file di testo anche se, logicamente, contengono numeri o altro In C/C++ ci sono anche i file binari, ma li ignoriamo file di testo = ASCII file = successione
DettagliCorso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche
Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo
DettagliPassaggio di parametri per valore
Passaggio di parametri per valore #include using namespace std; int main() { int z, x = 1; z = ; cout
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
DettagliFILE DI TESTO e SOTTOPROGRAMMI
FILE DI TESTO e SOTTOPROGRAMMI Prof. Enrico Terrone A. S: 2008/09 I file di testo in C++ I file di testo sono una forma di input/output alternativa alla tastiera e al monitor (con il vantaggio della persistenza).
Dettagliciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliA. Veneziani Files di record
A. Veneziani Files di record Caratteristiche dei file di record I file di record si differenziano rispetto a quelli di testo per avere i dati memorizzati in un formato predefinito ben preciso suddiviso
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliCorso di Informatica
Corso di Informatica Modulo T3 A1 - Struttura File 1 Prerequisiti Tecnica della programmazione elementare Sottoprogrammi Tipo di dato Concetti elementari sulle memorie di massa 2 1 Introduzione Nei casi
DettagliCorso di Informatica
Corso di Informatica Modulo T1 A1 Archivi di dati 1 Prerequisiti Dati semplici e strutturati Strutture dati concrete e astratte Struttura e operazioni sui file Cenni sulle memorie secondarie File system
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliGestire le situazioni di errore
Gestire le situazioni di errore #include using namespace std; Classe VettoreDiInteri const int MAX = 10; class VettoreInteri { int v[max]; public: ; Gestire le situazioni di errore Ottenere
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliStrutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.
Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli
DettagliFile. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire..
File I file sono una illusione creata dal Sistema Operativo(SO) Il SO usa opportune strutture dati per implementare tale astrazione (ad esempio: File Control Block, FCB) Sono usati per memorizzare in modo
DettagliProgrammazione modulare
Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere
DettagliFondamenti di Informatica
Cosa sono i file? Un file è un archivio di dati che puo essere registrato su un supporto di massa (testo, lettera, programma, archivio di dati, ecc.) Fondamenti di Informatica 12. Linguaggio C - Gestione
DettagliGestione dei File. Credits Prof. Campi
Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè
Dettagli#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I file 2001 Pier Luca Montessoro - Davide Pierattoni (vedere
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali o binarie Noi ci occuperemo di file contenenti informazioni testuali In fondo ad un file sequenziale
DettagliLa copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)
La copia di un file Nell'esercizio di oggi cerchiamo di implementare un programma che permetta di effettuare la copia di un file di testo. L'operazione di copia, oltre a permettere di creare un nuovo file
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliINFORMATICA. I file. File. File. File
INFORMATICA File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi periferici, i linguaggi moderni fanno riferimento ad un modello : i periferici
DettagliHOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.
HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliLe funzioni: la dichiarazione
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione
Dettaglifile fisico file logico
I files Un file è una struttura di dati residente su una memoria di massa (file fisico) Un programma vede un file come una sequenza di bytes (file logico) Generalizzando, un file può comprendere qualsiasi
DettagliProgrammazione I Prova scritta - 10 gennaio h20min
Programmazione I Prova scritta - 10 gennaio 2019-1h20min NOTA: Nei programmi si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main, inoltre si sottintenda la presenza delle
DettagliFILE SEQUENZIALI E AD ACCESSO DIRETTO
FILE SEQUENZIALI E AD ACCESSO DIRETTO L input-output astratto (stream) Le periferiche disponibili in un sistema di elaborazione sono, dal punto di vista hardware, anche molto diverse fra di loro anche
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
DettagliGestione dei File C. Generalità
Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel
DettagliNota: Si consideri il valore di pi greco.
ESERCIZIO 1 (Costrutti condizionali + Casting delle variabili) Realizzare un programma che, dato in ingresso un angolo specificato in gradi come un numero intero, fornisca la relativa conversione in radianti.
DettagliGli Array. Dichiarazione di un array
Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato
Dettagli1. Soluzione esercizio XYZ SpA
1. Soluzione esercizio XYZ SpA 2. Oggetti fstream e loro uso Si vuole realizzare un piccolo sistema informativo a supporto dell'attività dell'ufficio dipendenti della società XYZ SpA. Tale società opera
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliClasse Squadra. #include <iostream> using namespace std;
Classe Squadra Si vuole scrivere un programma che gestisce la classifica di un campionato tra squadre di calcio, ognuna identificata dal proprio nome. Il programma deve essere in grado di assegnare un
DettagliArray. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliI files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto
C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su
DettagliFattorizzazione e curve ellittiche polinomi di II, II e IV grado
Fattorizzazione e curve ellittiche polinomi di II, II e IV grado Di Cristiano Armellini (cristiano.armellini@alice.it) Torniamo ancora una volta al problema della fattorizzazione p=ab e descriviamo un
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files
DettagliArchitettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus
Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni
Dettaglia.a Codice corso: 21012
ESERCIZIO 1 Scrivere un programma in linguaggio C che lette dallo standard input due sequenze vettoriali ordinate di interi V1[n], V2[m] ne crei una terza V3[n+m] anch essa ordinata, che contenga tutti
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
Dettaglia.a Codice corso: 21012, 22010
ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere
DettagliLogico e fisico. Fisico: legato agli aspetti costruttivi e tecnologici HARDWARE Logico: legato al significato e all organizzazione SOFTWARE FISICO
File System FISICO LOGICO Indice Caratteristiche generali I file e directory Metodi di accesso Directory e descrittori dei file Operazioni sui file Organizzazione della memoria fisica Allocazione della
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione I Tatiana Zolo zolo@cs.unipr.it 1 L ORGANIZZAZIONE DEL COMPUTER Unità di input: sezione ricevente. dispositivi di input Ò ÓÖÑ Þ ÓÒ altre unità per l elaborazione.
DettagliCorso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output
DettagliLaboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
DettagliStruttura logica del computer (semplificata)
Struttura logica del computer (semplificata) INPUT (TASTIERA) SISTEMA OPERATIVO R OUTPUT (MONITOR) A ISTRUZIONI PROGRAMMA M ZONA DATI (variabili e costanti) 21 13 45 A B C ALU UC Unità aritmetico-logica
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA8 B2 Accesso diretto 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione Organizzazione ed accesso ai file 2 1 Introduzione
DettagliLa funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre
La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre Unica particolarità: viene chiamata dal Sistema Operativo, appena il programma viene avviato Non
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione I Tatiana Zolo zolo@cs.unipr.it 1 L ORGANIZZAZIONE DEL COMPUTER Unità di input: sezione ricevente. dispositivi di input altre unità per l elaborazione. ORGANIZZAZIONE
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliVerifica su Record e File
Nome: Data: Valutazione in ventesimi Verifica su Record e File 1. (max 1,5 punti) Completare le frasi scegliendo tra i tipi d accesso ai file indicati al termine della domanda: a. L accesso si utilizza
DettagliAssociazione Variabile-Indirizzo
I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include
DettagliL hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:
Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti
DettagliInterfaccia del file system
Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System 1 Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i
DettagliGli stream. ios ostream. istream. iostream
I/O da FILE Gli stream Alla base delle operazioni di I/O, in C++, sta il concetto di stream (flusso) di byte tra la memoria principale ed i dispositivi di input (la tastiera, i file di sola lettura) e
DettagliI/O FILE. Sommario I/O FILE. I/O FILE LETTURA DA FILE DI TESTO oggetto di tipo ifstream. I/O FILE: lettura e scrittura su file di testo
Sommario I/O FILE: lettura e scrittura su file di testo Funzioni: Overloading Argomenti di default I/O FILE Per eseguire operazioni di I/O su file, si deve includere nel programma l header Tale
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
Dettagli