Struct 2023
Struct 2023
1
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
Este deosebit de utilă la memorarea, manipularea și prelucrarea unor
cantități mari de date de tipuri diferite (șiruri de caractere, numere sau I
alte structuri. Ex: evidența persoanelor, a rezultatelor unor examene,…
N
O structura (struct) este un tip de date definit de utilizator. Conține o T
R
colecție de date de tipuri diferite. Datele dintr-o structură sunt numite
componente, membri sau campuri.
O
Doar definirea unei noi structuri (struct) nu ocupă memorie ci creează un
tip nou de date. Doar variabilele incluse și declarate în structura D
respectivă, ocupă memorie. U
.Componentele (membrii/înregistrările) unei variabile de tipul unei structuri C
sunt alocate în memorie una după cealaltă (zona contiguă adică sunt
utilizate blocuri de memorie având adrese consecutive)
E
. R
.Operații permise: accesul la membri (variabila.camp), atribuiri pentru e
variabile de tip structură (B = A), obținerea adresei unei variabile
structură (&), determinarea dimensiunii unei structuri (sizeof(var_struct))
2
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
C
= o colecție de date neomogene (de tipuri A
diferite) grupate sub un singur nume ce pot fi
Definiție manipulate și prelucrate ca un singur R
obiect/entitate
A
C
struct nume_structura (nume_structura e opțional dar…) T
{
Forma
{ E
generală
(declarare) tip_de_date nume_variabila1; R
tip_de_date1 nume_variabila2; I
tip_de_date2 nume_variabila3; S
................................................
tip_de_date nume_variabila_n; T
} I
nume_variabila_structura; C
I
3
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
struct elev
{
int ani;
char nume[20], prenume[20]; D
} e;
float medieMate, medieInfo;
E
Exemplu de
declarare
A fost declarată o structură de date numită elev C
ce conține cinci câmpuri (membrii ai structurii).
Numele variabilei asociate structurii, este e iar L
câmpurile componente sunt:
- ani (tip de date int) A
- nume, prenume (tip de dată char)
- medieMate, medieInfo (tip de dată float)
R
A
Forma generală: R
nume_variabila_structura.nume_câmp;
Accesul la
(se indică numele variabile structură punct nume câmp)
E
câmpurile
structurii Exemple:
e.ani
e.prenume
e.nume
e.medieMate 1
etc.
4
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
struct produs
{
int greutate;
char culoare[20]; D
};
float pret;
E
C
Exemplu de mar, banana, pepene; // trei variabile asociate structurii
declarare A fost declarată o structură de date numită produs
ce conține trei câmpuri: L
- greutate (tip de date int)
A
- pret (tip de date float)
- culoare (tip de date char) R
A
Forma generală: R
nume_variabila_structura.nume_câmp;
Accesul la (se indică numele variabile structură punct nume câmp) E
câmpurile
Exemple:
structurii mar.pret banana.greutate
pepene.pret banana.culoare 2
5
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
struct produs
{ I
N
Exemplu de int greutate;
declarare și char culoare[20];
I
float pret;
inițializare };
mar={12, “rosu”, 7.5}, banana, pepene;
T
O variabilă de tip I
struct poate
inițializată înscriind
fi A
între acolade, L
separate prin
virgulă, valorile I
pentru fiecare Z
câmp. Înscrierea
valorilor se face în A
ordinea strictă în
1
care acestea apar
R
3
32
în definiție. e
6
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
A
struct produs
{
C
Exemplu de int greutate; C
char culoare[20];
declarare float pret; E
};
mar, banana, pepene; // trei variabile, multiple; S
Exemplu de acces la L
câmpuri pentru A
citirea de la tastatură
a valorii
câmpurilor
C
A
Exemplu de acces la m
câmpuri pentru P
afișarea valorii U
câmpurilor R
i
7
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
A
struct produs
{ C
Exemple de int greutate;
char culoare[20]; C
atribuiri și float pret; E
acces la };
câmpuri
mar1, mar2; // două variabile, multiple S
mar1.greutate=100;
mar1.pret=4;
mar2=mar1;
L
A
Unei inregistrări (variabilă de tip structură) i se poate atribui valoarea
unei altei inregistrări dar cu condiția de a fi de același tip
C
A
Asupra
m
câmpurilor
inregistrării pot P
fi efectuate 2 U
calcule 40 R
i
8
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
Structura I
student, include o
(sub)structură
M
numită data. B
Structura
(prinicpală) I
student și
(sub)structura C
data, au asociate
ca variabile pe: s
A
și d R
E
Accesul la câmpuri se face
indicând succesiv și separat
prin operatorul binar – ce are 1
prioritate maximă - ”.” (punct):
structura.substructura.câmp
9
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
A fost declarată
structura data ce
I
conține trei
câmpuri (an, zi,
M
luna). A mai fost B
declarată și
structura student I
ce include, două
câmpuri de tip char C
(nume, spec), un
câmp float (media) A
și un câmp de timp
data. R
E
Accesul la câmpuri se face
indicând succesiv și separat
prin operatorul binar – ce are 2
prioritate maximă - ”.” (punct):
structura.substructura.câmp
10
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș
Tipul de date ”struct”
V
A fost declarat un vector
numit e ale cărui E
elemente sunt de tip C
inregistrare, fiecare T
element al său conținând O
câmpurile nume și note la
R
cele trei discipine.
de
G
A
T
A
!
12
Liceul Teoretic ”Mihai Veliciu” – Chișineu-Criș