Structuri și șiruri de caractere
1. Să se definească o structură pentru un număr complex cu componente reale (de tip float) şi să se
implementeze următoarele funcţii pentru operaţiile aritmetice cu numere complexe: adunarea,
scăderea și înmulţirea.
a) Funcțiile pentru operaţiile cu structuri se vor realiza prin funcții "void" (cu pointeri)
b) Funcțiile pentru operaţiile cu structuri se for realiza fără pointeri (cu rezultat structură)
2. Se defineşte o structură “ŢARĂ” având ca membri câmpurile: numele ţării, populaţia şi 3 culori care
apar pe drapelul fiecărei ţări. Să se scrie cel puţin o funcţie pentru fiecare din următoarele cerinţe:
a) Determinarea ţărilor al căror drapel conţine o anumită culoare introdusă de la tastatură
b) Ordonarea ţărilor descrescator după nume
c) Ordonarea ţărilor descrescator după populaţie
d) Determinarea media populaţiei tuturor ţărilor. Afișați țările a căror populație e mai mare decât
media populaţiei tuturor ţărilor
e) Determinaţi ţările care încep cu aceeaşi literă (introdusă de la tastatură)
3. Se defineşte o structură “ANGAJAT” având ca membri câmpurile: nume, vârstă, firma la care
lucrează (o structură caracterizată prin număr angajaţi şi localitatea unde are sediul). Să se scrie cel
puţin o funcţie per cerinţă pentru fiecare dintre operaţiile:
a) Găsirea angajaţilor cu acelaşi nume care lucrează la firme aflate în aceeaşi localitate
b) Ordonati crescător firmele în funcţie de numărul de angajaţi
c) Determinaţi angajaţii care au vârsta mai mică decât media (media de vârstă a tuturor
angajaţilor, de la toate firmele). Pentru calculatul mediei se va scrie o funcţie distinctă.
d) Determinaţi firma cu numărul maxim de angajaţi
4. Declaraţi o structura TIMP cu câmpuri (int) ora, minut, secunda. Declaraţi încă o structură DATA cu
câmpuri {zi, luna, an, struct TIMP}. Scrieţi câte o funcţie pentru citirea, respectiv afişarea corectă o
variabilei de tip struct DATA.
5. Se defineşte o structură ELEV cu câmpurile (toate int) nr_matricol, materie1, materie2. Declaraţi un
vector elevi de tipul struct ELEV în care stocaţi date (cele menţionate anterior) despre elevii unei
clase (maxim 5-6 inregistrări). Să se scrie cel puţin o funcţie per cerinţă pentru fiecare dintre
operaţiile:
a) Găsirea unui elev după nr_matricol. Dacă este găsit, se vor afișa toate informațiile
disponibile, altfel se va afişa un mesaj corespunzător
b) Deteminaţi elevii cu media mai mică decât 5
c) Determinati premiantul clasei (cel/cei cu media generală maximă). Dacă există mai mulți elevi
cu aceeeași medie, vor fi afișati toți
6. Se defineşte o structură “STUDENT” având ca membri câmpurile: nume, prenume şi 3 materii la care
acesta participă. Declaraţi un vector de studenți de tipul struct STUDENT în care stocaţi date (cele
menţionate anterior) despre studenţii unei grupe. Să se scrie funcţii definite de utilizator pentru fiecare
dintre operaţiile:
a) Găsirea unui student după nume. Daca este găsit, se vor afişa toate informaţiile disponibile,
altfel se va afişa un mesaj corespunzător
b) Determinaţi cel mai bun student la o anumită materie (materia este introdusă de la tastatură).
Dacă există mai mulţi elevi cu aceeaşi note, vor fi afişaţi toţi
c) Sortaţi vectorul descrescător în funcţie de valorea câmpului materie_1