54349 afișări Candale Silviu (silviu) 25.09.2021 www.pbinfo.ro
Etichete: nicio etichetă

În acest articol vom vedea cum declarăm și folosim tablouri ale căror elemente sunt structuri, precum și modul de lucru cu subprograme care au ca parametri structuri.

Tablouri de structuri. Structuri cu câmpuri de tip tablou

În C/C++ se pot declara tablouri cu elemente de tip structură și, de asemenea, o structură poate avea elemente de tip tablou (am văzut deja acest lucru în cazul tipului Persoana, cu câmpurile nume și prenume de tip șir de caractere).

Următoarea secvență C++ conține o asemenea situație:

struct Elev{
    char nume[21], prenume[21], sex;
    int numar_note;
    int note[10];
};

int n;
Elev V[28];

int main()
{
    //....
    for(int i = 0 ; i < n ; i ++)
    {
        cin >> V[i].nume >> V[i].prenume >> V[i].sex >> V[i].numar_note;
        for(int j = 0 ; j < V[i].numar_note; j ++)
            cin >> V[i].note[j];
    }
    //...
}

Funcții care lucrează cu structuri

De reținut:

  • o funcție C++ poate avea parametri de tip structură
  • dacă dorim ca funcția să întoarcă un parametru modificat (cu câmpurile modificate), acesta trebuie transmis prin referință
  • o funcție poate returna o valoare de tip structură

Exemplu:

Structura Punct memorează coordonatele întregi ale unui punct din plan:

struct Punct{
    int x,y;
};

Funcția double Dist(Punct P) determină distanța de la origine la punctul P. Parametru este transmis prin valoare:

double Dist(Punct P){
    return sqrt(P.x * P.x + P.y * P.y);
}

Funcția void Citire(Punct & P) citește coordonatele punctului P și întoarce coordonatele:

void Citire(Punct & P){
    cin >> P.x >> P.y;
}

Funcția Punct Simetric(Punct P) returnează o structură cu coordonatele simetricului lui P față de origine:

Punct Simetric(Punct P){
    Punct tmp;
    tmp.x = - P.x, tmp.y = - P.y;
    return tmp;
}

Exerciții

662 807 911 290 263


54349 afișări Candale Silviu (silviu) 25.09.2021 www.pbinfo.ro