Tp informatique
Résolu
imen douakha
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
imen douakha Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
imen douakha Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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.