A. Veneziani Files di record
|
|
- Nicoletta Lillo
- 6 anni fa
- Visualizzazioni
Transcript
1 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 in campi di varia lunghezza, ognuno contenente dati dello stesso tipo. Essi sono da considerarsi una specifica categoria di file binari (si ricorda che file di tipo binario sono anche, ad esempio, le immagini e i file eseguibili (.exe)). La definizione del formato interno di un file di record è data dalla struttura utlizzata per definire il record stesso. Infatti, mentre nelle operazioni di lettura / scrittura su files di testo operiamo con variabili, a seconda dei casi, di tipo char, vettore di char o string, ossia variabili appunto, per loro natura, atte a contenere testo o caratteri, sui file di record operiamo con variabili in vario modo strutturate 1. Tali variabili dovranno avere la precipua caratteristica di avere una ampiezza ben definita e quindi costante. In un file di record infatti la scrittura di un record comporta l aumento della dimensione del file di una ben precisa quantità di bytes. Uno schema che rappresenti la memorizzazione in un file di record può essere disegnato come: Alunno Voto Materia Rossi 6 Inglese Bianchi 5 Matematica... L esempio descrive un file di record dove il record è costituito, nel nostro caso, da tre campi: Alunno alfanumerico Voto numerico Materia alfanurico Per tali campi si dovrà definire una ampiezza ben definita, o uno specifico tipo con apiezza definita. Il fatto che il record sia un modulo le cui dimensioni hanno ampiezza fissa e nota semplifica molte operazioni rispetto ai file di testo. Ad esempio è semplice nei file di record effettuare la modifica dei contenuti di un record e la cancellazione di un record (con un eventuale successivo recupero di spazio). Il record di cui sopra potrebbe essere definito con la struttura C++: struct prova char alunno[30]; int voto; char materia[50]; ; Esso ha una ben precisa ampiezza per tutti i campi (30 byte per nome, 4 byte per il voto, 50 byte per la materia), la cui somma definirà l ampiezza di tutto il record 2, numero che comunque sarà sempre fisso per tutti i record. Apertura di un file di record L apertura di un file di record avverrà con il solito metodo open( ), usato in modo analogo ai file di testo, ma in modalità binaria. L oggetto a cui sarà applicato il metodo open sarà come al solito un oggetto della classe fstream, come per i file di testo. Nel campo modalità sarà presente quindi la specifica ios::binary, che indica tale modalità. Un tipo di estensione che può essere propriamente usata per tali file è.dat. 1 Di tipi definiti tramite l istruzione struct 2 a meno di byte di allineamento, spesso presenti per scopi interni al sistema, che possono far aumentare il numero di byte di qualche unità Pagina 1
2 Quindi alcune modalità comuni di apertura per i file di record sono: ios::in ios::binary Sola lettura ios::out ios::binary Sola scrittura + creazione ios::out ios::app ios::binary ios::in ios::out ios::trunc ios::binary Modalità di aggiunta in coda + creazione Lettura + scrittura + creazione Lettura e scrittura di record Quando si opera su files di record per legere e scrivere dovranno essere utilizzati due nuovi metodi specifici per essi. Il metodo read ha due parametri ed è conformato come: <oggetto fstream>.read((char*) &<var. strutturata>, <dimensione del record>); L indicazione (char*) ha lo scopo di effettuare un cast di puntatori, tale per cui il puntatore alla variabile strutturata, viene convertito in un puntatore a carattere (o meglio indicante il punto di inizio di una serie di caratteri). Il primo parametro quindi fornisce l indirizzo di inizio della struttura in memoria. Il secondo la sua ampiezza, permettendo quindi di avere dati utili per svolgere l operazione di lettura. Analoga sintassi si ha per la scrittura di un record, solo che qui si utilizzerà il metodo write: <oggetto fstream>.write((char*) &<var. strutturata>, <dimensione del record>); Si noti che la sintassi è analoga anche perchè i dati passano dal programma al file tramite parametri by reference (puntatori), quindi è un passaggio atto ad operare sia dal programma verso il metodo e quindi il file, sia dal metodo verso il programma. Esempi concreti di sintassi potrebbero essere: struct rec char nome[50]; int n; ;... int main() fstream fs; rec r; fs.write((char*) &r, sizeof(rec)); Funzione sizeof( ) Come mostrato negli esempi qui sopra il problema di individuare l ampiezza di una struttura può essere risolto tramite l uso della funzione sizeof(.), che attende come parametro il nome di una variabile (semplice o strutturata) o alternativamente un tipo di dato e come uscita rende la sua ampiezza come numero di byte. Ciò permette ai metodi read e write di conoscere quanti byte vadano letti o scritti. Pagina 2
3 Metodo eof() Anche nei file di record non è noto a priori quale sia il numero di record che andranno letti dal file. Data questa situazione, analogamente a quanto fatto nei file di testo, si controlla ad ogni lettura se i record siano stati letti tutti. In tal caso eof( ) sarà true. La lettura avviene, come al solito, tramite un ciclo. Un esempio di un tale ciclo di lettura di records potrà essere: while (! fs.eof()) if (! fs.eof()) cout << r.nome << " " << r.n << endl; ove il record letto viene trasferito, con una sola operazione, nella var. strutturata r, per poi essere utilizzato. Riposizionamento del punto di lettura - metodo seekg( ) Dopo la scrittura di un certo numero di records se il programma và a rileggere il file si scoprirà che esso non vede i suoi contenuti. Ciò è dovuto al fatto che anche il punto di lettura è in fondo al file. In tal caso bisogna operare per riportarlo in cima ad esso. Ciò può essere fatto con: fs.seekg(0); o in alternativa: fs.seek(0, ios::beg); Una volta effettuata questa operazione tutti i record saranno leggibili operando con altre opportune operazioni. In pratica il punto di lettura viene spostato all inizio del primo record, ossia all inizio del file di record. Lunghezza di un file Per conoscere la lunghezza di un file sia di testo che di record basterà ricorrere a questo codice: fs.seekg(0, ios::end); ampiezza = fs.tellg(); il valore ampiezza (int) renderà l ampiezza del file in di byte. Infatti: fs.seekg(0, ios::end); indica al cursore di spostarsi con il cursore alla fine del file (scostamento 0 byte, dalla fine del file - ios::end 3 ). L istruzione ampiezza = fs.tellg(); serve a indicare di quanti byte sia ora scostato il punto di lettura dall inizio del file. Le due operazioni combinate danno l ampiezza. Metodo clear() In alcuni casi (tipicamente dopo aver raggiunto uno stato di eof), l oggetto fstream (fs) deve essere resettato ad uno stato non di errore, per poter operare di nuovo. Questo viene fatto quando necessario tramite il metodo clear: fs.clear(); 3 Si noti l uso negli ultimi esempi delle due costanti ios::beg e ios::end, rappresentanti l inizio e la fine del file. Pagina 3
4 Posizionamento sul record n Potendo operare in modo modulare su un qualunque record è ovviamente importante essere capaci di posizionarsi correttamente sul record voluto. Ciò viene fatto tramite l istruzione: fs.seekg((n 1) * sizeof(rec)); questa istruzione permette di raggiungere direttamente il record n 4, evitando la lettura dei precedenti. Infatti se si pensa di saltare al primo record, si avrà che dato che (n 1) = (1 1) da 0, non si avrà spostamento da effettuare. Ciò è corretto essendo l inizio del record 1 all inizio del file. Per i record successivi il numero di spostamenti pari all ampiezza del record (valore ricavato tramite sizeof(rec) ), sarà anche in questo caso corretto. Ad esempio per raggiungere il record 3, dovrò spostarmi all inizio del record 3, quindi saltare due record, cosa che infatti viene indicata dalla istruzione precedente: (n 1) = (3 1) = 2 * sizeof(rec), ossia una spostamento pari all ampiezza di due record. Modifica di un record Come si è già detto precedentemente l operazione di modifica di un record è una operazione piuttosto comune e comporta: a) il posizionamento sul record da modificare b) la successiva lettura del contenuto c) la modifica dei valori d) un riposizionamento sul record n e) ed infine una scrittura dello stesso record, con sua sovrascrittura su disco in codice C++ le precedenti operazioni divengono: fs.seekg((n - 1) * sizeof(rec)); // posizionamento // lettura valori r.n = r.n * 3; // modifica - (si supponga che la modifica sia triplicare il valore numerico) fs.seekg((n - 1) * sizeof(rec)); // ri-posizionamento fs.write((char*) &r, sizeof(rec)); // scrittura valori modificati Il motivo del secondo posizionamento (indicato come ri-posizionamento) è che il cursore come al solito dopo una lettura avanza della quantità di byte letti (in questo caso di un intero record). Proprio per questo per posizionarsi di nuovo sul record voluto e non scrivere le modifiche sul successivo bisogna effettuare un ri-posizionamento che viene compiuto semplicemente eseguendo di nuovo una istruzione di posizionamento identica alla precedente. Cancellazione di un record Nel caso si vada a cancellare un record di solito si ricorre alla cancellazione logica. La cancellazione fisica del record infatti presuporrebbe il ricompattamento di tutti i record, ossia la riscrittura di parte del file, operazione assai onerosa. Per permettere la cancellazione logica, bisogna prevedere all interno del record un apposito campo che indichi o no se il record sia valido (ossia se i suoi dati siano o no cancellati). Talo valore sarà quindi di solito un campo booleano apposito (di solito inserito nell ultima posizione della struttura). Nel record da noi preso come esempio operativo a pagina 1, dovremo quindi mdoficare il record come: struct rec char nome[50]; int n; 4 I record di norma sono numerati partendo dal numero 1. Pagina 4
5 bool cancellato; ; In tal caso: una operazione di scrittura verrà sempre effettuata con il valore booleano a false, mentre una operazione di cancellazione su un certo record porterà tale campo a true, ossia ad assumere un valore che indichi il fatto che il record non è più valido. In questo modo le successive operazioni se contenenti opportuno codice potranno evitare di considerare i record che risultano come cancellati, controllando il valore del campo apposito. C è anche da notare che successive operazioni di inserimento dovrebbero recuperare lo spazio relativo a records liberi e non andare ad impegnare ulteriore spazio disco inutilmente. Viceversa il file di record alla lunga aumenterebbe la sua dimensione continuamente. Un frammento di codice che effettui la cancellazione selettiva e di conseguenza non ristampi il record cancellato, è riportato qui sotto: cout << "Fornisci il record da cancellare: "; cin >> n; fs.seekg((n - 1) * sizeof(rec)); r.cancellato = true; fs.seekg((n - 1) * sizeof(rec)); fs.write((char*) &r, sizeof(rec)); fs.clear(); fs.seekg(0); while (! fs.eof()) if (! fs.eof()) if (! r.cancellato) cout << r.nome << " " << r.n << endl; Pagina 5
IL 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
DettagliGestione 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)
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
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
DettagliGestione dei file. File di testo e binari
Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile
DettagliLaboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi finzi@na.infn.it
Laboratorio di Programmazione Gruppo III, Ml-ZZ Alberto Finzi finzi@na.infn.it Record e File binari Record La definizione della struttura è data dalla parola riservata struct seguita da un identificatore,
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
DettagliEsercizi su. Istruzioni di scelta multipla. Overflow
Esercizi su Istruzioni di scelta multipla Overflow 2 Scelta multipla 3 Esercizio 1/2 Scrivere un programma che chieda all'utente di scegliere tra varie opzioni e stampi il nome dell'opzione scelta Esempio
DettagliPASCAL - Record. Il linguaggio PASCAL consente l utilizzo dei RECORD
PASCAL - Record Il linguaggio PASCAL consente l utilizzo dei RECORD Si tratta di un contenitore che descrive un oggetto composto da più dati di tipo diverso. 1 Un esempio: IL LIBRO Pensiamo ad una variabile
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int 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)
DettagliArchitettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri mejri@elet.polimi.it Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
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
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
DettagliVariabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
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
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
DettagliUn file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.
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
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)
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
DettagliRiprendiamo l esercizio calcolatrice
Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:
DettagliMATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA
MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere
DettagliEsercizi. I File ed il C
Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione
DettagliSommario. Le strutture dati elementari per implementare sequenze: Vettori Liste
Sequenze Sommario Le strutture dati elementari per implementare sequenze: Vettori Liste Strutture dati elementari Le strutture dati vettore e lista sono fra le strutture dati più usate e semplici Il loro
DettagliFondamenti di Informatica
Fondamenti di Informatica Capitolo 3 Funzioni Federico Ceriani federico.ceriani@nulltech.it ITS Meccatronico di Legnago A.S. 2016-2017 Contenuti Concetto di funzione Sintassi Tipo di ritorno Argomenti
DettagliInput / Output attraverso stream. I/O in C vs. I/O in C++
Alessio Bechini - Corso di - Input / Output attraverso stream (anno accademico 2002-2003) Utilizzo di stream per I/O I/O in C vs. I/O in C++ La libreria C standard per l I/O viene acceduta con stdio.h
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
Dettagli1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliFondamenti di Informatica II 24. Gestione I/O e File in C++
Gli stream in C++ stream è un astrazione che rappresenta un flusso di dati che scorre tra una sorgente e una destinazione idea di Stroustrup : una sequenza di caratteri Fondamenti di Informatica II 24.
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliIndice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2
Le espressioni in C++ (CAP 4) Indice Le espressioni in C++ : precedenze e associatività degli operatori Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 gli operatori
DettagliIl file È un insieme di informazioni: programmi. Il File System. Il file system
Il File System Il file È un insieme di informazioni: programmi d a t i testi rappresentati come insieme di record logici (bit, byte, linee, record, etc.) Ogni file è individuato da (almeno) un nome simbolico
DettagliINDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
DettagliNon ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliProcessore Danilo Dessì. Architettura degli Elaboratori.
Processore 8088 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine
DettagliTipi di dato strutturati: Array
Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o
DettagliUtilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:
1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente
DettagliLaboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
DettagliInformatica 1. Prova di recupero 15 Febbraio 2005
Informatica 1 Prova di recupero 15 Febbraio 2005 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliSistemi Operativi Teledidattico
Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione
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
DettagliPROGRAMMA PREVENTIVO. Criteri di programmazione didattica. La programmazione didattica verrà sviluppata tenendo conto dei seguenti punti:
SUPERIORE "G. VERONESE - G. MARCONI" SEDE CENTRALE G. VERONESE Via P. Togliatti, 833-30015 CHIOGGIA (VE) Tel. 041/5542997-5543371 - Fax 041/5548665 e-mail: veis00200g@pec.istruzione.it - Web: www.veronesemarconi.gov.it
DettagliDefinizione di file. Directory e file File binari e file di testo
I/O Avanzato e File Definizione di file Directory e file File binari e file di testo 5 Definizione di file Directory e file Tutti i sistemi operativi permettono di organizzare le informazioni su hard disk
DettagliFILE BINARI FILE BINARI FILE BINARI. OUTPUT BINARIO: fwrite()
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliCorso di Fondamenti di Informatica Classi di istruzioni 2
Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da
DettagliElaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
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++ è
Dettagli! I file di testo non sono indispensabili: sono semplicemente comodi 1. Sintassi:
Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare! È un'astrazione di memorizzazione assolu -tamente generale, usabile per memorizza -re su file informazioni di qualsiasi
DettagliElementi di C++ di base
Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste
DettagliUno stream rappresenta un flusso di dati da cui e' possibile
L'I/O in C++ e' basato sul concetto di stream. Uno stream rappresenta un flusso di dati da cui e' possibile prelevare caratteri (input stream) inserire caratteri (output stream) I vari tipi di stream sono
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliParametri Formali di una Funzione e Record di Attivazione
Parametri Formali di una Funzione e Attivazione Un record di attivazione rappresenta il mondo di una funzione, e contiene tutto ciò che ne caratterizza l esistenza, tra cui ad esempio: le variabili locali
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliWord 2003 Lavorare col testo
Word 2003 Lavorare col testo Scrivere cancellare selezionare 1 Modalità di visualizzazione 2 Prima di cominciare a scrivere bisogna conoscere le diverse modalità con cui Word 2003 permette di visualizzare
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
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
DettagliCaratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
DettagliUnità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.
Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una
DettagliTipi di dato. Unità 2. 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
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliArray. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
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
DettagliVia Onedo 1/A Abbadia Lariana 1/A - Tel: , P.I.: Web:
SmartEdit Plus è un editor pensato e realizzato per permettere la visualizzazione, analisi e modifica di qualunque flusso elettronico in formato ASCII con campi a lunghezza fissa. Si distingue dai tradizionali
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliEspressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test
Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo
DettagliStrutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
DettagliTipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.
Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi
DettagliBOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)
Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliC3 IL DBMS MICROSOFT ACCESS
C3 IL DBMS MICROSOFT ACCESS 1 GERARCHIE OBBLIGATORIE Nella progettazione di una base di dati abbiamo moltissimi gradi di libertà ma anche alcune regole rigide che siamo costretti a rispettare. Il primo
DettagliIl file system. Il File System. Attributi del file. File
Il file system Il File System Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:
DettagliSuggerimenti, note utili ed errori comuni. Fondamenti di informatica T
Suggerimenti, note utili ed errori comuni Fondamenti di informatica T printf, scanf e stringhe di formato La lettura e scrittura di variabili in formato testo sono realizzate tramite printf e scanf sfruttando
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliA. Veneziani - Classi IV A e IV B - Classe stack dotata di interfaccia grafica
A. Veneziani - Classi IV A e IV B - Classe stack dotata di interfaccia grafica Scopo del programma Programmare una classe dotata degli opportuni metodi per simulare uno stack (tramite un vettore) e utilizzare
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
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 Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
DettagliPuntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a
Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliLettura e scrittura di file di dati input/output
Lettura e scrittura di file di dati input/output Lettura e scrittura da disco Molto semplice in C++: si fa esattamente come se fosse una tastiera (se sto leggendo da disco) o lo schermo (se sto scrivendo
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliProva di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
DettagliAritmetica dei Calcolatori 3
Laboratorio di Architettura 31 maggio 2013 1 Numeri Floating Point 2 Standard IEEE754 3 Esercitazione Numeri Floating Point (FP) Il termine Floating Point (virgola mobile) indica la codifica usata per
DettagliModulo 1 Concetti di base della Tecnologia dell Informazione
Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette
DettagliCorso di Fondamenti di Informatica (M-Z)
Corso di Fondamenti di Informatica (M-Z) Avvertenze Consegnare solo fogli formato A4. Scrivere su un solo lato (no fronte retro) In ordine di preferenza usare inchiostro nero, matita, inchiostro blu. In
DettagliArgomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto
Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista
DettagliUniversità di Roma Tor Vergata L12-1
Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
DettagliCapitolo 11 Elaborazione di file
1 Capitolo 11 Elaborazione di file 11.1 Introduzione 2 I file Possono essere creati, modificati, ed elaborati da programmi scritti in C Sono utilizzati per la memorizzazione permanente dei dati La memorizzazione
DettagliLaboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015
Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliDati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
DettagliMODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione
DettagliNote sull utilizzazione di componenti logici di tipo memoria
Architettura degli Elaboratori, a.a. 2005-06 Note sull utilizzazione di componenti logici di tipo memoria Queste note precisano e completano il contenuto nel Cap. III, sez. 7 delle Dispense, in particolare
Dettagli