Vous êtes sur la page 1sur 2

Structuri de date neomogene

Înregistrarea este o structura de date formata dintr-un ansamblu de date neomogene (date
elementare sau structuri de date) intre care exista o legatura de continut.

Elementele structurii se numesc câmpuri si pot fi identificate dupa nume.

(tabloul grupa date omogene si le identificam dupa indice)

Structura este un tip de data utilizator care reuneste un grup de variabile sub acelasi nume.

Forma generala: struct[<nume structura>]{ <tip_data1> <nume 11>,<nume 12>,…;

<tip_data2> <nume 21>,<nume 22>,…;

<tip_data n> <nume n1>,<nume n2>,…;

}[<nume variabila>];

Se pot folosi trei variante de declarare a tipului inregistrare si a variabilei de acelasi tip:

1) struct<nume structura>{ <descriere campuri inregistrare>};

<nume structura> <nume variabila>;

2) struct<nume structura>{ <descriere campuri inregistrare>}<nume variabila>;

3) struct { <descriere campuri inregistrare>}<nume variabila>;

Exemplu:
1)struct elev 2)struct elev {char nume[50];

{char nume[50]; {char nume[50]; int clasa,nm;

int clasa,nm; int clasa,nm; float medie;}x,e[20];

float medie;}; float medie;}x,e[20];

elev x,e[20];

3)struct

Numele inregistrarii elev

Numele campului nume clasa nm medie

Tipul campului Sir de caractere intreg intreg real

valoarea Dinu 11 3245 9.20


Accesul la campurile inregistrarii: <nume variabila inregistrare> . <nume camp>

Exemplu: cout<<”numele elevului:”; cin.get(x.nume,50); cin.get();

cout<<”clasa=”; cin>>x.clasa:

cout<<”numar matricol=”; cin>>e[i].nm:

cout<<”media=”; cin>>e[7].medie;

Prin referirea<nume variabila inregistrare>. Se identifica intreaga inregistrare(toate campurile)

Obs.unei inregistrari i se poate atribui valoarea unei alte inregistrari de acelasi tip.

Exemplu: x=e[2]; strcpy(e[10].nume,x.nume); e[7]=x; e[10].nume[3]=x.nume[0];

Exemplu: struct punct{int x,y;};

punct a,b;

a.x=10; a.y=20; b=a;

cout<<b.x<<” „<<b.y; \\ afiseaza 10 20

Inregistrari imbricate:
struct persoana{char nume[20],prenume[20];

struct{unsigned zi,luna,an;}data_n, data_a;

unsigned long salariu;};

persoana p;

Daca ne referim la ziua de nastere se va folosi: p.data_n.zi;

Ce varsta avea cand s-a angajat: p.data_a.an- p.data_n.an;

sau
struct data{unsigned zi,luna,an;};

struct persoana{char nume[20],prenume[20];

data data_n, data_a;

unsigned long salariu;};

persoana p;

Vous aimerez peut-être aussi