Sunteți pe pagina 1din 12

Universitatea Tehnică a Moldovei

Catedra Automatică și Tehnologii Informaționale

Disciplina Programarea Calculatoarelor

Varianta 19

Raport

Tema: “:” Elaborarea programelor pentru prelucrarea funcţiilor cu diverse


structuri şi fişiere în limbajul C”

A realizat student grupa TI-173 Rosca Florin

A verificat Moțpan Serghei

Chisinău 2018
Cuprins

1. Scopul și obiectivele lucrării ....................................................................................................3


2. Sarcina ......................................................................................................................................4
3. Schema bloc .............................................................................................................................5
4. Realizarea .................................................................................................................................6
Concluzii..........................................................................................................................................6
Bibliografie ......................................................................................................................................8
Anexa A ...........................................................................................................................................9
Anexa B ......................................................................................... Error! Bookmark not defined.
Anexa E ....................................................................................... Error! Bookmark not defined.2

2
1. Scopul și obiectivele lucrării:
1) să se analizeze principiile organizării şi gestiunii fişierelor în sistemele de operare şi procesarea
fişierelor în limbajul C, apoi şi să se analizeze algoritmii şi programele (declarări, utilizări,
parcurgeri, salvare şi ştergeri). Pentru aprofundarea şi rularea programelor în limbajul C să se
elaboreze scenariile succinte de soluţionare cu calculele de verificare şi explicaţii.
2) de studiat şi însuşit materialul teoretic prin lansarea exerciţiilor de antrenament şi verificări ale
cunoştinţelor (din indicaţiile acestea) şi să se elaboreze algoritmii şi, totodată, să organizeze
calculele de verificare cu explicaţii pentru evidenţierea esenţialului prelucrării fişierelor cu structuri
de date în elaborarea modelelor soluţiei. Toate observaţiile se înregistrează în raport;
3) să se preia de la profesor varianta (6. Variante pentru lucrul individual) şi să se elaboreze
algoritmii şi şi programul unde să organizeze antetul functiilor şi transmiterea functiei apelate
adresele variabilelor cu calculele de verificare şi cu explicaţii la prelucrarea fişierelor.
4) să se analizeze listingurile din compartimentul 4,5 (4. Exemple de verificare a cunoştinţelor
însuşite; 5. Exemplu model pentru evidenţierea principiilor de elaborare şi prelucrarea grafului cu
funcţii şi diverse SD. De fragmentat și de ansamblat cu diverse posibilități.) corectitudinea și
rezultatele obținute cu argumentări.)
5) în baza funcţiilor de timp şi dată din fişierul header time.h apreciaţi timpul definit de sistem şi
timpul execuţiei programului în secunde pentru ambele cazuri (tradiţional şi cu pointeri) şi să se
descrie scenariile şi principiile de algoritmizare si rezolvare ale problemei în baza diferitor modele
de SD complexe, implementând subprograme în C;
6) în raport să se reflecte toate exemplele efectuate cu analize a tehnicii programării eficiente cu
argumentări şi comentarii, incluzând fişierele cu teste de verificare şi vizualizări ale rezultatelor.

3
2. Sarcina

1. de studiat şi însuşit materialul teoretic pentru evidenţierea esenţialului prelucrării structurilor de


date cu liste în elaborarea modelelor soluţiei, analizând exemplele din text;
2. să se selecteze problemele din compartimentul “3 şi Anexe” şi să se elaboreze organigramele
(pentru funcţiile principale) şi programele cu liste (declarări, parcurgeri, etc.), pentru aprofundare
şi rularea programelor în limbajul C să se elaboreze scenariile succinte de soluţionare prin respectiva
tehnică de prelucrare cu calculele de verificare şi explicaţii.
3. să se analizeze tehnica modelării şi programării eficiente pentru diverse compartimente ale
diferitor situaţii cu diverse argumentări şi modele de structuri abstracte, incluzând fişiere cu teste
de verificare şi vizualizări.
Cerinta:

18) Scrieţi un program, care permite crearea unui arbore binar şi traversarea lui în inordine,
preordine, postordine şi elementele să fie salvate în fişiere.

4
3. Schema bloc

5
4. Realizarea

Crearea programamului se incepe cu definirea unei structuri

Api cu ajutorul unor funtii creez un arbore binar „void insert(nod ** arbore, int val)” ,iar prin
funtiile fac parcurgera lui :” print_preord(nod * arbore)”,” print_inord(nod * arbore)”,” void
print_postord(nod * arbore)”.Elementele arborelui sunt introduse automat in fisierul
fisier2.out.Inchei programa prin stergerea arborelui cu ajutorul functiei „ void stergearbore(nod *
arbore)”.

6
Concluzii

Lucrarea dată a avut ca scop să ne facă cunoscuți cu listele .Deci in conluzie in timpul
efectuarii acestui laborator am folosit in practica unele cunostinte de la curs privitor la lucrul cu
flistele ,iar efectuind aceasta lucrare am intele ca listele funt foarte utile pentru a juca mai efectiv
cu informatia adica adaugarea sau stergerea ei.

7
Bibliografie

1. The GNU C Reference Manual. [Interactiv] https://www.gnu.org/software/gnu-c-


manual/gnu-c-manual.html.
2. The C Library Reference Guide. [Interactiv] https://www-
s.acm.illinois.edu/webmonkeys/book/c_guide/.

8
(1)

Anexa A :Figura 1 Rezultatul executiei programului cu valoarea intervalului [1-101]


#include<stdlib.h>

#include<stdio.h>

//

struct arbore_bin {

int data;

struct arbore_bin *right, *left;

};

typedef struct arbore_bin nod;

void insert(nod ** arbore, int val)

nod *temp = NULL;

if(!(*arbore))

temp = (nod *)malloc(sizeof(nod));

temp->left = temp->right = NULL;

temp->data = val;

*arbore = temp;

return;

if(val < (*arbore)->data)

insert(&(*arbore)->left, val);

else if(val > (*arbore)->data)

insert(&(*arbore)->right, val);

9
void print_preord(nod * arbore)

if (arbore)

printf("\t %d\n",arbore->data);

print_preord(arbore->left);

print_preord(arbore->right);

void print_inord(nod * arbore)

if (arbore)

print_inord(arbore->left);

printf("\t %d\n",arbore->data);

print_inord(arbore->right);

void print_postord(nod * arbore)

if (arbore)

print_postord(arbore->left);

print_postord(arbore->right);

printf("\t %d\n",arbore->data);

void stergearbore(nod * arbore)

if (arbore)

10
stergearbore(arbore->left);

stergearbore(arbore->right);

free(arbore);

void main()

{ FILE *fout;

fout = fopen("fisier2.out","w");

int i,n,e,r=1;

nod *radacina;

nod *tmp;

radacina = NULL;

printf("Introduceti numarul de noduri: ");

scanf("%d",&n);

printf("Introduceti nodurile:\n");

fprintf(fout,"Elementele arborelui:\n");

for(i=0;i<n;i++){

printf("%d:",r);

scanf("%d",&e);

fprintf(fout,"\t\t%d\n",r,e);

insert(&radacina, e);

r++;

printf("\nAfisarea lui in preordine:\n");

print_preord(radacina);

printf("Afisarea lui in inordine:\n");

print_inord(radacina);

printf("Afisarea lui in postordine:\n");

print_postord(radacina);

stergearbore(radacina);

fclose(fout);

11
(1)Anexa B
FISIERUL :fisier2.out

Anexa C
Rezultatul Afisarii programului pe ecran:

12

S-ar putea să vă placă și