Vous êtes sur la page 1sur 3

Algorithmique et structures de données II

TD N°3 : Les structures

Niveau : 1ère BC Année universitaire : 2022/2023

Exercice 1 :

On se propose dans un cet exercice de gérer le stock d'une société qui vend des articles de
sport. Sachant que la société a, à sa disposition, 10 articles et un article est une structure
possédant :
- un numéro de code (entier)
- un libellé (10 caractères)
- un prix unitaire (réel)
- une quantité en stock (entier)
1. Définir les types Article et société
2. Ecrire une procédure qui ajoute un article à un Tableau d'articles .
3. Développer une fonction qui cherche un article à travers son code et qui retourne son indice.
4. Ecrire une procédure qui permet de diminuer la quantité en stock d'un article par une
quantité quelconque. L'article est donné à travers son code.
5. En se basant sur ces modules, développer un algorithme qui affiche et exécute le menu
suivant :
Recherche d'un article… .................................. Taper 1
Ajout d'un article .............................................. Taper 2
Mise à jour de la quantité en stocke..................Taper 3
Sortie................................................................ Taper 4

Exercice 2 (DS 2013) :


Un concessionnaire cherche à analyser les informations concernant l’ensemble des marques
des voitures qu’il a vendu. Les informations qu’il considère les plus pertinentes dans ce sens
sont : la marque (Peugeot 307, Polo 7, Renault Clio 6, etc.), le prix de vente d’une voiture de
cette marque, l’année en question, et le nombre de voitures vendues pour une marque et une
année données. Nous proposons alors la structure suivante afin d’aider le concessionnaire
dans son analyse :
Marque = enregistrement
marque : chaîne de caractères
prixU : réel
année : entier
nbVte : entier
fin
Ainsi que le type suivant d’un tableau de structures avec NMAX une constante qu’on suppose
donnée.
1
tableauDeMarque = tableau de [1..NMAX] de Marque

Exemple : Le tableau T de type tableauDeMarque, donné par la table 1, illustre un


exemple de données à analyser qui sont triées par ordre décroissant sur le nbVte.
Marquee prixU Année nbVte

Peugeot 207 60 800 2022 15

Clio 6 40 000 2020 14

Kia Rio 35 000 2018 13

Polo 7 38 500 2020 13

Kia Rio 42 200 2020 10

Tableau 1 Exemple d’un tableau de structures contenant les informations concernant


Dans la suite, nous considérons donnés tous les paramètres des fonctions à développer.
En particulier, le paramètre n désigne le nombre de cases remplies d’un tableau donné.

1. Écrire la fonction StatsMarques(T : tableauDeMarque, n : entier, seuil : réel) :


entier qui permet de retourner le nombre de marques ayant un prix supérieur ou égal
à un seuil donné.
2. Ecrire la fonction recherche_marque_annee(T : tableauDeMarque ; n : entier, m :
chaine, an : entier) : entier qui permet de retourner la position dans le tableau si la
marque (m) existe dans le tableau T et a été déjà vendu dans l’année (an) et
retourner -1 sinon.
3. Ecrire la procédure Ajout_vente(Var T : tableauDeMarque ; Var n : entier, m :
chaine, an: entier) qui permet d’ajouter une nouvelle vente en suivant les
conditions suivantes :
Si la marque (m) existe déjà et a été vendu dans l’année (an) alors il faut mettre
à jour le nombre de ventre (nbVte) en l’incrémentant par 1.
Si la marque (m) et/ou l’année (an) n’existe pas, il faut ajouter un nouvel
élément au tableau T tout en saisissant les informations nécessaires pour remplir
les autres champs de la structure Marque
NB : il est à noter que le tableau T doit rester trié par ordre décroissant sur
le nombre de vente.
4. Écrire la procédure SupprimerMarquesAnnee (VAR t : tableauDeMarque, VAR n
: entier, an : entier) qui permet de supprimer toutes les informations concernant
les ventes d’une année donnée.Exemple : Si l’année est 2020, alors le tableau T
devient après la suppression comme indiqué par la table 2.
Marquee prixU Année nbVte
Peugeot 207 60 800 2022 15

Kia Rio 35 000 2018 13


Tableau 2 : Le tableau suite à la suppression des informations des ventes de l’année 2020

2
Exercice 3 (DS 2018)
Un centre spécialisé de l’obésité a pour objectif le suivi et la prise en charge des patients
éventuellement atteints d’obésité (surpoids). L’obésité est définie comme étant l’excès de masse
adipeuse (grasse) entraînant des conséquences néfastes pour la santé.

Pour résoudre cet exercice, on définit les types suivants :

TYPE TYPE
Adresse = Enregistrement Patient = Enregistrement
Numéro: entier Code: entier
Rue: chaine de caractères Nom: chaine de caractères
Gouvernorat: chaine de caractères Prénom: chaine de caractères
Code postal: entier Age: entier
Fin Adr : Adresse
Poids : réel
Taille : réel
IMC (Indice Masse Corporel) : réel
Fin
L’Indice Masse Corporel, IMC, est calculé comme suit : IMC= Poids/Taille2
Par exemple si un patient mesure 1.80M pour 80kg, son IMC = 80 / (1.8*1.8) = 24,7
Un patient est considéré obèse, si son IMC est égal ou supérieur à 30.
On suppose que le Centre est défini comme un ensemble de N patients avec (0N<=200).

Questions

Pour répondre à certaines questions qui nécessitent l’affichage d’un patient, il est obligatoire
d’utiliser la Procédure AfficherPatient (P:Patient) qu’on suppose déjà définie et prête à être
utilisée.

1. Définir le type Centre.


2. Écrire la procédure SaisirAdresse(VAR Ad : Adresse) qui permet de saisir toutes les
informations d’une adresse Ad.
3. Écrire la fonction SaisirPatient( ) : Patient qui permet de saisir toutes les informations d’un
patient et de le retourner en résultat. Aucun contrôle de saisie n’est nécessaire, on supposera que
l’utilisateur saisira les informations correctement.
4. Écrire la procédure RemplirCentre(VAR C : Centre ; N : entier) qui permet de remplir le
centre C par N patients.
5. Écrire la procédure PatientsVoisins(C : Centre, N : entier, Gouv : chaine) qui permet
d’afficher tous les patients qui habitent dans le même gouvernorat Gouv.
6. Écrire la fonction NbrPatientsObèses(C : Centre ; N : entier) : entier qui retourne le nombre
de patients obèses.
7. Développer l’algorithme principal permettant à l’utilisateur de :

- Remplir le centre par N patients (0 N<=200). Le contrôle de saisie doit être effectué.

- Saisir un gouvernorat et afficher tous les patients qui habitent dans ce gouvernorat.

- Afficher le nombre des patients obèses.

Vous aimerez peut-être aussi