SUBIECT: „tipul de date FILE“
Seturile de valori sau variabile cu un nume comun sunt numite tipuri structurate (compozite). Există mai multe moduri de a construi tipuri de compozite, fiecare dintre acestea fiind mod diferit de a avea acces la componentele individuale, și, prin urmare, componenta de desemnare metoda inclusă în tipurile de date structurate.
Prin modul de organizare și componente de tip sunt patru tipuri principale de tipuri structurate.
- tip regulat (matrice);
- tip combinat (înregistrare);
- tip de fișier (fișiere);
- Tip multiplu (pluralitate).
Problemele pe care le-am considerat, datele vine de la tastatură, iar rezultatele sunt afișate pe ecranul de afișare. Prin urmare, nici datele brute, nici rezultatele nu au fost salvate. De fiecare dată când executați același program, în special în timpul depanare sale, a trebuit să re-introduceți datele originale. Și dacă o mulțime de ei? Apoi, este convenabil de a emite datele originale și rezultatele sub formă de fișiere care pot fi stocate pe disc în același mod ca și programul.
File - acesta este un domeniu în memorie pe un mediu de stocare extern, în care sunt stocate unele informații.
Crearea fișierelor de date externe pentru stocarea permanentă pe discuri magnetice și capacitatea de a procesa aceste fișiere în program este un software eficient.
În fișierul limbajul de programare Pascal este o secvență de elemente de un anumit tip (simplu sau complex). Spre deosebire de lungimea matrice fișierului, adică, numărul de elemente nu este specificat, poziția elementului nu este determinată de index și fiecare element devine disponibil numai după o căutare anterioară a tuturor elementelor. Aceste fișiere sunt numite de serie (sau secvențial) fișier secvențial poate fi comparat cu bandă magnetică, care a înregistrat cântece. Pentru a căuta un anumit cântec, trebuie să derulați banda la început și de a asculta cântec după cântec, atâta timp cât se găsește necesar.
De ce sunt dosarele? Cantitatea de informații care pot fi salvate în fișierul este foarte mare. Este mult mai mult decât suma care poate fi stocat în memorie, de exemplu, folosind matrice.
De exemplu, VAR FT: FILE integer;
VAR M: FILE Char;
TYPE F = FILE DE REALĂ SAU VAR F1: FILE DE REAL
VAR F1: F
Deoarece descrierea tipului de element specificat, astfel de fișiere sunt numite tastate. Toate elementele dosarului sunt numerotate, pornind de la zero.
Pentru a stabili legătura între o variabilă de fișier în program și fișierul fizic pe un dispozitiv extern, utilizați procedura. ASSIGN (Alocați)
Proceduri Format:
ASSIGN (numele variabilei fișier „nume de fișier pe disc“)
atribui ( 'prog1.dat' f1);
După stabilirea acestei corespondențe toate operațiunile efectuate pe variabila F1, va prelua fișierele stocate pe disc și care are un prog1.dat nume.
Fișier la un moment dat poate fi într-una din cele două stări: fie este deschis numai pentru a scrie sau read-only.
Fișierul este deschis cu procedura RESET (nume de fișier) - pentru a citi. Pentru fișierul de înregistrare este deschis folosind procedurile de rescriere (nume de fișier). Procedura Rescrierea distruge informațiile înregistrate anterior în dosar. În acest caz, capul cititorului este poziționat la începutul fișierului, după care va fi scris informații noi.
Procedura de RESET stabilește, de asemenea, la început și se citește. Scrierea și citirea poate fi realizată prin intermediul operatorilor de citire, readln, SCRII, writeln.
În acest caz, utilizați această formă de scriere: citire (numele fișierului, numele variabilei)
Procedura CLOSE (închidere) este utilizat pentru a închide fișierul, în cazul în care toată acțiunea a rulat ÎNCHIS (numele fișierului)
O caracteristică standard EOF (nume de fișier) este folosit pentru a determina dacă se ajunge la sfârșitul fișierului (este setat la fals sau adevărat). Elementele sunt stocate într-un fișier în rânduri. Pentru a determina capătul liniei în fișierul utilizat de ciclul operatorului în timp ce nu EOLN (numele fișierului) DO, și pentru a merge la o nouă linie a fișierului - operatorul readln (numele fișierului).
Exemplul 1. Să presupunem că avem un fișier numit d1.dat, în care datele înregistrate pe disc:
1,7 4,56 0,2 0,54
1,32 1,524 18 0,98
5.6 7.7
Este necesar să se facă aceste date la dispoziția programului și a curăța suma lor.
Decizie. Programul este pe un disc C: \ TP7 \ f1.pas
fff1 de program;
var f1: text; l1: integer;
x, suma: real;
începe
Suma: = 0; I1: = 1;
atribui (f1, 'c: d1.dat');
reset (f1);
în timp ce nu EOF (f1) do
începe
în timp ce nu eoln (f1) do
începe citit (f1, x);
Suma: = suma + x;
se încheie;
readln (f1);
se încheie;
write ( 'sum =', suma: 8: 3);
închidere (f1);
end.
Răspuns: 42124
Exemplul 2. Să presupunem că variabila a și b, următoarele valori: a = 510, b = 16.2. Doriți să înregistrați într-un fișier numit linie d2.dan sub forma: a = 510 b = 16.2
Decizie. Programul este pe un disc C: \ TP7 \ f2.pas
Exemplul 3: Există un raport privind rezultatele examinării în gruppe.Budem consideră că este un fișier de intrare dan.pas numit:
-------------------------
subiectul „Fizica“
Grupa T-12
-------------------------
Alekseev SA 5
Vertyshev AY 4
Koldaev VD 5
Petrov ND 4
Fedorenko RF 3
Sharonin AV 4
Programul Costavit pentru a crea rez.pas fișier de ieșire denumite, în care pentru a înregistra declarația inițială și a calculat scorul mediu:
***************************
scorul mediu în grupul de 4.17
numărul de elevi 6
Decizie. Programul este pe un disc C: \ TP7 \ f3.pas
fff3 de program;
var finp, Fout: text; l1, l2, n, c: întreg;
sr, suma: reală; smb: char;
începe
I1: = 1; atribui (finp, 'c: dan.pas');
l2: = 1;
atribui (Fout, 'c: rez.pas');
reset (finp);
rescrie (Fout);
n: = 0; sum: = 0;
în timp ce nu EOF (finp) do
începe
în timp ce nu eoln (finp) do
începe
citit (finp, smb);
scrie (Fout, smb);
dacă smb = „:“, apoi începe
citit (finp, c); scrie (Fout, c: 3);
Suma: = suma + c;
n: = n + 1;
se încheie;
se încheie;
readln (finp);
writeln (Fout);
se încheie;
sr: = suma / n;
writeln (Fout '***************************');
writeln (Fout,, sr 'scor în grupul înseamnă': 5: 2);
writeln (Fout, 'numărul de studenți', n: 4);
writeln (calculele sunt finalizate, ' „se referă la rez.pas rezultatele fișierului“);
închidere (Fout);
închidere (finp);
end.
RĂSPUNS:
-------------------------
subiectul „Fizica“
Grupa T-12
-------------------------
Alekseev SA 5
Vertyshev AY 4
Koldaev VD 5
Petrov ND 4
Fedorenko RF 3
Sharonin AV 4
***************************
scorul mediu în grupul de 4.17
numărul de elevi 6
Exemplul 4. dan1.dat numere întregi de fișiere în mai multe rânduri.
3 5 2
04 septembrie 1
1 ianuarie 7
6 2 8
Se calculează suma elementelor din fiecare rând și rezultatele, împreună cu datele originale plasate într-un fișier numit dan2.dat
Decizie. Programul este pe un disc C: \ TP7 \ f4.pas
fff4 de program;
var f1, f2: text; lin1, lin2, x, suma: integer;
începe
Suma: = 0;
atribui (f1, 'c: dan1.dat');
atribui (f2, 'c: dan2.dat');
reset (f1);
rescrie (f2);
Suma: = 0;
în timp ce nu EOF (f1) do
începe
Suma: = 0;
în timp ce nu eoln (f1) do
începe
citit (f1, x);
scrie (f2, x: 3);
Suma: = suma + x;
se încheie;
writeln ( 'f2': 3 'sumă', suma: 4);
readln (f1);
se încheie;
writeln ( „ieșire este în dan2.dat fișierul“);
închidere (f1);
închidere (f2);
end.
răspundă:
3 5 2 10 Suma
09 aprilie 1, suma de 14
La 1 iulie 1, suma 9
6 2 8 16 Suma
II. Lucrările practice pe calculator.
Apelați ROM-ul program de exemple 1, 2, 3, 4, începe să se efectueze, obține rezultate. Pentru a înțelege cum funcționează programul. Rezultate hibrizi într-un notebook.
III. Tema.
Sarcină. Kom1.dat a crea un fișier în care sunt stocate următoarele informații:
CORVETTE. 48
UKNC. 96
YAMAHA MSX-1. 16
YAMAHA MSX-2. 128
BK-0010. 16
IBM PC / XT. 256
IBM PC / AT. 512