Algorithmique et Structures de Données 2
TP N°3 : LES STRUCTURES
Niveau : 1
ère
année BC
Année universitaire : 2019/2020
Exercice 1 :
Le but de cet exercice est d’écrire un programme C qui permet de mémoriser dans un
tableau les informations relatives aux 15 joueurs d’une équipe de rugby et de traiter ces
informations. Un joueur est caractérisé par son nom, son prénom et son poids. Chaque
joueur à un numéro de poste (de 1 à 15) qui détermine son rôle dans l’équipe (numéro 1 est
le pilier gauche, le numéro 2 est le talonneur, etc.).
1. Ecrire une fonction qui permet de remplir un tableau par les informations
concernant tous les joueurs (numéro, nom, prénom, poids). Les contrôles de
saisie nécessaires doivent être effectués concernant les champs numéro et poids.
Cette procédure affiche ensuite les informations saisies une fois le tableau rempli.
2. Écrire une fonction permettant d’afficher le poids, le numéro de poste, le nom et
le prénom du joueur le plus lourd de l’équipe d’une part et le poids moyen des
joueurs d’autre part.
Exercice 2 (DS 2013):
La fédération de Tennis voudrait informatiser la gestion des participants aux différentes
compétitions. Un participant est caractérisé par son ncin, son nom et son prénom qui ne
doivent pas dépasser chacun 20 caractères. Une compétition est définie par un identifiant,
le nom de la compétition, qui ne dépasse pas 10 caractères et l’ensemble des participants à
cette compétitions. Il est à noter qu’une compétition compte au maximum 50 participants.
Advertisement
1- Définir les structures Participant et Competition.
2- Développer la fonction saisir_participant qui permet de saisir et de retourner toutes
les informations relatives à un participant.
Participant saisir_participant()
{
}
3- Soit la structure définissant une saison et symbolisée par S. Cette structure permet
de représenter un tableau de n compétitions. Développer, en utilisant la fonction
précédente, la fonction saisir_competitions qui permet de saisir toutes les
informations relatives aux n compétitions ;
void saisir_competitions(Competition S[], int n)
{
}
4- Développer la fonction nbre_comp qui permet de retourner le nombre de compétitions
dans lesquelles le participant, dont le ncin est donné en paramètre, a participé
int nbre_comp(Competition S[], int n, int ncin)
{
}
5- Développer le main qui permet de :
- saisir le nombre total n de compétition qui ne doit pas être négatif,
- définir un tableau pour la saison 2013 qu'on nomme S13.
- saisir les données concernant les n compétitions,
- saisir le ncin d'un participant et afficher le nombre de compétitiions dans lesquelles
il a participé
Exercice 3 (Examen 2010) :
Soit une structure DATE contenant les champs suivants :
-
jour : chaîne de caractères de taille 3,
Advertisement
- mois : chaîne de caractères de taille 3,
- année : chaîne de caractères de taille 5.
1- Ecrire une fonction qui permet de saisir le contenu d’une variable d de type DATE. Les
contrôles de saisie nécessaires doivent être effectués.
2- Soit une fonction qui prend en paramètre une variable d de type DATE et une variable n
contenant un nombre positif de jours. Cette fonction permettra d’incrémenter le
contenu de d par celui de n. Ecrire le code source de cette fonction.
3- Ecrire une fonction qui permet d’afficher le contenu d’une variable date.
4- Ecrire un programme qui saisit une date, incrémente son contenu et affiche la nouvelle
date.
Exercice 4 :
Le but de cet exercice est de développer un programme C permettant de gérer le stock d’un
fournisseur de produits bureautiques. On suppose que le stock (tableau d’articles) est
composé de 100 produits au maximum. Chaque produit a un modèle (chaîne de caractère de
20 caractères au plus), un prix unitaire et une quantité disponible.
Définir la structure article qui permet de représenter un article.
Ecrire une fonction appelée ajouterArticle qui permet d’ajouter un nouvel article au
tableau représentant le stock et qui prend comme paramètres un article et une position
d’insertion.
Ecrire un programme principal permettant de remplir le stock avec un ensemble
d’articles saisis par l’utilisateur.
Soit maintenant la structure commande qui représente une commande d’achat passée par un
client. Une commande est constituée par le nom du client (chaîne de caractères) et d’un
ensemble de commandes unitaires (tableau de structure commandeUnitaire de taille maximale
100). Une commande unitaire comporte le modèle de l’article concerné et la quantité
Advertisement
demandée.
Définir les structures commandeUnitaire et commande.
Ecrire une fonction qui prend en paramètre un tableau vide de commandes unitaires et
qui permet de saisir l’ensemble des modèles désirés et la quantité demandée pour
chacun.
Ecrire une fonction appelée retirerCommandeUnitaire qui prend comme paramètres le
stock et une commande unitaire, recherche le modèle dans le stock et :
o Si la quantité disponible est suffisante, la met à jour et retourne le prix de celle-
ci.
o Si le produit n’existe pas ou si la quantité est insuffisante, informe l’utilisateur et
retourne 0.
Afficher le stock initial.
Constituer une commande de plusieurs produits.
Retirer la commande et afficher son prix total.
Exercice 5 (DS 2018)
Pour résoudre cet exercice, on considère les structures/types suivants :
typedef struct {
int minutes;
int secondes;
} Temps;
typedef struct {
char Titre[30];
char Interprete[30];
Advertisement
Temps Duree;
} Chanson;
Questions
1. Définir le type Album qui est un ensemble de chansons et qui contient au moins une
chanson et au plus 12.
2. Écrire la fonction void SaisirChanson(Chanson * C) qui permet de saisir toutes les
informations d’une chanson.
3. Écrire la fonction void AfficherChanson(Chanson C) qui affiche toutes les informations
d’une chanson.
4. Écrire la fonction int ComparerDurees(Chanson C1, Chanson C2) qui retourne :
La valeur 1 si la durée de C1 est supérieure à la durée de C2.
La valeur 2 si la durée de C1 est inférieure à la durée de C2.
La valeur 0 si C1 et C2 ont exactement la même durée.
5. Écrire la fonction RemplirAlbum(Album A, int N) qui permet de remplir un album musical A
par N chansons.
6. Écrire de manière récursive la fonction int ChansonsMemeInterpret(Album A, int N, char[]
Intp) qui affiche toutes les chansons dont l’interprète est Intp et qui retourne le nombre de
ces chansons.
7. Écrire un programme C permettant à l’utilisateur de :
Remplir un album musical avec N chansons.
Saisir le nom d’un interprète et afficher ensuite toutes les chansons de l’album qui sont
interprétées par celui, ainsi que le nombre de ces chansons.
Afficher la chanson de l’album qui a la durée la plus courte.