Article : Langage C


Exercice

exo   C0039 LES STRUCTURES (TYPES COMPOSéS)  
Publié le : 29/09/2024 à 07:52

Problématique

Écrire un programme qui permet de saisir les données de 3 étudiants. Un étudiant est caractérisé par son nom, son prénom, son matricule, son numéro de téléphone, sa moyenne, son âge et son adresse. Le programme détermine et affiche l’étudiant qui a la plus grande moyenne et celui qui a la plus petite moyenne.

Pour résoudre le problème, on peut déclarer les caractéristiques de tous les étudiants : chaque caractéristique devient une variable. Ce qui équivaut à faire plusieurs allers-retours au niveau de la mémoire et de faire plusieurs réservations d’espace.

Pour plus d’optimisation et d’organisation, il est préférable d’utiliser les structures pour regrouper les variables en bloc.

Introduction

Les objets (variables) de type structure sont comme des tableaux constitués d’un ensemble de valeurs. Mais à la différence des tableaux, ces valeurs ne sont pas nécessairement de même type. Une structure est un ensemble de valeurs compactes qui regroupe des objets de plusieurs types. Ces derniers, peuvent être élémentaires ou composés (structures). Pour accéder à un élément (champ) de la structure, on met le nom de la structure suivi d’un point et ensuite le nom du champ.

I. Déclaration de structure 

Pour définir un type structure “Personne“ composé de 3 champs (nom, prénom, âge), il faut :

Définition :

struct Personne{
char nom[25];
char prenom[50];
int age;
}

Déclaration :

struct Personne p;
Dans cette définition, “Personne“ est le nom du type créé alors que “nom“, “prenom“ et “age“ sont des champs de la structure. <br>
<br>
“char nom[25]“ est un tableau (chapitre suivant) de caractères pouvant contenir jusqu’à 25 caractères. On l’appelle une chaine de caractères.

II. Les méthodes de déclarations de variables

Il existe 3 méthodes pour déclarer des variables de type structure

Méthode 1:
struct Personne{
char nom[25];
char prenom[50];
int age;
};
struct Personne p1,p2;

Avec cette méthode, il est possible de déclarer d'autre variables apres. Cette méthode sépare la DEFINITION de la DECLARATION.

Méthode 2:
struct Personne{
char nom[25];
char prenom[50];
int age;
}p1,p2;
struct Personne p3;

Avec cette méthode, on peut combiner le DEFINITION et la DECLARATION.

Méthode 3:
struct{
char nom[25];
char prenom[50];
int age;
}p1,p2;

Avec cette méthode, il est impossible de déclarer des variable APRES. La structure n'a pas de nom : on parle de structure ANONYME.

Pour afficher une structure, il faudra afficher tous ses champs.

III. Initialisation

Il existe 2 façons d’initialisation :

a. Initialisation pendant la déclaration

struct Personne p = {"Toto","Titi",23};

Dans cette initialisation, il faut respecter l’ordre de déclaration des champs

b. Initialisation après la déclaration

p.champ1 = valeur1
p.champ2 = valeur2
p.champ3 = valeur3
...

Ici, "p" représente la valeur de type structure.

exo

Proposition de Solution