Structuri de Date de Tip Graf în C - Caiet de Laborator

Laborator
8/10 (1 vot)
Conține 1 fișier: doc
Pagini : 85 în total
Cuvinte : 16708
Mărime: 95.96KB (arhivat)
Publicat de: Amedeu Pătrașcu
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Paraschiva Popovici

Extras din laborator

LABORATOR 1

Tema1 : Scrieţi programul C care permite crearea şi vizualizarea unui arbore binar ordonat cu vizualizare naturală.

1. Descrierea algoritmului.

Pentru a putea realiza vizualizarea naturală a unui arbore binar ordonat este necesar să avem cunoştinţe despre lucrul în mod grafic în limbajul C.

Gestiunea ecranului în mod grafic

Modul grafic presupune că ecranul este format din “puncte luminoase”(pixeli). Numărul acestora depinde de adaptorul grafic şi se numeşte rezoluţie. O rezoluţie este cu atât mai bună cu cât este mai mare.

Adaptorul CGA are o rezoluţie de 200 de rânduri a 640 de coloane, iar adaptorul EGA oferă o rezoluţie de tot atâtea coloane, dar de 350 de rânduri.

Adaptorul VGA oferă o rezoluţie de 480 de rânduri a 640 de coloane sau chiar mai mare, de până la 768 de rânduri, a 1024 de coloane.

Pentru gestiunea ecranului în mod grafic se pot utiliza peste 60 de funcţii din biblioteca sistemului. Aceste funcţii au prototipul în fişierul graphics.h.

Etapele ce trebuie parcurse pentru realizarea unei aplicatii grafice:

- iniţilizarea(setarea) modului grafic;

- stabilirea culorii de fundal;

- stabilirea culorii de scris;

- desenarea efectivă;

- inchiderea modului grafic.

Setarea modului grafic

Modul grafic se setează cu ajutorul funcţiei initgraph. Această funcţie poate fi folosită singură sau cu o altă funcţie numită detectgraph care determină parametrii adaptorului grafic. Prototipul ei este:

void far detectgraph(int far *gd, int far *gm);

Exemplu:

Pentru setarea în mod implicit a modului grafic, putem utiliza secvenţa de mai jos:

int driver, mod_grafic;

detectgraph(&driver, &mod_grafic);

initgraph(&driver, &mod_grafic, “c:BORLANDCBGI”);

După apelul funcţiei initgraph se pot utiliza celelalte funcţii standard de gestiune a ecranului.

Din modul grafic se poate ieşi apelând funcţia closegraph de prototip:

void far closegraph(void);

În programele noastre pentru a iniţializa modul grafic vom folosi o funcţie pe care o vom numi iniţializare_mod_grafic(void).

Definiţia funcţiei iniţializare_mod_grafic(void) este:

void initializare_mod_grafic(void)

{

int gdriver=DETECT, gmode, err;

initgraph(&gdriver, &gmode, CALE);

err=graphresult();

if(err!=grOk)

{

printf("Eroare la initializarea modului grafic: %sn", grapherrormsg(err));

printf("Apasati o tasta pentru a termina ...n");

getch();

exit(1); /*se iese din program*/

}

}/*initializare mod grafic*/

Gestiunea culorilor

Adaptoarele grafice sunt prevăzute cu o zonă de memorie în care

se păstrează date specifice gestiunii ecranului. Această zonă de memorie poartă denumirea de memorie video.

În mod grafic, ecranul se consideră format din puncte luminoase numite pixeli. Poziţia pe ecran a unui pixel se defineşte printr-un sistem binar:

(x, y) unde:

x – defineşte coloana în care este afişat pixelul;

y – defineşte linia în care este afişat pixelul.

În cazul adaptoarelor color unui pixel îi corespunde o culoare.

Culoarea pixelilor se păstrează pe biţi în memoria video. Adaptoarele pot conţine mai multe pagini video.

Gestiunea culorilor este dependentă de tipul de adaptor grafic existent la microprocesor.

Mulţimea culorilor care pot fi afişate simultan pe ecran se numeşte paletă. Culorile din componenţa unei palete pot fi modificate de utilizator prin intermediul funcţiilor standard. La iniţializarea modului grafic se setează o paletă implicită.

Funcţiile de gestiune a culorilor pot avea ca parametri nu numai codurile culorilor, ci şi indecşi în tabloul care defineşte culorile unei palete. De aceea indecşi din intervalul [0, 15] pot fi referiţi prin constante simbolice definite în fişierul graphics.h. Aceste denumiri sugerează culoarea din compunerea paletei.

