TP N°3 : LES STRUCTURES

Algorithmique et Structures de Données · course

Voir tous les documents en programmation

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.

Publicité

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,

Publicité

  • 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é

Publicité

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];

Publicité

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.