Correction Devoir Surveillé
Correction Devoir Surveillé
Correction Devoir Surveillé
Ce programme permet d’afficher le nombre d’occurrence d’un caractère donné dans un tableau de caractères.
Bon Travail
Exercice 2 (12 pts)
On s’intéresse, dans cet exercice, à un ensemble de n articles (n ne dépasse pas 30) où chaque article est
caractérisé par son code, son libellé, son prix unitaire et le nom de son fournisseur. Un même article de code
donné peut exister plusieurs fois dans l’ensemble des articles, s’il peut être fourni par plusieurs fournisseurs.
Nous voulons écrire un algorithme qui permet de
a. Saisir l’ensemble des articles,
b. Supprimer tous les articles d’un fournisseur donné,
c. Compter et afficher les noms des différents fournisseurs d’un article donné par ordre croissant des
prix.
d. Afficher le nouvel ensemble des articles.
Algorithme Exercice 2
Debut
Constante Nmax =30
Type Article = Structure
code : Entier
prix_un : Réel
nom_frs : chaine de caractère
Fin Structure
Type TAB=Tableau [1..Nmax] de Article
Variable
t, t_ar : TAB
i, n, code, n_ar, indmax : entier
nom : chaine de caractères
/*Remplissage du Tableau*/
Pour i de 1 à n faire
Ecrire(Donner le code, prix et nom frs du , i, ème article)
Lire(t[i].code, t[i].prix_un, t[i].nom_frs )
Fin Pour
Si (i<=n) alors
/*Décalage à gauche pour supprimer le ième article*/
Pour j de i à n-1 faire
t[j]t[j+1]
Fin Pour
n<n-1
FinSi
Fin Tantque
n_ar1
Pour i de 1 à n faire
Si (t[i].code=code) alors
t_ar[n_ar]t[i]
n_arn_ar+1
FinSi
Fin Pour
/* Trier t_ar selon l’ordre croissant des prix*/
Pour i de 1 à n_ar faire
indmax i
Pour j de i+1 à n_ar faire
Si t_ar[j]<t_ar[indmax] Alors
indmaxj
FinSi
FinPour
Si(indmax ≠i)
aux t_ar[indmax]
t_ar [indmax] t_ar [j]
t_ar [j] aux
FinSi
FinPour
Ecrire(Le nombre de fournisseurs de l’article ,code, est : , n_ar)
/*Affichage des noms des fournisseurs*/
Pour i de 1 à n_ar faire
Ecrire(Le , i, ème fournisseur est : , t_ar[i].nom_frs)
Fin Pour
Fin