Exemplu:

denumire simbolică valoare

BLACK 0

BLUE 1

……………………………… ......

WHITE 15

Culoarea fondului(background) este totdeauna cea corespunzătoare indicelui zero.

Culoarea pentru desenare(foreground) este cea corespunzătoare indicelui 15.

Culoarea de fond poate fii modificată cu ajutorul funcţiei setbkcolor. Aceasta are prototipul:

void far setbkcolor(int culoare);

unde:

culoare – Este index în tabloul care defineşte paleta.

De exemplu, dacă se utilizează apelul:

setbkcolor(BLUE)

atunci culoarea de fond devine albastră.

Culoarea pentru desenare poate fii modificată folosind funcţia getbkcolor de prototip:

int far setcolor(int culoare);

unde:

culoare – Este index în tabloul care defineşte paleta.

De exemplu, dacă se utilizează apelul:

setcolor(YELLOW);

atunci culoarea pentru desenare este galbenă.

Starea ecranului

În mod grafic, ecranul se compune din n*m puncte luminoase(pixeli). Aceasta înseamnă că pe ecran se pot afişa m linii a n pixeli fiecare.

Poziţia unui pixel se defineşte printr-un sistem binar de întregi:

(x, y)

numite coordonatele pixelului. Coordonata x defineşte coloana pixeluli, iar y defineşte linia acestuia.

Pixelul aflat în colţul din stânga sus are coordonatele (0, 0).

Coloanele se numerotează de la stânga spre dreapta, iar liniile de sus în jos.

Biblioteca grafică a sistemului conţine 4 funcţii care permit utilizatorului să obţină următoarele informaţii relativ la ecran:

- coordonata maximă pe orizontală;

- coordonata maximă pe verticală;

- poziţia curentă(pixel curent).

Prototipurile acestor funcţii sunt:

int far getmaxx(void);

Preview document

Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 1
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 2
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 3
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 4
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 5
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 6
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 7
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 8
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 9
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 10
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 11
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 12
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 13
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 14
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 15
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 16
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 17
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 18
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 19
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 20
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 21
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 22
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 23
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 24
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 25
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 26
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 27
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 28
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 29
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 30
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 31
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 32
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 33
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 34
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 35
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 36
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 37
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 38
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 39
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 40
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 41
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 42
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 43
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 44
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 45
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 46
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 47
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 48
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 49
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 50
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 51
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 52
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 53
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 54
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 55
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 56
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 57
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 58
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 59
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 60
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 61
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 62
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 63
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 64
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 65
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 66
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 67
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 68
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 69
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 70
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 71
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 72
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 73
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 74
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 75
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 76
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 77
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 78
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 79
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 80
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 81
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 82
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 83
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 84
Structuri de Date de Tip Graf în C - Caiet de Laborator - Pagina 85

Conținut arhivă zip

  • Structuri de Date de Tip Graf in C - Caiet de Laborator.doc

Alții au mai descărcat și

Sistem Informatic privind Evidența Resurselor Umane la Întreprindere

INTRODUCERE În perioada de tranziţie la economia de piaţă o importanţă deosebită capătă automatizarea proceselor de prelucrare a informaţiei....

Proiectarea unei Baze de Date

I. Principalele cerinte impuse de Serviciul de Ambulanta Judetean sunt urmatoarele : activitate acordarea serviciilor medicale de urgenta...

Catalog Virtual

I. JUSTIFICAREA TEMEI Odată cu extinderea atribuţiilor ce revin diriginţilor în ce priveşte urmărirea evoluţiei elevilor din clasa pe care o...

Proiect informatică - fișiere text

1.Fişiere 1.1.Noţiuni introductive Un fişier este o colecţie de date de acelaşi tip, memorate pe suport extern (hard-disc, dischetă, CD etc)....

Matrice

Matrice (tablou bidimensional) Matricea este un tip de data la care elementele sunt asezate pe linii si pe coloane. Un element se identifica...

Plan de măsuri TIC

Ministerul Comunicaţiilor şi Tehnologiei Informaţiei realizează politicile şi strategiile în domeniul comunicaţiilor şi tehnologiei informaţiei,...

C++

Un prim exemplu de program C++: #include <iostream.h> void main { int a; cout << "Dati un numar\n"; cin >> a; cout << "Ati tastat numarul "...

Probleme C++ Rezolvate

Problema 1: cmmdc(a, b) #include<stdio.h> #include<conio.h> //algoritmul lui Euclid //cel mai mare divizor comun pentru doua numere strict...

Ai nevoie de altceva?