MINISTERUL EDUCAŢIEI REPUBLICII MOLDOVA
UNIVERSITATEA TEHNICĂ A MOLDOVEI Facultatea Calculatoare, Informatică si Microelectronică Automatică si Informatică
RAPORT Lucrare de laborator nr. 1 La Matematica Discretă
Pe tema:
Păstrarea grafurilor in memoria calculatorului.
A efectuat:
st. gr. AI-101
A verificat:
lector superior Chisinău 2012
1. Scopul lucrării: 1. Studierea metodelor de definire a unui graf : matricea de incidență, matricea de adiacență, liste. 2. Elaborarea unor proceduri de introducere , extragere si transformare a diferitelor forme de reprezentare internă a grafurilor cu scoaterea rezultatelor la display si imprimantă.
2. Sarcina de bază: 1. Elaborați procedura de introducere a unui graf în memoria calculatorului în formă de matrice de incidență, de matrice de adiacență și listă de adiacență cu posibilități de analiză a certitudinii. 2. Elaborați proceduri de transformare dintr-o formă de reprezentare in alta. 3. Folosind procedurile enumerate , elaborați programul care vă permite: * introducerea grafului reprezentat sub oricare forma din cele trei forme cu posibilități de corecție a datelor. * păstrarea grafului în memoria externă în formă de lista de adiacență. * extragerea informației într-una dintre cele trei forme la imprimantă și display.
3. Listing-ul programului in C: #include"stdlib.h" #include"iostream.h" #include"conio.h" #include"math.h" #include"fstream.h" main() { system("cls"); ofstream out("textzz.txt"); float A[20][20]; int AA[20]; int BB[20]; int z,t,i,j,n,p=0,b,o,k,r,s,k1,r1,nm,w,po,pp,d,ee=0; cout<<"\n\n\t\t Lucrare de laborator nr.1 la Matematica discreta"; cout<<"\n Dam numarul de varfuri: n= "; out<<"\n Dam numarul de varfuri: n= "; cin>>n;
out<
>A[i][j]; out<>nm; out<
cout<<"x"<>w; out<
out<<"\ndaca doriti sa schimbati varianta alesa tastati tasta 0"; cout<<"\ndaca doriti sa schimbati varianta alesa tastati tasta 0"; cin>>w; out<
if(k1!=r1){if(k1==o){b=-1;}if(k1!=o){b=0;}if(r1==o){b=1;}} if(b<0) { cout<< b<<"º "; out<< b<<"º ";} if(b>=0){ cout<<" "<>w; out<>po; cin>>pp; i=po; j=pp; cout<<"dam noua valoare legaturii "; cout<<"x"<>A[i][j]; system("cls"); goto eticheta;} case 5: {for(i=n;i>A[i][j];}} for(i=1;i>A[i][j];}} ee=1; goto eticheta; } case 7: {cout<<"Sunteti sigur ca doriti sa iesiti? Daca da, tastati 1."; cin>>w; if(w==1){
return 0;} if(w!=0){ system("cls"); goto eticheta;} } case 6: { cout<<" Pe care varf doriti sa-l evitati?"; cin>>d; i=d; for(j=1;j
4. Afisare la ecran:
5. Concluzie: Prin intermediul acestei lucrari de laborator, am reusit sa elaborez un program in compilatorul C++, prin care am introdus un graf in memoria calculatorului in forma de matrice de incidenta si de adiacenta,lista de adiacenta. Acest program contine si functii de transformare dintr-o forma de reprezentare a grafului in alta si de afisare la display a tuturor functiilor sale prin intermediul unui meniu de navigare.