I FILE

Materie:Appunti
Categoria:Informatica

Voto:

1.5 (2)
Download:32
Data:09.03.2006
Numero di pagine:2
Formato di file:.doc (Microsoft Word)
Download   Anteprima
file_3.zip (Dimensione: 5.04 Kb)
trucheck.it_i-file.doc     32 Kb
readme.txt     59 Bytes


Testo

FILE AD ACCESSO DIRETTO o FILE TIPIZZATI
Torino 12/09/2005
Struttura:
TYPE < nome record >
C1 : < tipo >
C2 : < tipo >
-
-
-
Cn : < tipo >
END TYPE
Un file TIPIZZATO è formato da record.
Il file ad accesso diretto viene aperto nel seguente modo:
OPEN < nome file > for RANDOM
# n LEN = < l record >
La LEN rappresenta la lunghezza del record.
Simbologia per leggere e scrivere
GET:
GET # n, < n record >, campi legge un record
Campi rappresenta la variabile da inserire in memoria.
PUT:
PUT # n, < n record >, campi scrive nei campi
MODIFICA:
La Modifica di un record avviene mediante tre operazioni:
1 – Leggo (con la GET) il record (intero) da modificare
2 – Modifico i/il campo/i da modificare
3 – Il record viene riscritto al posto di quello precedente (uso la PUT)
Esempio:
TYPE REC
A : INTEGER
B : SINGLE
END TYPE
DIM V AS REC
Record 10 GET 1,10,V
V.A. = 100
PUT 1,10,V

L = LOF
1 - E’ il numero logico associato al file. Con questa operazione trovo il numero di byte che formano
il file.
NUM_ REC =L/L_ REC
Il numero dei record equivale al “numero dei byte che formano il record” (L_ REC).
SEEK:
Serve per effettuare due operazioni:
- Posizionarsi in un record dei file.
SEEK 1,15 si posiziona sul 15° record del file
In questo caso è una procedura.
- Restituisce il numero del record successivo a quello a cui è effettuato l’ultimo accesso.
N = SEEK (1)
In questo caso è una funzione.
LOC:
Restituisce il numero record su cui è effettuata l’ultima operazione
EOF:
E’ una variabile di sistema che serve a segnalare la fine del file.
RICERCA
La ricerca può essere:
Sequenziale
Binaria
Interpolata
Può essere applicata su file Sequenziali e su file ad Accesso Diretto.
Si utilizza la variabile EOF.
Ci si posiziona sul record a metà del file.
Confronto la CHIAVE che cerco con quella che trovo.
Se è uguale allora si è trovata.
Se è minore vado nella metà superiore.
Se è maggiore vado nella metà inferiore.
K = Campo Chiave( la chiave è univoca perché cambia per ciascun record ).
La ricerca avviene ricercando la chiave del record.
- Il Tempo Medio di ricerca della “Ricerca sequenziale” è:
N / 2
- Il Tempo Medio di ricerca della “Ricerca binaria” è:
f(k,k1,k2)=N1(k1,k) / N2(k1,k2)
K
Per conoscere la chiave su cui mi devo posizionare è uguale a:
f * N
N = Numero di chiavi presenti nel file.
In questa ricerca si ha un file con chiave iniziale (k1) e chiave finale (k2). La chiave da cercare è k
- Il Tempo Medio di ricerca della “Ricerca interpolare” è:
log2 (log2 N)

Esempio