La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

FLSI602 Génie Informatique et Réseaux Alberto Bosio

Présentations similaires


Présentation au sujet: "FLSI602 Génie Informatique et Réseaux Alberto Bosio"— Transcription de la présentation:

1 FLSI602 Génie Informatique et Réseaux Alberto Bosio

2 2 Les structures Une généralisation de la notion de tableaux #include #include #include struct personne { char nom[50+1]; int age; } mere,pere;

3 3 Les structures int main (void) { strcpy (pere.nom,"Dupont"); pere.age = 50; printf (" pere : age %d, nom % s\n", pere.age, pere.nom); mere = pere; printf (" mere : age %d, nom % s\n", mere.age, mere.nom); … }

4 4 Les structures Une généralisation de la notion de tableaux #include #include #include typedef struct personne { char nom[50+1]; int age; } personne_t;

5 5 Les structures int main (void) { personne_t mere,pere; strcpy (pere.nom,"Dupont"); pere.age = 50; printf (" pere : age %d, nom % s\n", pere.age, pere.nom); mere = pere; printf (" mere : age %d, nom % s\n", mere.age, mere.nom); }

6 6 Les structures 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 7 Exemple repertoire_t monsieur; /* variable */ monsieur nom adresse telephone age

8 8 Exemple repertoire_t monsieur; /* variable */ monsieur Dupont 35,rue exemple 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 9 Exemple repertoire_t messieurs[3]; /* variable */ messieurs nom adresse telephone age 012

10 10 Exemple repertoire messieurs[3]; // variable messieurs nom adresse telephone age 012 strcpy (agenda[1].nome, Dupont ); strcpy (agenda[1].adresse, 35, rue exemple ); strcpy (agenda[1].telephone, ); agenda[1].age = 27;

11 11 Exemple repertoire messieurs[3]; // variable messieurs nom adresse telephone age Dupont 35,rue exemple strcpy (agenda[1].nome, Dupont ); strcpy (agenda[1].adresse, 35, rue exemple ); strcpy (agenda[1].telephone, ); agenda[1].age = 27;

12 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 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 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 15 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; Operatuer « -> » Équivalent a l operatuer « * » (*pA).x = 7; (*pA).y = 3;

16 16 Allocation dynamique de structures point_t *pB; /* Copie de pointeur */ pB = pA; pB->y = pB->x + 1;

17 17 Allocation dynamique de structures pA = &A; /* Affectation statique */ pA->x = 1; (*pA).y = A.y - 1;

18 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 Pour chaque employé il faut mémoriser le nombre m de semaine de travail de lanné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 dheure de travail. 19

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 dheures de travail par jour est un entier entre 1 et 24 20


Télécharger ppt "FLSI602 Génie Informatique et Réseaux Alberto Bosio"

Présentations similaires


Annonces Google