Tp informatique
Résolu
imen douakha
Messages postés
4
Statut
Membre
-
imen douakha Messages postés 4 Statut Membre -
imen douakha Messages postés 4 Statut Membre -
slt, j ss une etudiante en 1er anni info. j ai un problem avec un tp d info. ils nous demandent d ecrire un programme pascal
dans une pharmacie tous ls medicaments sont enregistrez dans un fichier ' pharmacie.dat'
chaque medic est caractérisé par un nom, code, nom de laboratoire, sa quntite et son prix
chaque medic possede un code unique .
le mm medic peut etre produit par plusiuers labo
le prgrm doit permettre
1-introduction d un nouveau medic
2-supression d un medic
3- diminuer ou augmenter la quantite existante
4- la recherche du code du medic le moin cher ( a partir de son nom) et afficher son code, labo et son prix
mercii b1 :)
le prgrm est
aidez moi SVP a trouver l erreur !!!!!
dans une pharmacie tous ls medicaments sont enregistrez dans un fichier ' pharmacie.dat'
chaque medic est caractérisé par un nom, code, nom de laboratoire, sa quntite et son prix
chaque medic possede un code unique .
le mm medic peut etre produit par plusiuers labo
le prgrm doit permettre
1-introduction d un nouveau medic
2-supression d un medic
3- diminuer ou augmenter la quantite existante
4- la recherche du code du medic le moin cher ( a partir de son nom) et afficher son code, labo et son prix
mercii b1 :)
le prgrm est
program pharmacie;
type medicaments= record
code,qte: integer;
nom, n_lab: string[30];
prix: real;
end;
stock = file of medicaments ;
var s:stock ;
medi :medicaments;
c,q,I:integer;
nom: string[30];
procedure initialisation ( var s:stock );
var m :medicaments; n,i : integer;
begin
writeln ( ' Le nombre de medicaments est : ');
readln (n);
for i:=1 to n do
begin
rewrite(s);
writeln(' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ');
writeln(' ^ ^ ');
writeln(' ^______ STOCK PHARMACIE _____ ^ ');
writeln(' ^ ^ ');
writeln(' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ');
writeln;
writeln;
writeln(' Entrez SVP le nom du medicament ');
readln (m.nom);
writeln(' Entrez SVP le nom de laboratoire ');
readln (m.n_lab);
writeln (' Maintement, saisiez SVP le code du medicament ');
readln (m.code);
writeln (' Entrez SVP la quantite de medicaments ');
readln (m.qte);
writeln (' En fin, introduit le prix du medicament SVP! ');
readln (m.prix);
writeln;
write(s,m);
end ;
close(s);
end;
function existe (var s: stock ; c : integer):boolean;
var Ex:boolean;
m: medicaments;
begin
reset(s);
ex:=true;
while (eof(s)=false) and (ex) do
begin
read(s,m);
if( m.code = c) then ex:=false ;
end;
close(s);
existe:= ex;
end;
procedure introduire ( var s:stock ; med: medicaments);
var temp: stock;
m: medicaments;
begin
writeln ( 'Entrez le code de medicament');
readln (med.code );
writeln ( 'Entrez le nom ');
readln( med.nom);
writeln ( 'Entrez le nom de laboratoire ');
readln (med.n_lab);
writeln ( 'Entrez le prix');
readln (med.prix);
writeln ( 'Entrez la quantite ');
readln (med.qte);
if existe (s, med.code)=true then
begin
assign (temp,'c:\temporaire.dat');
reset(s); rewrite(temp);
while (eof(s) =false) do
begin
read(s,m);
write(temp,m);
end;
write(temp,med);
close(s);
close(temp);
reset(temp); rewrite(s);
while (eof(temp) =false) do
begin
read(temp,m);
write(s,m);
end;
close (s); close(temp);
rewrite(temp); close (temp);
end
else writeln (' Ce medicament existe deja ');
end;
procedure supprimer (var s :stock ; c:integer);
var temp: stock;
m:medicaments;
begin
assign(temp,'c:\temporaire.dat');
if existe(s ,c) =false then
begin
reset(s); rewrite(temp);
while (eof(s)=false) do
begin
read(s,m);
if (m.code<>c)then write(temp,m);
end;
close (s); close (temp);
reset(temp); rewrite(s);
rewrite(temp); close(temp);
while ( eof(temp)=false) do
begin
read( temp,m);
write( s,m);
end;
close(s) ; close(temp);
rewrite (temp); close(temp);
end;
end;
procedure dim_qte (var s:stock ; c,q:integer);
var temp: stock;
m: medicaments;
begin
if (existe (s,c) = false ) then
begin
assign( temp,'c:\temporaire .dat ');
reset( s); rewrite(temp);
while (eof(s) = false) do
begin
read(s,m);
if (m.code = c) then
if ( m.qte >= q) then m.qte:= m.qte - q ;
write ( temp , m);
end;
close( s) ; close( temp);
reset( temp) ; rewrite( s);
while (eof(temp)= false) do
begin
read ( temp, m);
write (s, m) ;
end;
close( s); close(temp);
rewrite ( temp) ; close(temp);
end;
end;
procedure aug_qte (var s:stock ; c,q: integer );
var m : medicaments;
temp : stock;
begin
assign ( temp, 'c:\temporaire.dat');
if existe ( s,c) = false then
begin
reset ( s); rewrite (temp);
while (eof(s) = false) do
begin
read (s,m);
if (m.code =c) then m.qte := m.qte+ q;
write ( s,m);
end;
close( s); close(temp);
reset(temp); rewrite ( s);
while (eof (temp)=false) do
begin
read( temp,m);
write( s,m);
end;
close(s); close(temp);
rewrite(temp); close(temp);
end;
end;
procedure moins_cher (var s:stock ; nom: string);
var m: medicaments ;
min_prix: real;
lab:string;
c:integer;
begin
reset (s);
while (eof(s)=false) do
begin
read (s,m);
if ( m.nom=nom ) then
begin
c:=m.code;
lab:=m.n_lab;
min_prix :=m. prix;
end;
while eof(s) = false do
begin
read(s,m);
if (m.nom=nom ) then
begin
if m.prix< min_prix then
begin
min_prix := m.prix;
c:= m.code;
lab:= m.n_lab;
end;
end;
end;
writeln (' Le code du medicament est : ' ,c);
writeln (' Le prix du medicament est : ' ,min_prix);
writeln (' Le nom de laboratoire est : ' , lab);
end;
BEGIN
assign( s,'c:\pharmacie.dat ');
initialisation(s);
writeln;
writeln (' |=============================| ');
writeln;
writeln (' _____ TP PHARMACIE 2013 ____ ');
writeln ;
writeln (' |=============================| ');
writeln ;
writeln ;
writeln ;
writeln (' Que voulez vouz faire ?! ');
writeln (' 1: Introduire un neveau medicament ');
writeln (' 2: Supprimer un medicament ');
writeln (' 3: Diminuer la quantite d un medecament ');
writeln (' 4: Augmenter la quantite d un medicament ');
writeln (' 5: Rechercher le medicament le moins cher ');
writeln (' 6: Fermer ');
readln( I);
case I of
1: begin
introduire( s,medi);
end;
2: begin
writeln ('Entrez le code de medicament SVP ');
readln (c);
supprimer( s,c)
end;
3: begin
writeln (' Entrez le code de medicament SVP ');
readln (c);
writeln (' Entrez la quantite que vous voulez diminuer ');
readln (q);
dim_qte(s ,c,q);
end;
4: begin
writeln (' Entrez le code de mediament SVP ');
readln (c);
writeln (' Entrez la quantite que vous voulez ajouter ');
readln (q);
aug_qte(s, c, q);
end;
5: begin
writeln(' Entrez SVP le nom de medicament ');
readln(nom);
moins_cher (s , nom);
end;
readln;
readln;
END.
aidez moi SVP a trouver l erreur !!!!!
A voir également:
- Tp informatique
- Le code ascii en informatique - Guide
- Jargon informatique - Télécharger - Bureautique
- Que veut dire url en informatique - Guide
- Souris informatique - Guide
- Bal informatique ✓ - Forum Mail
4 réponses
Bonsoir,
CCM ne fait pas les devoirs. Des conseils peuvent être demandés mais il ne faut pas espérer obtenir la solution.
Ceci signifie qu'il n'est pas question que quelqu'un te rédige le programme de tes rêves. Si tu as des soucis dans ton développement, un membre pourra/voudra peut-être t'aider.
CCM ne fait pas les devoirs. Des conseils peuvent être demandés mais il ne faut pas espérer obtenir la solution.
Ceci signifie qu'il n'est pas question que quelqu'un te rédige le programme de tes rêves. Si tu as des soucis dans ton développement, un membre pourra/voudra peut-être t'aider.
Désolé, je suis modo... pas spécialiste. Il faut patienter.
NB : quand tu rédiges un message, tu as, en haut à droite de la case, quatre symboles :
NB : quand tu rédiges un message, tu as, en haut à droite de la case, quatre symboles :
B I S <> Dans l'ordre, c'est pour écrire en caractères gras, italiques ou soulignés ; le dernier sert à entrer du code en respectant les indentations et alignements. Je l'ai appliqué à ton programme.