Catedra:Informatica Aplicat
RAPORT
Lucrarea de laborator Nr.1
La Structuri de Date i Algoritmi
Ciobanu Alina
Mihail Kulev
Chiinu 2017
Lucrare de laborator Nr.1
Mersul lucrrii:
Structurile sunt o facilitate oferit de limbajul C pentru a organiza mai bine datele cu
care lucreaz programele. Dac funciile ne permit s organizm mai
bine codul, structurile ne permit s organizm mai bine datele.
Structura este o mulime de date grupate, conform unei ierarhii, de obicei de tipuri
diferite. Structura poate fi comparat cu tabloul, ns tabloul conine date de un acelai
tip, iar elementele tabloului se acceseaz cu ajutorul indicilor, pe cnd accesarea
componentelor structurii are o form specific. Structura reprezint un tip de date definit
de utilizator prin utilizarea tipurilor deja existente.
Elementele structurii pot fi de tip predefinit sau definit de utilizator, excepie fiind tipul
structurii date. Pentru definirea variabilelor este suficient utilizarea numelui de structur
la fel ca tipurile predefinite: student s1, s2, s[10], *p; n acest caz s-au definit dou
variabile de tip student, un tablou din 10 studenti i un pointer spre student.
n cazul pointerilor:
p = &s1;
p->nm = 9.5;
O variabil structur poate fi iniializat la declarare prin precizarea ntre {} a valorilor
cmpurilor; cele neprecizate sunt implicit 0.De asemenea,o varibila structura poate fi
transmisa ca argument efectiv la apelarea unei funcii sau poate fi primita ca rezultat al
unei funcii, ntr-o instruciune return.
n limbajul C putem specifica pentru cmpurile de tip integer sau char dimensiunea n bii
pe care s o ocupe. Dimensiunea n bii se specific plasnd imediat dup definirea
cmpului caracterul : urmat de numrul de bii pe care dorim s l ocupe cmpul.
Exemplu:
struct data_biti
{
unsigned int zi : 5;
unsigned int luna : 4;
int an : 15;
};
Fisiere:
Un fiier este o structur dinamic, situat n memoria secundar (pe disk-uri). Limbajul C
permite operarea cu fiiere:
de tip text - un astfel de fiier conine o succesiune de linii, separate prin NL ('\n')
de tip binar - un astfel de fiier conine o succesiune de octeti, fr nici o structur.
Prelucrarea unui fiier presupune asocierea acestuia cu un canal de I/E (numit flux sau
stream). Exist trei canale predefinite, care se deschid automat la lansarea unui program:
se definete o variabil de tip FILE * pentru accesarea fiierului; FILE * este un tip
structur definit n stdio.h, care conine informaii referitoare la fiier i la tamponul de
transfer de date ntre memoria central i fiier (adresa, lungimea tamponului, modul
de utilizare a fiierului, indicator de sfrsit, de poziie n fiier)
se deschide fiierul pentru un anumit mod de acces, folosind funcia de bibliotec fopen,
care realizeaz i asocierea ntre variabila fiier i numele extern al fiierului
se prelucreaz fiierul n citire/scriere cu funciile specifice
se inchide fiierul folosind funcia de bibliotec fclose.
Fiierul antet:
Fiierul implementrilor:
Fiierul principal:
AVANTAJE:
1. Utilizarea fiierului antet permite folosirea acestor funcii i n alte aplicaii.
2. Introducerea structurilor de date este limitata doar de memoria disponibila a HDD.
3. Programul contine functii,ceea ce ne va permite sa modificam programul mai usor dupa
dorinta sau sa adaugam alte functii pentru modificarea bazai de date.
4. Toate inregistrarile sunt pastrate in fisier,ceea ce ne permite sa nu pierdem datele la iesirea
din program.
5. Programele devin mai explicite dac se folosesc structuri n locul unor variabile separate.
6. Se pot defini tipuri de date specifice aplicaiei, iar programul reflect mai bine universul
aplicaiei.
7. Se poate reduce numrul de parametri al unor funcii prin gruparea lor n parametri de
tipuri structur i deci se simplific utilizarea acelor funcii.
8. Se pot utiliza structuri de date extensibile, formate din variabile structur alocate dinamic
i legate ntre ele prin pointeri (liste nlnuite, arbori .a).
DEZAVANTAJE:
1. Pot aparea exceptii in urma introducerii stringurilor cu whitespace.
2. Nu exista import din fisier *.txt in fisier binar.
3. In cazul stergerii unei inregistrati din mijloc, celelalte isi pastreaza ordinea si nu isi
schimba indicile cu i-1.
Bibliografie:
1. Carcea L.,Vlas S., Bobicev V. Informatica: Sarcini pentru lucrri de laborator.
Chiinu: UTM, 2005.
2. Conspectul prelegerilor cursului Programarea Calculatoarelor pentru studeni
Lector: dr., conf. univ. M.Kulev. Chiinu, UTM, 2017.
3. Tutorial in C language: http://www.tutorialspoint.com/cprogramming/, accesat
07.02.2017