Sunteți pe pagina 1din 5

Structuri

Structurile sunt un tip de date neomogene – permit pastrarea intr-o variabila de


acest tip a unor date de tipuri diferite.
EX: informatii cu privire la o anumita entitate/ un anumit obiect – elev, student,
agnajatul dintr-o firma;
Elev: nume, prenume, note, medii, adresa, numar matricol – au tipuri de date
diferite.
Structurile se mai numesc si inregistrari.
Tipul de date in c/c++ pentru structuri se numeste struct.
Informatiile cuprinse intr-un tip structura se numesc campuri ale structurii.
Sintaxa:
Struct <nume_struct>{
<tip1> <lista_campuri1>;
<tip2> <lista_campuri2>;
.....
<tipn> <lista_campurin>;
};
Explicatii:
<nume_struct> = denumirea structurii.
<lista_campuri> = liste de campuri ce pot contine unul sau mai multe campuri
separate prin virgule.
<tip> = tipurile de date pentru fiecare lista de campuri
Exemplu:
Struct elev{
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
};
Declarare:
Struct elev{
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
} e1,e2;
Sau
Elev x,y,z;
EX: se defineste structura ca un tip de date anonim (nu are nume)
struct {
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
} e1,e2;
Accesul la campurile unei structuri
Sintaxa:
<variabila structura>.<nume camp>
Pentru a accesa un camp dintr-o variabila de tip structura se foloseste notatia cu
punct.
EX:
E1.nume
E1.pren
E1.nota1
Etc.
Citire/afiare
Nu este permisa citirea/afisarea pentru variabi;e de tip struct – se pot citi/afisa
doar campurile incluse intr-o variabila de tip struct.
Citirea /afisare unei structuri se face camp cu camp pentru fiecare camp in parte.
EX:
Struct elev{
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
} e;
Cin.getline(e.nume,20);
Cin.getline(e.pren, 20);
Cin>>e.nota1>>e.nota2>>e.nota3;
e.medie = (e.nota1+e.nota2+e.nota3)/2;
Cout<<e.nume<<” „ e.pren<<endl;
Cout<<e.nota1<<” „<<e.nota2<<” „<<e.nota3;
Cout<<e.medie;

Operatii/prelucrari permise asupra campurilor dintr-o structura


Fiecare camp dintr-o structura are un tip de date, se comporta ca o variabila de
tipul de date respectib  asupra campului sunt permise operatii pe care le
putem face cu variabila de tipul de fate respectiv.
Ex:
S=e.nota1+e.nota2;
If(e.medie>=9.5)....
Strcat(e.nume, e.pren);
Atribuirea pentru structuri
Este permisa operatia de atribuire intre 2 variabile de tip structura, daca avem
acelasi tip de date struct.
Struct elev{
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
} e1, e2;
...
E1=e2 // fiecare camp din e1 va primi aceeasi valoare cu campul corespunzator
din e2.
Atriuirea este identica cu urmatorul set de operatii.
Structuri imbricate
Daca un camp dintro structura este la randul sau o structura de alt tip, atunci
spunem ca avem structuri imbricate – o structura este inclusa in alta structura.
Struct data
{int zi, luna, an};
Struct elev{
Char nume[30];
Data data_nasterii;
Floar medie;
}x;
x.nume
x.data_nasterii -> x.data_nasterii.zi;
x.medie

Tablouri unidimensionale cu tipuri de baza structura


Ex:
Struct elev{
Char nume[20], pren[20];
Int nota1, nota2, nota3;
Float medie;
} v[10];

S-ar putea să vă placă și