Sunteti gata de “struct”-uri <–Intermediar[C++]
Scris de d3light
–>>Tutorial destinat celor ce au cat de cat habar de c++ < <--
Sa discutam un pic despre structuri...
Ce pot face structurile?
Ei bine sa zicem ca sunteti elev de liceu...Ganditi-va ca aveti de facut un program care sa gestioneze: adresa,varsta,numele si media fiecarui coleg din clasa...
in mod normal ati declara in programul principal ceva de genu:
char nume[30][50];
char adresa[30][50];
int varsta[30];
double media[30];
int n;
cout< <"Cati elevi sunt in clasa? ";cin>>n;
for(int i=0;i{
//citire nume[i][50];
//citire adresa[i][50];
//citire varsta[i];
//citire media[i];
}
.
.
.
//gestionare de date
Ganditi-va ce bine ar fi daca fiecare coleg ar avea cate un “antet” pentru datele sale.Ei bine tocmai ati aflat ce sunt alea structurile!
Structurile permit o mai bine organizare a variabilelor..Astfel ,modelul universal de struct este:
struct
{
tip1 nume1;
tip2 nume2;
.
.
.
tipn numen;
}V1,V2…Vn;
Structurile se declara global,asta inseamna ca se delcara in afara “Main”-ului(practic deasupra lui).
Acum explicatia: ganditi-va la struct ca un catalog de date.
tip1 nume1;
tip2 nume2;
.
.
.
tipn numen; - variabilele continute de struc
V1,V2…Vn - variabile cu care se lucreaza.Trebuie precizat ca nu se poate lucra cu
copii ale structului respectiv.
V1,V2…Vn - daca lipsesc,
Folosind ,
declararea copiilor de struct pe parcursul programului pentru a se face economie de memorie.
Astfel modelul cel mai folosit de struct este:
{
tip1 nume1;
tip2 nume2;
.
.
.
tipn numen;
};
Acum…sa creem un struct pentru nevoile nostre.Sa numim structul “coleg”.Sa nu uitam ca avem nevoie de adresa,varsta,numele si media.
incepem cosntructia(nu uitati ca de obicei se pune deasupra “main”-ului):
struct coleg
{
char adresa[50];
char nume[50];
int varsta;
int media;
};
Acum ca avem declarat structul…trebuie sa il si folosim,nu?
Structul este un catalog de variabile.se lucreaza cu copii ale structului,nu cu numele structului in sine!!!
Sa zicem ca la noi in clasa sunt 30 de elevi,deci am avea nevoie de 30 de structuri copii ale structului “coleg”.
Le declaram cu ajutorul arrayului lafel cum am declara un array de variabile de acelasi tip si anume:
coleg colegi_in_clasa[30];
Simplu,nu?
Probabil va intrebati…bun am creat,am declarat,dar cum folosim?Ei bine…si acest lucru e simplu…
Accesam variabila prin intermediul copiei de struct urmata de ‘.’(punct) si de numele variabilei din struct.Astfel noul nostru progrma cu struct va arata:
struct coleg
{
char adresa[50];
char nume[50];
int varsta;
int media;
};void CitireStruct(coleg &copie_coleg)
{
cout< <"nDati numele : ";cin.get(copie_coleg.nume,50);
cout<<"nDati Adresa : ";cin.get(copie_coleg.adresa,50);
cout<<"nDati Varsta : ";cin>>copie_coleg.varsta;
cout< <"nDati Media : ";cin>>copie_coleg.media;
}void main()
{
//cod de inceput
.
.
int n;
coleg colegi_in_clasa[30];
cout< <"Cati colegi ai in clasa? ";cin>>n;
for(int i=0;icitire(colegi_in_clasa[i]);
.
.
//alt cod de program
}
Alta viata,nu?
P.S: Am facut acest tutorial pentru a face legatura intre structurile din C++ cu clasele din C#.Sunt FF asemanatoare! Dati-va seama si singuri!
©3Nigma
Categoria: Programare
