Home Exercices Les enregistrements Produits et gestion
Bookmark and Share

Liens sponsorisés

Produits et gestion Print E-mail
Written by Administrator   
Friday, 26 February 2010 15:09
n considère une entreprise commerciale spécialisée dans la vente d'articles scolaires, l'entreprise effectue ses achats chez des fournisseurs producteurs, et revend ses articles aux clients revendeurs.
Chaque article est défini par :

 

* code  article: chaîne de 4 caractères commencent obligatoirement par une lettre majuscule, les 3 derniers caractères sont obligatoirement des chiffres.

* libelle(le nom d'article) : chaîne 30

* quantité de stock :entier no signé

* prix unitaire d'achat  : réel 

* prix unitaire de vente : réel 

 

faire un programme qui saisie la liste des articles dans un tableau ( au maximum 150 articles), puis choisir un traitement à faire selon le menu suivant :

 

************************************************************************

* 1- liste des produits                                                                                               * 

* 2- liste de produit a commander                                                                              *

* 3- liste des produits représentant le plus Max des bénéfice                                          *

************************************************************************

 

Notons qu'ont doit commander un article lorsque la quantité en stock est <= 10

une fois qu'une action est réalisée, et tant que l'utilisateur ne choisi pas 4, alors ce dernier peut demander un autre traitement propose par le menu 

 

source : newkey.tk

 

Correction :

program exercice_3_serie1;
uses wincrt;
{$m 16384,0,65536} {augmente la memoir du program sans elle p.benefice ne peut pas etre executer}
type
article=record
code:string[4];
libelle:string[30];
qs:word;
pa:real;
pv:real;
end;
tab=array[1..150] of article;
var n,choix:integer;
t:tab;
procedure saisie(var t:tab; var n:integer);
var i,x,e:integer;
begin
repeat
writeln('saisir n');
readln(n);
until (n in [1..150]);
for i:=1 to n do
with t[i] do
begin
writeln('l''article num ',i,' est ');
repeat
writeln('le code premier caractere en majuscule suivit par 3 nombre');
readln(code);
val(copy(code,2,3),x,e);
until((length(code)=4)and(code[1]in['A'..'Z'])and(e=0));
writeln('saisir la libelle');
readln(libelle);
writeln('saisir la quantite de stock');
readln(qs);
repeat
begin
writeln('donner le prix d''achat');
readln(pa);
end;
until (pa>0);
repeat
begin
writeln('donner le prix de vente');
readln(pv);
end;
until (pv>pa);
end;
end;
procedure menu;
begin
gotoxy(10,10);
writeln('****************************************************************');
gotoxy(10,11);
writeln('* 1- liste des produits *');
gotoxy(10,12);
writeln('* 2- liste des produits a commander *');
gotoxy(10,13);
writeln('* 3- liste de produits presentant le plus max de benefices *');
gotoxy(10,14);
writeln('* 4- quitter *');
gotoxy(10,15);
writeln('****************************************************************');
end;
procedure affiche(t:tab; n:integer);
var i:integer;
begin
for i:=1 to n do
with t[i] do
begin
writeln('le code est ', code);
writeln('le libelle est ', libelle);
writeln('la quantite de stock est ',qs);
writeln('le prix d''achat est ',pa:9:2);
writeln('le prix de vente est ',pv:9:2);
end;
end;
procedure commander(t:tab; n:integer);
var j:integer;
begin
for j:=1 to n do
if t[j].qs<=10 then
writeln (t[j].libelle);
end;
function max(t:tab;n:integer):real;
var m:real;
k:integer;
begin
m:=t[1].pv-t[1].pa;
for k:=2 to n do
if t[k].pv-t[k].pa>m then
m:=t[k].pv-t[k].pa;
max:=m;
end;
procedure benefice(t:tab; n:integer);
var f:integer;
begin
for f:=1 to n do
with t[f] do
if pv-pa=max(t,n) then
writeln(libelle);
end;

{programmen pricipale}

begin
saisie(t,n); clrscr;
repeat
menu;
repeat
begin writeln('saisir votre choix'); readln(choix);
end;
until choix in [1..4];
case choix of
1:begin affiche(t,n); readln;clrscr;{on a appeller clrscr pour effacer le contenu de l''ecran} end;
2:begin commander(t,n); readln; clrscr;end;
3:begin benefice(t,n); readln; clrscr; end;
4:begin clrscr; writeln('merci d''avoir utiliser notre programme'); end;end;
until choix=4;
end.

 

 

 

Liens sponsorisés