Les Tableau Pascal
Les Tableau Pascal
OUZOU
Algorithmique
Devoir du semestre 2
Durée 2hs
Problème :
Pour gérer les ventes dans un magasin, le responsable utilise les tableaux comme suit :
– Un tableau REF qui contient les références des articles. REF[i] représente la référence d’un article.
Sachant que la référence d’un article est une chaine de 3 caractères. Exemple A12 ,B04,A10
– Un tableau PRIX qui contient les prix des articles. PRIX[i] représente le prix de l’article REF[i].
Questions :
1- Ecrire un programme qui remplit les deux tableaux. Supposons que le magasin dispose de 100
articles.
2- Ecrire la séquence d’instructions qui permet d’afficher le menu déroulant suivant à l’utilisateur :
3- Ecrire la séquence d’instructions qui permet de modifier le prix d’un article connaissant sa
référence.
4- Ecrire la séquence d’instructions qui permet d’afficher le prix d’un article connaissant sa référence.
5- Ecrire la séquence d’instructions qui permet de calculer le prix total d’une commande. Voici un
exemple d’exécution :
Commande :
Entrez les références des articles commandés terminez la saisie par Z:
Référence : A12
Quantité : 10
Référence : A14
Quantité : 200
Référence : Z
7- Ecrire la séquence d’instructions qui permet d’ajouter un article (ajouter sa référence et son prix)
sachant qu’on ne doit pas ajouter un article qui existe déjà.
Terminer := false;
While Not terminer do (* est équivalent à while terminer = false *)
Begin (* while*)
Clrscr; (* effacer l'écaran*)
Writeln;writeln;writeln;writeln; (* sauter des lignes*)
Writeln (' Gestion des ventes ');
writeln;writeln;writeln;
Writeln(' A : Modifier le prix d''un article');
Writeln(' B : Afficher le prix d''un article donné');
Writeln(' C : Calculer le prix total d''une commande');
Writeln(' D : Supprimer un article');
Writeln(' E : Ajouter un article');
writeln(' F : Afficher les article avec leurs prix');
Writeln(' G : Terminer');
writeln;writeln; writeln;
write (' Votre choix SVP: ');
(* je contrôle la saisie le choix doit être = à Aou B ou Cou D ou E ou F*)
repeat
readln(choix);
Until (upcase(choix) = 'A') or (upcase(choix) = 'B')or(upcase(choix) = 'C')
or (upcase(choix) = 'D')or (upcase(choix) = 'E')or(upcase(choix) = 'F');
Case upcase(choix) of
'A':Begin
end;
'B':begin
end;
'C':Begin
end;
'D':begin
(******************************************************************************)
(*modifier le prix d'un article *)
'A':Begin
clrscr;
writeln(' *** Modifier le prix d''un article ****');
writeln;writeln; (*sauter deux ligne*)
write(' Tapez la référence de l''article:');
readln(Vref);
(* je recherche d'abord l'article dans REF pour réccuperer l'indice avec*)
(* lequel je vais acceder au tableau PRIX et modifier le prix corespondant*)
found := false;
i := 1;
While (not found) and (i <= 5) do
if REF[i] = Vref then
found := true
else
i := i+1;
if not found then (* le recherche est négative*)
begin
writeln ('L''article n''existe pas. ');
readkey;
end
else (*la recherche est positive, l'article existe à l'indice i*)
begin
write(' Tapez le nouveau prix SVP puis validez: ');
readln(Prix[i]);
writeln;writeln;writeln;
writeln(' Le prix a été changé, tapez une touche pour continuer');
readkey;
end;
end;
Jeu d’essai :
Jeu d’essai:
Jeu d’essai
Jeu d’essai
Soit l’affichage :
On ajoute un article :
A l’affichage :
end;