Lucrare NR_1 Varianta 2

download Lucrare NR_1 Varianta 2

of 19

description

Programarea C++

Transcript of Lucrare NR_1 Varianta 2

Universitatea Tehnica a Moldovei

Catedra Automatica si Tehnologii Informationale Disciplina: Programarea in limbajul C++RAPORT

Lucrare de laborator Nr.1

Varianta 2Tema: Structura mecanism de abstractizare

A efectuat : studentul grupei ISBM-111

Golubenco AlexandruA verificat: lector universitar Cojocaru Svetlana

Chisinau 2012Scopul si sarcina lucrarii:Studierea programrii prin abstractizarea datelor; Studierea regulilor de definire i utilizare a structurilor de date;

Crearea variabilelor de tip structur, accesarea componentelor unei structuri.a) S se creeze tipul abstract de date (structura) cine, care se compune din ras, nume i vrst. S se defineasc funciile de setare i modificare a datelor i de eliberare a memoriei alocate. Pentru iniializarea componentelor textuale s se utilizeze operatorul de alocare dinamic a memoriei new. S se defineasc funcia pentru sortarea tabloului de tip cine conform vrstei i numelui. Adic cinii de aceeai vrst se sorteaz n ordine alfabetic.b) S se creeze tipul abstract de date (structura) vector, care se compune dintr-un pointer spre int i din numrul de elemente. S se defineasc funciile de iniializare, de eliminare a unui vector; de setare/ modificare a dimensiunii vectorului; de acces la elementele vectorului; de calcul a modulului unui vector. n funcia main s se realizeze adunarea a doi vectori.

Indicatii teoretice:Structura reprezinta o variabila care ne permite sa lucram eficient si fara erori cu elementele care sunt de tip diferit. Aceasta ne permite sa reducem complexitatea programului si sa oformam datele necesare intr-un mod cit mai eficient.De exemplu formam o structura de tip vector:

struct vector{

short int *elemente;

int numar;}; astfel urmatoarele variabile care vor fi declarate pe baza structurii date vor fi de tip

Definirea structurii- prin declararea unui structuri nu se subintelege declararea unei variabile de tip structura. Structura declarata va deveni drept sablon pentru urmatoarele variabile de tip structura.

Cuvintul cheie ce caracterizeaza o structura este struct iar elementele structurii trebuie de le indicat tipul de date.

Limbajul ne permite sa declaram variabilele de un tip structura fie la inceput declarind structura apoi variabilele.

struct vector{

short int *elemente;

int numar;}; vector v_1,v_2;fie imediat dupa declararea structurii:

struct vector{

short int *elemente;

int numar;}; v_1,v_2;

Structurile de alte tipuri de date se diferentiaza prin modul sau de pastrare si introducere. De exemplu lista: se caracterizeaza printr-un tip liniar de introducere a datelor, operatiile de baza sunt de includere si excludere si fiecare element e caracterizat de vecini si lista are cap si indicator de sfirsit; arborele ne permite sa executam calculele si cautarile intrun mod rapid .Vom utiliza punctul cind vom face acces la elementele unui structuri precizind numele variabilei de tip structura si cimpurile ce ne intereseaza separate prin acest punctVom utiliza sageata cind accesam un element dintr-o structura printr-un pointer

Structurile din mediul de programare C si C++, se deosebesc prin cuvintul cheie

typedef care la C++ lipseste

O structura poate contine in sine o alta structura aceasta din urma fiind o structura imbricata

Este ilegal a declara o structura care face apel la ea insasi insa ea poate contine un pointer la ea insasiO structura poate fi initializata prin alocare de memorie, aceasta ne permite sa utilizam atita memorie cit este suficienta pentru informatia existenta.

Referintele, ca si pointerii, sunt variabile care contin adresa unei zone de memorie.

Semantic, ele reprezinta aliasuri ale unor variabile existente. Referintele sunt legate de variabile la declaratie si nu pot fi modificate pentru a referi alte zone de memorie. Sintaxa folosita pentru declararea unei referinte este:

Tip & referinta = valoare;

Realizarea sarcinii a)Introducerea datelor:

Meniul principal se realizeaza in functia main()Codul sursa:

void main(void){

char com;

sus:clrscr();

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);

cout