Tipul înregistrare în C++: Definire și utilizare, exemple de algoritmi rezolvați

Introducere

În limbajul de programare C++, tipul de date înregistrare este o modalitate eficientă de a combina mai multe variabile sub același nume. În acest articol, vom explora modul în care putem defini și utiliza tipul înregistrare în C++. Vom analiza, de asemenea, câteva exemple de algoritmi rezolvați care demonstrează utilitatea acestui tip de date.

Definirea tipului înregistrare în C++

Pentru a defini un tip înregistrare în C++, utilizăm cuvântul cheie struct. O înregistrare este o colecție de variabile de diferite tipuri, care pot fi accesate folosind un singur nume de variabilă.

Structurile în C++ pot conține orice tip de date valid, inclusiv alte structuri. De asemenea, putem adăuga funcții membru la o structură, ceea ce duce la crearea unei clase.

Iată un exemplu simplu de definire a unui tip înregistrare în C++:


struct Persoana {
    std::string nume;
    int varsta;
    std::string ocupatie;
};

În acest exemplu, am definit o structură numită “Persoana” care conține trei variabile: “nume” de tip std::string, “varsta” de tip int și “ocupatie” de tip std::string.

Utilizarea tipului înregistrare în C++

Unul dintre principalele avantaje ale tipului înregistrare în C++ este că ne permite să combinăm mai multe variabile sub același nume. Aceasta face codul mai ușor de înțeles și de întreținut.

Pentru a accesa variabilele dintr-o înregistrare, folosim operatorul punct (.). De exemplu, pentru a accesa variabila “nume” din structura “Persoana”, am folosi următoarea sintaxă:


Persoana p;
p.nume = "John Doe";

Pentru a citi sau afișa valorile variabilelor dintr-o înregistrare, folosim, de asemenea, operatorul punct. De exemplu:


std::cout << "Nume: " << p.nume << std::endl;
std::cout << "Varsta: " << p.varsta << std::endl;
std::cout << "Ocupatie: " << p.ocupatie << std::endl;

Exemple de algoritmi rezolvați utilizând tipul înregistrare în C++

Pentru a ilustra utilitatea tipului înregistrare în C++, să analizăm câteva exemple de algoritmi rezolvați care folosesc acest tip de date.

Exemplu 1: Calcularea mediei unui grup de studenți


struct Student {
    std::string nume;
    double nota;
};

double calculMedie(Student* studenti, int numarStudenti) {
    double suma = 0.0;
    for (int i = 0; i < numarStudenti; i++) {
        suma += studenti[i].nota;
    }
    return suma / numarStudenti;
}

int main() {
    Student studenti[3];
    studenti[0] = {"John Doe", 9.5};
    studenti[1] = {"Jane Smith", 8.7};
    studenti[2] = {"Alex Johnson", 7.9};

    double medie = calculMedie(studenti, 3);
    std::cout << "Media studentilor: " << medie << std::endl;

    return 0;
}

Acest exemplu demonstrează cum putem utiliza tipul înregistrare pentru a reprezenta informații despre studenți. Funcția “calculMedie” primește un array de structuri “Student” și calculează media notelor acestora.

Exemplu 2: Gestionarea unei liste de contacte


struct Contact {
    std::string nume;
    std::string numarTelefon;
};

void afisareContacte(Contact* contacte, int numarContacte) {
    for (int i = 0; i < numarContacte; i++) {
        std::cout << "Nume: " << contacte[i].nume << std::endl;
        std::cout << "Numar de telefon: " << contacte[i].numarTelefon << std::endl;
        std::cout << std::endl;
    }
}

int main() {
    Contact contacte[2];
    contacte[0] = {"John Doe", "123456789"};
    contacte[1] = {"Jane Smith", "987654321"};

    afisareContacte(contacte, 2);

    return 0;
}

Acest exemplu ilustrează cum putem utiliza tipul înregistrare pentru a gestiona o listă de contacte. Funcția “afisareContacte” primește un array de structuri “Contact” și afișează numele și numărul de telefon al fiecărui contact.

Concluzie

Tipul înregistrare în C++ este o unealtă puternică pentru a combina mai multe variabile sub același nume și pentru a organiza mai eficient datele. Acest tip de date poate fi utilizat într-o varietate de scenarii și poate contribui la îmbunătățirea clarității și eficienței codului. Sperăm că acest articol v-a oferit o înțelegere mai bună a modului în care puteți defini și utiliza tipul înregistrare în C++ și a beneficiilor sale.