Algoritmi și Programe de Prelucrare a Fișierelor

Curs
9/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: pdf
Pagini : 42 în total
Cuvinte : 11778
Mărime: 284.77KB (arhivat)
Cost: Gratis

Extras din document

Operaţia de sortare a unui fişier binar presupune aranjarea articolelor în ordinea crescătoare

(descrescătoare) a valorilor unei zone, numită cheie de sortare. În cazul în care cheia de sortare este

formată dintr-un singur câmp din cadrul articolului, operaţia se numeşte sortare simplă. Sortarea

multiplă presupune aranjarea articolelor după valorile a două sau mai multe câmpuri, alcătuind, prin

juxtapunere, cheia de sortare. Juxtapunerea câmpurilor (nu neapărat adiacente în cadrul articolului) se

realizează pe lungimea efectivă a lor, alcătuind forma canonică a cheii de sortare. De exemplu, dacă

nume şi prenume sunt două câmpuri distincte, declarate de tip STRING, forma canonică a cheii de

sortare după nume şi prenume este dată de lungimea efectivă a fiecărei date de tip şir.

Dacă pentru sortarea simplă cheia poate fi însuşi câmpul din articol, pentru cea multiplă este

necesară o zonă auxiliară de memorie, în care se construieşte cheia de sortare, în forma canonică.

Sortarea unui fişier se poate realiza cu aducerea lui integrală în memorie (sortare în memorie)

sau cu aducerea în memorie a câte unui articol (sortare "direct pe disc"). Indiferent de modul utilizat,

sortarea poate fi realizată printr-unul din algoritmii cunoscuţi pentru masivele de date: sortare prin

interschimbare, prin selecţie, prin inserţie etc.

- Sortarea în memorie este o metodă rapidă şi presupune: citirea întregului fişier în memoria

principală; sortarea efectivă după cheia de sortare; recrearea fişierului pe disc. Metoda se poate aplica

numai fişierelor reduse ca dimensiuni sau cu lungime mică de articol, dată fiind capacitatea limitată a

memoriei interne asociată unui program. Ea poate avea mai multe variante:

- Sortarea cu vehicularea întregului articol presupune memorarea întregului fişier într-un

vector de articole. Compararea pentru sortare se va realiza pe câmpul cheie de sortare, însă

interschimbarea se realizează la nivelul întregului articol.

Exemplu:

Program sortare_1;

type

art=record

grupa:byte;

nume_student:string[30];

medie:real;

end;

var

f:file of art; x:array[1..250] of art;

i,j,n:byte; aux:art;

begin

assign(f,'student.dat'); reset(f):

n:=filesize(f):

for i:=1 to n do read (f,x[i]); {citirea fisierului

initial in memorie}

for i:=1 to n-1 do

for j:=i+1 to n do

if x[i].medie < x[j].medie then

begin

aux:=x[i];

x[i]:=x[j];

x[y]:=aux

end;

close(f); rewrite(f);

for i:=1 to n do write(f,x[i]);

close (f)

Algoritmi şi programe de prelucrare a fişierelor

end.

- Sortarea cu vehicularea cheii şi indexului, presupune memorarea într-un vector numai a

valorii cheii de sortare, împreună cu numărul relativ al articolului din fişierul iniţial (indexul).

Interschimbarea se va realiza la nivelul cheii de sortare, rezultând în final ordinea în care articolele vor

fi scrise în fişier. Deoarece articolele, în întregime, sunt rezidente pe disc, fişierul sortat va fi creat cu

un alt nume fizic, în acces secvenţial, preluând articolele din fişierul iniţial, în acces direct. Cheile de

sortare şi indexurile pot fi memorate în vectori distincţi sau într-unul singur, cu elemente de tip articol.

Exemplu:

program sortare_2;

type

art=record

grupa:byte;

nume_student:string[30];

medie:real;

end;

art_cheie=record

medie:real;

index:byte

end;

var

f,g:file of art; y:art; aux:art_cheie;

x:array[1..250] of art_cheie;

i,j,n:byte;

begin

assign(f,'student.dat'); reset(f);

assign(g,'students.dat'); rewrite(g);

n:=filesize(f):

(* ---------------------------------- *)

for i:=1 to n do

begin

read(f,y);

x[i].medie:=y.medie;

x[i].index:=i-1;

end;

(*-------------------------------------*)

for i:=1 to n-1 do

for j:=i+1 to n do

if x[i].medie <x[j].medie then

begin

aux:=x[i];

x[i]:=x[j];

x[j]:=aux

end;

(*--------------------------------------*)

for i:=1 to n do

begin

seek(f,x[i].index);

read(f,y);

write(g,y)

end;

Algoritmi şi programe de prelucrare a fişierelor

close(f); close(g)

end.

Preview document

Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 1
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 2
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 3
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 4
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 5
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 6
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 7
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 8
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 9
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 10
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 11
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 12
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 13
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 14
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 15
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 16
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 17
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 18
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 19
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 20
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 21
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 22
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 23
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 24
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 25
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 26
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 27
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 28
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 29
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 30
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 31
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 32
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 33
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 34
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 35
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 36
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 37
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 38
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 39
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 40
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 41
Algoritmi și Programe de Prelucrare a Fișierelor - Pagina 42

Conținut arhivă zip

  • Algoritmi si Programe de Prelucrare a Fisierelor.pdf

Alții au mai descărcat și

Sisteme de Fișiere

SISTEME DE FISIERE Un sistem de administrare al fisierelor consta într-o asociatie de date abstracte necesare pentru memorarea, organizarea...

Retele de Calculatoare

1. Calculatorul electronic De-a lungul istoriei,omenirea a folosit suporturi fizice pentru a-si exprima ideile,pentru a le vizualiza , a se putea...

Rețele de Calculatoare

I. Concepte fundamentale despre retele de calculatoare 1. Ce înseamna lucrul în retea? Calculatoarele personale, lucrând individual realizeaza o...

Programare pe Obiecte

S-a observat ca un obiect real este caracterizat de o structura, proprietati si de functionalitate. În POO obiectul este alcatuit dintr-o...

Programare în Limbaj de Asamblare

Bitii din registrul Flag sunt indicatori de stare care se pozitioneaza functie de rezultatul ultimei operatii aritmetice sau logice si se testeaza...

Retele de Calculatoare

Capitolul 1: Notiuni generale În acest capitol va veti familiariza cu rolul pe care îl joaca calculatorul în cadrul unei retele. Cu cît stiti mai...

Arhitectura Calculatorului

Arhitectura Calculatorului = Arhitectura Setului de Instructiuni + Organizarea Calculatorului/Masinii Arhitectura Setului de Instructiuni – ASI-...

Ai nevoie de altceva?