Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Î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:
char[]
);int
);int
);double
);Tipul de date struct ne ajută în acest sens.
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.).
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 | 8.66 |
a[2] | Enescu | Șerban | 16 | 8.5 |
a[3] | Rusu | Jean | 17 | 9.5 |
… | … | … | … | … |
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;
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 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.";
# | Problemă | Dificultate | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
376. | Data mai mica | Ușoară (2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
384. | Ora valida | Ușoară (2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
367. | Bine platit | Ușoară (2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
374. | Cate sunt ireductibile | Ușoară (2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
372. | Fractie minima | Ușoară (2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vrei mai multe probleme? Pe această pagină găsești întreaga listă de probleme propuse. |