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

Previzualizare laborator:

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);

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Structuri de Date de Tip Graf in C - Caiet de Laborator.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
85 pagini
Imagini extrase:
85 imagini
Nr cuvinte:
16 708 cuvinte
Nr caractere:
100 103 caractere
Marime:
95.96KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Paraschiva Popovici
Sus!