Upload
lachir
View
219
Download
0
Embed Size (px)
Citation preview
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 1/9
TS informatiques option Bases de données INSFP de TIZI-OUZOU
AlgorithmiqueDevoir 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 100articles.
2- Ecrire la séquence d’instructions qui permet d’afficher le menu déroulant suivant à l’utilisateur :
Gestion des ventes
A : Modifier le prix d’un articleB : Afficher le prix d’un article donné.C : Calculer le prix total d’une commande.D : Supprimer un articleE : Ajouter un articleF : Terminer
Votre choix (SVP) :
3- Ecrire la séquence d’instructions qui permet de modifier le prix d’un article connaissant saré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 unexemple d’exécution :
Commande :Entrez les références des articles commandés terminez la saisie par Z:Référence : A12Quantité : 10Référence : A14Quantité : 200Référence : Z
Le montant de la commande est : ******
6- Ecrire la séquence d’instructions qui permet de supprimer un article connaissant sa référence. (lesuppression d’une référence entraine la suppression de son prix) . un article supprimé sa référenceest remplacée par ‘ ‘ (espace) et son prix par 0.
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à.
Devoir d’Algorithmique S2 Page 1
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 2/9
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 3/9
end;'E':Begin'F':Begin
end;end;
'G':Beginterminer := true (*arreter la boucle*)donewincrt;
end;end;
end;(*while*)end.(*programme principal*)Jeu de test :
(****** Afficher pour chaque article son prix ********) 'F':Begin
clrscr;
Writeln;writeln;writeln;writeln (' Liste des articles avec leurs prix:');writeln;writeln;
Devoir d’Algorithmique S2 Page 3
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 4/9
writeln(' Référence Prix');For i:= 1 to 5 do
writeln(' ',REF[i],' ',PRIX[i]:10:2);writeln;writeln('Tapez une touche pour continuer');readkey;
end;
(******************************************************************************)(*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 thenfound := true
elsei := i+1;
if not found then (* le recherche est négative*)begin
writeln ('L''article n''existe pas. ');readkey;
endelse (*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 :
Devoir d’Algorithmique S2 Page 4
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 5/9
(********************************************************************************)(************** Afficher le prix d'un article donné **) 'B':begin
clrscr;Writeln;writeln;writeln(' Afficher le prix d''un article');Writeln;writeln;Write(' Tapez la référence SVP: ');readln(Vref);(* je recherche d'abord l'existence de l'article *)
found := false;i := 1;While (not found) and (i <= 5) do
if REF[i] = Vref thenfound := true
elsei := i+1;
if not found then (* le recherche est négative*)begin
writeln ('L''article n''existe pas. ');readkey;
endelse (*la recherche est positive, l'article existe à l'indice i*)begin
writeln;writeln;
writeln(' Le prix de l''artcle est : ',PRIX[i]:10:2,' DA');writeln;writeln;write('Tapez une touche pour continuer');readkey;
end;end;
Jeu d’essai:
Devoir d’Algorithmique S2 Page 5
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 6/9
(************** Supprimer un article ************************)'D':begin
clrscr;clrscr;Writeln;writeln;writeln(' Supprimer un article');Writeln;writeln;Write(' Tapez la référence SVP: ');readln(Vref);(* je recherche d'abord l'existence de l'article *)
found := false;i := 1;While (not found) and (i <= 5) do
if REF[i] = Vref thenfound := trueelse
i := i+1;if not found then (* le recherche est négative*)begin
writeln ('L''article n''existe pas. ');readkey;
endelse (*la recherche est positive, l'article existe à l'indice i*)begin
writeln;writeln;REF[i] := ' ';Prix[i] := 0;writeln;writeln;write('L''article a été supprimé. Tapez une touche pour continuer. ');readkey;
end;end;
Jeu d’essai
Devoir d’Algorithmique S2 Page 6
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 7/9
L’affichage du tableau donne
(**************** Ajouter un article **************)
'E':Beginclrscr;clrscr;Writeln;writeln;writeln(' Ajouter un article');Writeln;writeln;Write(' Tapez la référence SVP: ');readln(Vref);
(* je recherche d'abord l'existence de l'article *)found := false;i := 1;While (not found) and (i <= 5) do
if REF[i] = Vref thenfound := true
elsei := i+1;
if found then (* le recherche est positive*)begin
writeln ('L''article existe déjà. Tapez une touche pour continuer ');readkey;
endelse (*la recherche est négative, l'article n'existe pas*)begin
(* je vais rechercher une case vide *)i := 1;While (REF[i] <> ' ') and (i <= 5) do
i := i +1;(*soit je sort avec ref[i] = ' ' ou i = 6*)if i = 6 thenbegin
writeln;writeln('le Tableau est plein. Taper une touche pour continuer');readkey
endelseif ref[i] = ' ' thenbegin
REF[i] := Vref;Writeln;Writeln(' Taper son prix SVP: ');
readln(PRIX[i]);writeln;writeln;write('L''article a été ajouté. Tapez une touche pour continuer. ');readkey;
Devoir d’Algorithmique S2 Page 7
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 8/9
end;end;
end;
Jeu d’essai
Soit l’affichage :
Après la suppression d’un élément soit l’article A03:
On ajoute un article :
A l’affichage :
Devoir d’Algorithmique S2 Page 8
8/9/2019 les tableau pascal
http://slidepdf.com/reader/full/les-tableau-pascal 9/9
(*************** le prix total d'une commande ******************)'C':Begin
clrscr;writeln(' Calcul du prix total d''une commande ');writeln;writeln('Commande:');writeln('Entrez les références des articles commandés et terminez par Z');
write(' Référence: ');readln(vref); som := 0;while vref <> 'Z' Dobegin
i := 1;while REF[i] <> vref do (* on suppose que les références existent*)
i := i +1;write(' Quantité: ');readln(Qt);som := som + PRIX[i] * qt;write(' Référence: ');readln(Vref);
end;writeln;writeln;writeln(' Le total de la commande est ',som:10:2,' DA');writeln;writeln('Tapez une touche pour revenir au menu principal');readkey;
end;
Devoir d’Algorithmique S2 Page 9