Lab1

7
MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA UNIVERSITATEA TEHNICĂ A MOLDOVEI CATEDRA DE MICROELECTRONICĂ ŞI INGINERIE BIOMEDICALĂ RAPORT Lucrarea de laborator Nr.1 la Programarea în C++ Tema: „Structura mecanism de abstractizare” A efectuat: st. gr. ISBM-131 Moroi Ion A verificat: Balan Mihaela

Transcript of Lab1

Page 1: Lab1

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI

CATEDRA DE MICROELECTRONICĂ ŞI INGINERIE BIOMEDICALĂ

RAPORT

Lucrarea de laborator Nr.1

la Programarea în C++

Tema: „Structura – mecanism de abstractizare”

A efectuat: st. gr. ISBM-131 Moroi Ion

A verificat: Balan Mihaela

Chișinău, 2014

Page 2: Lab1

Scopul lucrării: Studierea programării prin abstractizarea datelor; Studierea regulilor de definire şi utilizare a structurilor de date; Crearea variabilelor de tip structură, accesarea componentelor unei structuri.

Noțiuni teoreticeStructura reprezintă un tip abstract de date, un tip definit de utilizator prin utilizarea tipurilor

deja existente. O structură poate fi definite în modul următor:

struct Date{ int day, month, year;};struct Student{ char *name; Date birthDay; float media;};

Structura – este o mulţime de date grupate, conform unei ierarhii, de obicei de tipuri diferite. Structura poate fi comparată cu tabloul, însă tabloul conţine date de un acelaşi tip, iar elementele tabloului se accesează cu ajutorul indicilor, pe cînd accesarea componentelor structurii are o formă specifică.

Varianta 10a) Să se creeze tipul abstract de date (structura) – produs soft (software), care are denumire, firma de producere, anul editării şi versiunea. Să se definească funcţiile de setare, de modificare a datelor, de comparare. Pentru crearea cîmpurilor textuale să se utilizeze operatorul new. Să se elibereze memoria. În main să se exemplifice căutarea produsului necesar după cîteva criterii.

#include <iostream>#include <process.h>using namespace std;

void menu();void afisare();void citire();void cautare();void dlt();

int n,caut;

struct Display {char *name;int size;int colors;char *resolution;

};

Display d[100];

Page 3: Lab1

void dlt () {int i;for (i=0; i<n; i++) {

delete [] d[i].name;delete [] d[i].resolution;

}}

void cautare() {int dim,i,x=0;system("cls");

if (caut==1) {x=0;cout<<"Introduceti dimensiunea(inch): ";cin>>dim;for (i=0; i<n; i++) {

if (dim==d[i].size) {x++;cout<<"\tMonitor nr."<<i+1;cout<<"\nFirma producatoare: ";cout<< d[i].name;cout<<"\nMarimea (inch): ";cout<<d[i].size;cout<<"\nNr. de culori: ";cout<<d[i].colors;cout<<"\nRezolutia: ";cout<<d[i].resolution;cout<<"\n\n";

}}if (x==0) cout<<"Nu este monitor cu asa dimensiune!\n";system("pause");

}

if (caut==2) {x=0;cout<<"Introduceti nr. de culori: ";cin>>dim;for (i=0; i<n; i++) {

if (dim==d[i].colors) {x++;cout<<"\tMonitor nr."<<i+1;cout<<"\nFirma producatoare: ";cout<< d[i].name;cout<<"\nMarimea (inch): ";cout<<d[i].size;cout<<"\nNr. de culori: ";cout<<d[i].colors;cout<<"\nRezolutia: ";cout<<d[i].resolution;cout<<"\n\n";

}

Page 4: Lab1

}if (x==0) cout<<"Nu este monitor cu asa nr. de culori!\n";system("pause");

}menu();

}

void afisare() {int i;system("cls");for (i=0; i<n; i++) {

cout<<"\tMonitor nr."<<i+1;cout<<"\nFirma producatoare: ";cout<< d[i].name;cout<<"\nMarimea (inch): ";cout<<d[i].size;cout<<"\nNr. de culori: ";cout<<d[i].colors;cout<<"\nRezolutia: ";cout<<d[i].resolution;cout<<"\n\n";

}system("pause");menu();

}

void menu() {int x;system("cls");cout<<"\n\t1 - Afisarea datelor";cout<<"\n\t2 - Cautare dupa dimensiune";cout<<"\n\t3 - Cautare dupa nr. de culori";//cout<<"\n\t2 - Compararea monitarelor";cout<<"\n\t0 - Iesire\n";cin>>x;switch (x) {

case 1: {afisare();break;

}case 2: {

//dimesniunecaut=1;cautare();break;

}case 3: {

//culoricaut=2;

Page 5: Lab1

cautare();break;

}case 0: {

dlt();break;

}default: menu();

}}

void citire () {int i;system("cls");for (i=0; i<n; i++) {

cout<<"\tMonitor nr."<<i+1<<"\n";cout<<"Firma producatoare: ";d[i].name = new char[30];cin>> d[i].name;cout<<"Marimea (inch): ";cin>>d[i].size;cout<<"Nr. de culori: ";cin>>d[i].colors;cout<<"Rezolutia: ";d[i].resolution = new char[30];cin>>d[i].resolution;cout<<"\n";

}menu();

}

int main () {cout<<"Cite monitoare sunt?\n";cin>>n;citire();

return 0;}

Întrebări de control:

Page 6: Lab1

1.Definiţi noţiunea – tip abstract de date.Un tip definit de utilizator prin utilizarea zipurilor deja existente.2.Cum se defineşte o structură?Este o multime de date grupate ,conform unei ierrhii de obicei de date diferite3.Cum se defineşte o variabilă de tip structură?Definirea unei variabile de tip structura se face utilizind numelei structurei cit si o componenta respectiva.

4. Cînd se utilizează punctul, cînd - săgeata?Prin sageata are loc o atribuire, adic variabilelor se transmit functilor prin parametri.Prin punct are loc o referire.5. Care sunt deosebirile între structura din limbajul C şi C++? In C inaintea cuvintelor cheie struct uneori se adauga cuvintul cheiei tipedef .In C++ este suficent utilizarea numelui de structura la felu ca tipuri predefinite.