Exercice 01
Un nombre rationnel peut être stocké comme un enregistrement de deux entiers strictement positifs (un numérateur et un dénominateur).
On veut écrire un programme qui permet de :
- Remplir un fichier
« données.dat »par des nombres rationnels. La saisie s’arrête lorsque l’utilisateur répond par « n » ou « N » à la question « voulez-vous ajouter un autre rationnel(O/N) ? » - Copier dans un autre fichier
« irréductibles.dat »tous les rationnels irréductibles du fichier « données.dat »
Un rationnel est dit irréductible si le numérateur et le dénominateur n’ont aucun diviseur commun autre que 1. - Afficher le fichier
« irréductibles.dat »
NB : Les fichiers seront stockés dans le dossier « Bacinfo » de « C:\ »
Questions :
- Déclarer la structure « Rationnel » et la structure permettant de stocker de façon permanente une liste de rationnels.
- Analyser ce problème en le décomposant en modules et donner le TDOG.
- Analyser les modules utilisés.
Exercice 02
Soit « Voitures.Dat » un fichier contenant une liste de voitures, et déjà enregistré dans le dossier « Travail » de « D : ». Chaque voiture est donnée par :
- Mat : matricule (chaîne alphanumérique de taille maximale 20)
- Marque : marque de la voiture (chaîne de 20 caractères au maximum)
- Disp : vrai pour disponible et faux sinon
Questions :
- Ecrire une analyse modulaire du programme qui permet d’afficher la liste des voitures triée dans un ordre décroissant des marques ainsi que le pourcentage des voitures disponibles.
- Analyser les modules utilisés.
NB :
- Les traitements porteront sur le fichier déjà créé
- Le nombre total des voitures ne dépasse pas 20
- On n’a pas besoin de stocker la liste triée dans un fichier
- Supposons que nous avons un tableau de voitures déjà trié sur la marque, donner le rôle de la procédure suivante :
Procédure TOTO (T:Tab ; n : entier)
Résultat = Sol
Sol = [ Ecrire(T[1].marque) ]
Pour i de 2 à n faire
Si T[i].marque <> T[i-1].marque alors
Ecrire(T[i].Marque)
FinSi
FinPour
Fin TOTO
Exercice 03
Une société spécialisée dans la vente et la distribution de produits cosmétiques fait appel à vos services pour élaborer une application qui gère son travail. Pour cela le responsable Marketing vous donne le cahier de charge suivant :
- Chaque produit est caractérisé par : un code (chaîne de 15), le nom du fabricant :
nom_f(chaine de 30), une qualité :qual(‘A’, ‘B’ ou ‘C’) et le prix :pr(réel). - Tous les produits seront enregistrés dans un fichier
"Produits.fch"sur le disque dur C. - On vous demande maintenant de stocker les produits de qualité A dans un fichier
"produit_A.dat", ceux de qualité B dans un fichier"produit_B.dat"et ceux de qualité C dans un fichier"produit_C.dat"situés tous dans le même emplacement que le premier. - Chercher et afficher le produit le plus cher de qualité A.
Travail demandé :
- Quelles sont les structures de données adéquates à ce problème ?
- Donner l’analyse et l’algorithme du programme principal.
- En déduire les analyses et les algorithmes des différents modules envisagés.