Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemi Informativi
a) organizzazione relative;
b) organizzazione hash;
L’ORGANIZZAZIONE RELATIVE
Nell’organizzazione RELATIVE la chiave primaria di ogni record
identifica univocamente sia il record stesso sia l’indirizzo logico in
cui il record è registrato.
Esempio:
Un foglio di calendario è strutturato in modo che ad ogni giorno k corrisponda la k-
esima riga dello stesso foglio. Quindi il giorno 5 si trova alla quinta riga, il giorno 28
in 2ventottesima riga.
FUNZIONE HASH
La tecnica HASH si basa sull’utilizzo di funzioni che, partendo dalla
chiave primaria di ciascun record, trasformano quest’ultima in un
numero intero che rappresenta l’indirizzo logico detto indirizzo
hash del record stesso.
H(K) = x
L’indirizzo x deve essere calcolato tutte le Volte che occorre
accedere al record per effettuare operazioni di I/O.
Generalità sui file in C
} Nel linguaggio C la gestione dei file e la gestione più
generale dell’I/O sono strettamente connessi
} Si utilizza la libreria standard stdio.h
} Le stesse funzioni possono essere utilizzate sia per
leggere un valore dalla tastiera sia per leggere un valore
da un dispositivo di memoria di massa
} si basano sul concetto di stream.
Generalità sui file in C
} Flusso o stream
} Uno stream è un flusso sequenziale di byte, che può
essere immaginato come un canale tra la sorgente di una
certa informazione e la sua destinazione.
} I flussi sono classificati in:
} flusso di input
} flusso di output
Generalità sui file in C
} I tipi di flussi sono due:
} un flusso binario: formato da una sequenza di byte con una
corrispondenza uno a uno con i byte presenti sul dispositivo
fisico, e può essere utilizzato per ogni tipo di dato
} un flusso di testo: è una sequenza di caratteri generalmente
suddivisa in linee terminate da un carattere di newline (\n),
generalmente usato per file di testo
Definizione, apertura e chiusura
} i file di testo possono essere scritti anche da un normale
editor di testi in quanto contengono caratteri ASCII
} i file binari devono essere scritti da un programma C che
converte i dati in binario.
Generalità sui file in C
} Un file è quindi un qualsiasi dispositivo, un disco fisso, un
terminale oppure una stampante;
} fopen( )
} La funzione che effettua l’apertura di un file è fopen()
e ha il seguente prototipo:
} ferror( )
int ferror(FILE *puntaFile)
Lettura e scrittura sequenziale
} Sono possibili quattro modi per eseguire le operazioni di
lettura e scrittura in modo sequenziale:
} carattere per carattere;
} per linee di testo (usuale per i file di testo);
} precisando il formato;
} a blocchi.
Lettura e scrittura sequenziale
Input/output a caratteri singoli: fgetc( ) e fputc( )
} L’archivio è
Lettura e scrittura sequenziale
Input/output righe: fgets( ) e fputs( )
} le funzioni fgets() e fputs() hanno un
parametro in più che indica il file su cui va effettuata
l’operazione e servono per leggere/scrivere una riga per
volta:
} char fgets(char *buffer, int num, FILE *fp): legge
una linea dal file lunga al massimo num–1 caratteri e la
inserisce nel buffer;
} int fputs(char *buffer, FILE *fp) ?????? scrive
una riga su un file, restituendo un intero.
Lettura e scrittura sequenziale
Lettura e scrittura sequenziale
} È stata messa la direttiva
} #define MAXSTR 81
in quanto lo schermo è di 80 caratteri