Tipul struct în C++. Ce sunt structurile de date neomogene
În clasa a IX-a, am învățat despre numeroasele tipuri de date ale limbajului C++. Cu toate acestea, există momente când am vrea să grupăm mai multe tipuri de date într-un tip unitar. Spre exemplu, să zicem că avem mai multe informații despre un elev, pe care am vrea să le grupăm cumva:
- Numele și prenumele (pe care le putem salva într-un șir de caractere
char[]
); - Vârsta (
int
); - Clasa (
int
); - Media la informatică (
double
); - …
Tipul de date struct ne ajută în acest sens.
Ce este struct în C++?
O structură de date neomogene (un struct
) reprezintă o colecție de
informații grupate sub un singur nume. Tipurile grupate pot fi de diferite
tipuri (cum am demonstrat mai devreme, unde am salvat șiruri de caractere,
numere naturale și reale, etc.).
Declararea unei structuri
O structură se declară astfel:
struct nume_struct {
tip variabila1;
tip variabila2;
…
} nume_variabila;
Spre exemplu, structura ce definește un elev poate fi reprezentată astfel:
struct elev {
char nume[30], prenume[30];
int varsta;
double medieInfo;
} a[30];
În exemplul de mai sus, am declarat un vector de elevi — fiecare elev în parte poate avea diferite valori:
nume | prenume | varsta | medieInfo |
---|---|---|---|
a[1] | Lazăr | Alexandra | 17 |
a[2] | Enescu | Șerban | 16 |
a[3] | Rusu | Jean | 17 |
… | … | … | … |
Dacă vrem, putem să declarăm structura și doar mai încolo să declarăm o variabilă de tipul acelei structuri. În acest caz, după acolada de la declararea structuri este necesar să punem ; (punct și virgulă). Iată un exemplu:
struct elev {
char nume[30], prenume[30];
int varsta;
double medieInfo;
}; //Aici trebuie punct și virgulă!
elev e1;
Accesarea unei proprietăți dintr-o structură
Să zicem că am declarat un elev de tipul de mai sus, numit e1
. Pentru a
selecta, spre exemplu, varsta
elevului, vom apela e1.varsta
. Similar, dacă
am fi avut un vector de elevi și am fi vrut să selectăm numele celui de al
treila elev, am fi apelat e[3].nume
.
Citirea și afișarea unei structuri în C++
Citirea unei structuri constă în citirea tuturor proprietăților sale. Spre exemplu, programul C++ de mai jos declară un elev și citește de la tastatură proprietățile sale:
#include <iostream>
using namespace std;
struct elev {
char nume[30], prenume[30];
int varsta;
double medieInfo;
};
int main()
{
elev e1; //Elevul nu trebuie numit "elev", altfel s-ar confunda cu structura noastră; e ca și cum am numit un număr "int", s-ar confunda cu tipul de date int
cout << "Introdu numele si prenumele elevului:";
cin >> e1.nume >> e1.prenume;
cout << "Introdu varsta elevului:";
cin >> e1.varsta;
cout << "Introdu media la info a elevului:";
cin >> e1.medieInfo;
return 0;
}
Afișarea unei structuri este similară cu citirea: afișăm pe ecran, pe rând, proprietățile sale:
cout << e1.nume << " " << e1.prenume << " are " << e1.varsta << " ani si are media " << e1.medieInfo << " la info.";
Probleme propuse
Setul de probleme 242 nu a fost găsit.
Alte resurse sau bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0