Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
A) Le type structure :
1) Domaines d'utilisation :
Le type structure se trouve dans les structures de données
suivantes :
- tableau de structures
- liste linéaire chaînée, arbre binaire (pour IFT 1166)
- fichier non texte (pour IFT 1166)
- classe (programmation orientée objet)
- etc ...
2) Introduction :
Le type structure (struct) est une collection des champs qui peuvent être
de types différents.
Exemple :
Une personne est une structure avec les champs possibles suivants :
Plus tard dans les autres cours, on utilisera le type "struct" dans les
listes linéaires chaînées, les arbres binaires, les fichiers non textes,
...
3) Déclaration et terminologie :
Supposons qu'on désire déclarer deux variables pers1 et pers2
de type structure et que chaque personne dispose de quatre
informations :
- numéro : un entier
- taille et poids : deux réels
- sexe : un caractère.
struct
{
int numero ;
float taille, poids ;
char sexe ;
} pers1, pers2 ;
struct Personne
{
int numero ;
float taille, poids ;
char sexe ;
} ;
Exemples :
etc ...
struct Personne
{
int numero ;
float taille, poids ;
char sexe ;
} pers1, pers2 ;
typedef struct {
int numero ;
float taille, poids ;
char sexe ;
Remarques :
struct Personne
{ int numero ;
float taille, poids ;
char sexe ;
};
Exemple :
typedef struct
{ char nomPre [LONG_NP +1] ;
int numIns ;
float note[NB_NOTES] ;
char code[LONG_CODE+1] ;
}
Etudiant ;
Etudiant unEtud ;
Exercice :
- nom et prénom
- numéro d'employé
- numéro d'assurance sociale
- âge
- salaire hebdomadaire
- poste de travail (parmi les postes : analyste, programmeur,
opérateur, secrétaire)
variable_de_type_structure.champ
Exemples :
pers1.numero = 7234 ;
pers1.sexe = 'M' ;
pers1.taille = 1.67 ;
pers1.poids = 67.8 ;
Exemple :
Solution :
.......
B) Tableau de structures :
1) Domaines d'utilisation :
Supposons qu'on a besoin de manipuler les informations "structurées"
(des personnes, des étudiants, des employés, etc ...) dont les
traitements prévus sont :
2) Déclaration :
Écrire les déclarations d'un tableau de personnes. Chaque élément
du tableau est de type structure nommé "personne" qui comporte les
champs suivants :
typedef struct
{ char sexe ;
float taille, poids ;
}
Personne ;
Personne pers[MAX_PERS] ;
4) Compréhension de base :
Avec ces déclarations :
4) La déclaration : Personne * p ;
p = pers ;
Ce programme permet de :
1. lire le fichier "employe.txt", remplir le tableau de structure
emp (tableau d'employés)et transmettre via pointeur le nombre
de personnes lues;
2. afficher le contenu de ce tableau avant le tri
3. trier ces tableaux selon leurs numeros;
4. afficher le contenu de ces tableaux apres le tri
etc
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
typedef struct
{
char sexe ;
int numero;
float salHebdo ;
} Employe;
}
}
return salMax;
}
int main() {
if (nbFem > 0)
printf("Meilleur salaire hebdo des femmes : %.2f $\n",
meilleur('F', emp, nbEmp));
else
printf("Pas de femmes => pas de meilleur salHebdo des femmes\n");
trier(emp, nbEmp);
afficher(emp, nbEmp, "apres le tri selon les numeros");
system("pause");
return 0;
}
/* Execution :
Contenu du tableau des employes avant le tri :
0) M 972 810.00
1) M 758 630.00
2) F 860 2564.25
3) M 692 810.00
4) F 473 810.00
5) F 871 810.00
6) M 757 789.75
7) F 319 810.00
8) F 123 677.25
9) F 526 810.00
10) F 585 810.00
11) F 273 630.00
12) F 942 1959.75
13) M 927 661.50
14) F 146 810.00
15) F 281 789.75
16) F 343 870.75
17) F 948 430.50
18) F 206 630.00
19) M 771 749.25
20) M 731 379.25
21) F 375 1610.00
22) F 246 410.00
23) F 107 850.50
24) M 666 630.00
25) M 955 810.00
Le nombre de femmes : 59
Meilleur salaire hebdo des femmes : 2564.25 $
Le nombre d'hommes : 36
Contenu du tableau des employes apres le tri selon les numeros :
0) F 8 810.00
1) F 28 810.00
2) F 29 410.00
3) F 42 810.00
4) F 61 614.25
5) F 66 630.00
6) F 107 850.50
7) F 118 410.00
8) F 123 677.25
9) F 123 440.75
10) F 144 810.00
11) F 146 810.00
12) F 156 410.00
13) F 163 440.75
14) F 194 389.50
15) F 206 630.00
16) F 208 410.00
17) F 232 630.00
18) F 246 410.00
19) F 269 630.00
20) F 273 630.00
21) F 281 789.75
22) F 295 630.00
23) F 319 810.00
24) F 343 870.75
25) F 360 810.00
26) F 362 630.00
27) F 371 582.75
28) F 375 1610.00
29) F 414 769.50
30) F 429 630.00
31) F 436 410.00
32) F 439 410.00
33) F 446 630.00
34) F 463 870.75
35) F 466 410.00
36) F 467 430.50
37) F 473 810.00
38) F 474 389.50