Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
FLSI602 Génie Informatique et Réseaux
Alberto Bosio
2
Les structures #include <string.h> int age; } mere,pere;
Une généralisation de la notion de tableaux #include <string.h> int age; } mere,pere;
3
Les structures … }
4
Les structures int age; } personne_t;
Une généralisation de la notion de tableaux int age; } personne_t;
5
Les structures printf (" mere : age %d , nom % s\n", mere.age, mere.nom); }
6
Les structures typedef struct repertoire { char nom[50+1];
Un tableau de structures typedef struct repertoire { char nom[50+1]; char adresse[50+1]; char telephone[50+1]; int age } repertoire_t; repertoire_t agenda[5]; strcpy (agenda[0].nome , “Dupont”); strcpy (agenda[0].adresse , “35, rue exemple”); strcpy (agenda[0].telephone , “ ”); agenda[0].age = 27;
7
Exemple repertoire_t monsieur; /* variable */ monsieur nom adresse
telephone age
8
Exemple “Dupont” “+3306569874” repertoire_t monsieur; /* variable */
“35,rue exemple” “ ” 27 nom adresse telephone age strcpy (agenda[0].nome , “Dupont”); strcpy (agenda[0].adresse , “35, rue exemple”); strcpy (agenda[0].telephone , “ ”); agenda[0].age = 27;
9
Exemple repertoire_t messieurs[3]; /* variable */ messieurs 1 2 nom
1 2 nom adresse telephone age
10
Exemple repertoire messieurs[3]; // variable messieurs 1 2 nom adresse
strcpy (agenda[1].nome , “Dupont”); strcpy (agenda[1].adresse , “35, rue exemple”); strcpy (agenda[1].telephone , “ ”); agenda[1].age = 27; repertoire messieurs[3]; // variable messieurs 1 2 nom adresse telephone age
11
Exemple repertoire messieurs[3]; // variable messieurs 1 2 “Dupont”
strcpy (agenda[1].nome , “Dupont”); strcpy (agenda[1].adresse , “35, rue exemple”); strcpy (agenda[1].telephone , “ ”); agenda[1].age = 27; repertoire messieurs[3]; // variable messieurs 1 2 “Dupont” “35,rue exemple” “ ” 27 nom adresse telephone age
12
Les structures Imbrication de structures et tableaux
typedef struct Couple { Personne_t membre[2]; int statut }couple_t; couple_t X; X.membre[0] = pere; X.membre[1] = mere; X.statut = 1; /* MARIE */ X.membre[0].age = X.membre[0].age + 1;
13
Les structures Modes de transmission
Par valeur : une copie champ à champ est réalisée Par référence/adresse : plus rapide void affiche1(personne_t p) { /* p est une copie du point passé en argument */ printf (" p : age %d , nom % s\n", p.age, p.nom); } void affiche2(personne_t *p) { printf (" p : age %d , nom % s\n", (*p).age, (*p).nom);
14
Allocation dynamique de structures
typedef struct Point { int x; int y; } point_t; point_t A; A.x = 3; A.y = 5; point_t *pA; /* Déclaration d’un pointeur */ pA = (point_t*) malloc (sizeof (point_t)); /* Allocation dynamique */ pA->x = 7; pA->y = 3;
15
Allocation dynamique de structures
Operatuer « -> » Équivalent a l’operatuer « * » (*pA).x = 7; (*pA).y = 3; typedef struct Point { int x; int y; } point_t; point_t A; A.x = 3; A.y = 5; point_t *pA; /* Déclaration d’un pointeur */ pA = (point_t*) malloc (sizeof (point_t)); /* Allocation dynamique */ pA->x = 7; pA->y = 3;
16
Allocation dynamique de structures
point_t *pB; /* Copie de pointeur */ pB = pA; pB->y = pB->x + 1;
17
Allocation dynamique de structures
pA = &A; /* Affectation statique */ pA->x = 1; (*pA).y = A.y - 1;
18
Allocation dynamique de structures
free (pA); /* Libération de mémoire */ pA = pB = 0;
19
Exercice On veut mémoriser des informations relatives aux employés d'une entreprise. Chaque employé est caractérisé par <Code Employé> <nom> <prénom> Pour chaque employé il faut mémoriser le nombre m de semaine de travail de l’année. Pour chaque semaine il faut mémoriser la nombre de jour de travail dans la semaine. Pour chaque jour de travail il faut mémoriser le nombre d’heure de travail.
20
Exercice Nombre de semaines de travail est un entier entre 1 et 52
Nombre de jours de travail est un entier entre 1 et 7 Nombre d’heures de travail par jour est un entier entre 1 et 24
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.