Diferență între revizuiri ale paginii „PC Laborator 11”
Linia 35: | Linia 35: | ||
int main() { | int main() { | ||
struct Masina masina; | struct Masina masina; | ||
+ | return 0; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Odată definită o variabilă de tip <code>struct</code>, operatorul folosit pentru a accesa câmpurile structurii este <code>.</code>: | ||
+ | |||
+ | <syntaxhighlight lang="c"> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | struct Masina { | ||
+ | char marca[100]; | ||
+ | char model[50]; | ||
+ | unsigned short anFabricatie; | ||
+ | char numarInmatriculare[8]; | ||
+ | char culoare[10]; | ||
+ | }; | ||
+ | |||
+ | int main() { | ||
+ | struct Masina masina; | ||
+ | printf("Care este marca masinii? "); | ||
+ | fgets(masina.marca, 100, stdin); | ||
+ | printf("Care este modelul masinii? "); | ||
+ | fgets(masina.model, 50, stdin); | ||
+ | printf("Care este numarul de inmatriculare al masinii? "); | ||
+ | fgets(masina.numarInmatriculare, 8, stdin); | ||
+ | printf("Care este culoarea masinii? "); | ||
+ | fgets(masina.culoare, 10, stdin); | ||
+ | printf("Care este anul de fabricatie a masinii? "); | ||
+ | scanf("%hu", &masina.anFabricatie); | ||
+ | |||
return 0; | return 0; | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 16 decembrie 2015 18:30
Obiective
La sfârșitul acestui laborator studenții vor fi capabili:
- să definească tipuri de date noi, de tip
struct
,union
șienum
; - să declare și să utilizele variabile de aceste tipuri în programe
Tipurile de date struct
Tipurile de date struct
sunt utilizate pentru a agrega mai multe multe varibile care au sens împreună. De exemplu, dorim să stocăm informații despre o mașină, prin urmare avem nevoie să stocăm marca, modelul, anul de fabricație, numărul de înmatriculare, culoarea, etc. Putem în acest caz să definim o structură numită Masina care să stocheze aceste valori. Variabilele care aparțin unei structuri se numesc câmpuri ale structurii. Un exemplu:
struct Masina {
char marca[100];
char model[50];
unsigned short anFabricatie;
char numarInmatriculare[8];
char culoare[10];
};
Câmpurile structurii Masina sunt: marca, model, anFabricatie, numarInmatriculare și culoare.
Atenție: Definiția unei structuri nu implică automat și existența unei variabile de tipul respectiv, așa cum definirea tipului de dateint
nu implică existența unei varibile de tipint
.
Declararea unei variabile de tipul Masina se face exact ca declararea oricărei alte varibile, sub forma: <tip_data> <nume_variabila>, cu observația că tipul de dată va conține și cuvântul cheie struct
, deci acesta va fi struct Masina
:
struct Masina {
char marca[100];
char model[50];
unsigned short anFabricatie;
char numarInmatriculare[8];
char culoare[10];
};
int main() {
struct Masina masina;
return 0;
}
Odată definită o variabilă de tip struct
, operatorul folosit pentru a accesa câmpurile structurii este .
:
#include <stdio.h>
struct Masina {
char marca[100];
char model[50];
unsigned short anFabricatie;
char numarInmatriculare[8];
char culoare[10];
};
int main() {
struct Masina masina;
printf("Care este marca masinii? ");
fgets(masina.marca, 100, stdin);
printf("Care este modelul masinii? ");
fgets(masina.model, 50, stdin);
printf("Care este numarul de inmatriculare al masinii? ");
fgets(masina.numarInmatriculare, 8, stdin);
printf("Care este culoarea masinii? ");
fgets(masina.culoare, 10, stdin);
printf("Care este anul de fabricatie a masinii? ");
scanf("%hu", &masina.anFabricatie);
return 0;
}