hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, vous devez
 
inscrire sur notre forum a partir d'ici
 
  NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
forum d'aide informatique : internet, réseau, programmation informatique ...
Exercice corriger sur le fichiers
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> `··._.·`·.¸¸.·´´Cours¯`··._.·`·.,¸¸,.·´¯
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
Mechergui haythem
recent membre
recent membre

Hors ligne

Inscrit le: 01 Déc 2008
Messages: 13
Point(s): 150
Moyenne de points: 0

Posté le: Lun 1 Déc - 11:30 (2008)    Sujet du message: Exercice corriger sur le fichiers Répondre en citant

PublicitéSupprimer les publicités ?
Exercice sur les fichier:
Le tableau suivant représente la liste des clients d’une société de commerce :
Id   
Nom   
Prénom   
N°CIN   
Num_tel   
Adresse   
Montant   
Indicatif   
Numéro   
   
Rue   
Code Postal   
Ville   
1   
Raouf
Hajji
03584697   
22   
265366   
115   
La liberté   
2090   
tunis   
 815.125
2   
Dardour
Wissem
05321489   
97   
365745   
109   
El Qos   
2145   
Neubl   
 2598.36
3   
B Dhieb
Ali
08532144   
98   
658321   
115   
Sousse   
2092   
Ariana   
 1450.05
4   
Yousfi
Ahmed
07578632   
21   
15314   
89   
paris   
5124   
Gabes   
 219.985

Le directeur de la société veut informatiser la gestion de ces clients, il vous demande d’écrire un programme pascal qui permet de :
- saisir la liste de ses clients en les sauvegardant dans un fichier dont la partition et le nom d’enregistrement seront saisis au clavier, la fin de la saisie est possible si nous répondants par ²N² (Non) à la question ²Autre client (O/N) ?².
- Ajouter un nouveau client à la fin de la liste,
- Chercher un client,
- Modifier les renseignements d’un client,
- Supprimer un client,
- Afficher la liste des clients qui seront bénéficié d’une remise, sachant que chaque client ayant un montant supérieur à 2000 TND sera bénéficié d’une remise de 7%.
Questions :
1-      Définir les structures de données à utiliser dans la résolution de ce problème
2-      Ecrire une analyse puis déduisez un algorithme du programme principal permettant d’offrir un menu répondant au problème.
3-      Proposez une analyse et déduisez un algorithme pour chacun des modules proposés.

SOLUTION:
program ex_12;
uses wincrt;
type
tel=record
indicatif:byte;
numero:longint;
end;
adresse=record
num:byte;
rue:string[20];
c_p:word;
ville:string[15];
end;
client=record
id:byte;
nom,prenom:string[25];
cin:string[8];
num_tel:tel;
adr:adresse;
montant:real;
end;
fich_clients=file of client;
var
f:fich_clients;
choix:integer;
label a;
{********************** procédure saisie ***********************************}
procedure saisie(var f:fich_clients);
var
i:integer;
rep:char;
c:client;
t:tel;
a:adresse;
begin
i:=0;
reset(f);
repeat
i:=i+1;
writeln('=========== saisie des informations du client N°',i);
with c do
begin
write('entrer l''indentificateur:');readln(id);
write('entrer le nom:'); readln(nom);
write('entrer le prénom:');readln(prenom);
write('donner le numéro de la Carte d''Identité Nationale:');readln(cin);
      writeln('================ saisie du numéro du téléphone:');
      with t do
      begin
      write('entrer l''indicatif:');readln(indicatif);
      write('entrer le numéro:');readln(numero);
      end;
          writeln('=============================== saisie de l''adresse:');
          with a do
          begin
          write('entrer le numéro:');readln(num);
          write('entrer la rue:');readln(rue);
          write('entrer le code postal:');readln(c_p);
          write('entrer la ville:');readln(ville);
          end;
write('entrer le montant:');readln(montant);
end;
write(f,c);
repeat
writeln;
write('Autre client (O/N)?:');readln(rep)
until(upcase(rep) in ['O','N']);
until upcase(rep)='N';
close(f);
end;
{*********** procédure Ajout client *************************************************}
procedure ajout(var f:fich_clients);
var
g:client;
t:tel;
a:adresse;
rep:char;
begin
reset(f);
seek(f,filesize(f));
repeat
with g do
begin
write('entrer l''indentificateur:');readln(id);
write('entrer le nom:'); readln(nom);
write('entrer le prénom:');readln(prenom);
write('donner le numéro de la Carte d''Identité Nationale:');readln(cin);
      writeln('================ saisie du numéro du téléphone:');
      with t do
      begin
      write('entrer l''indicatif:');readln(indicatif);
      write('entrer le numéro:');readln(numero);
      end;
          writeln('=============================== saisie de l''adresse:');
          with a do
          begin
          write('entrer le numéro:');readln(num);
          write('entrer la rue:');readln(rue);
          write('entrer le code postal:');readln(c_p);
          writeln('entrer la ville:');readln(ville);
          end;
write('entrer le montant:');readln(montant);
end;
write(f,g);
repeat
write('Autre ajout (O/N)?:');readln(rep)
until(upcase(rep) in ['O','N']);
until upcase(rep)='N';
close(f);
end;
{********************* procédure modifier client **********************************}
procedure modifier(var f:fich_clients);
var
k,x:client;
t:tel;
a:adresse;
rep:char;
ok:boolean;
id_mod:byte;
begin
repeat
write('entrer l''identité du client à modifier:');
readln(id_mod);
reset(f);
ok:=false;
while not(eof(f))and(ok=false)do
begin
read(f,k);
if(k.id=id_mod)then
ok:=true;
end;
if (ok=false) then
writeln('identité introuvable !!!')
else
begin
writeln('=== le client à modifier est le suivant:');
writeln('id = ',k.id);
writeln('nom = ',k.nom);
writeln('prénom = ',k.prenom);
writeln('C.I.N = ',k.cin);
writeln('====== son numéro du téléphone est:');
writeln('   Indicatif = ',k.num_tel.indicatif);
writeln('   Numéro = ',k.num_tel.numero);
writeln('============= son adresse est :');
writeln('      N° ',k.adr.num);
writeln('      Rue = ',k.adr.rue);
writeln('      code postal = ',k.adr.c_p);
writeln('      ville       = ',k.adr.ville);
writeln('le montant = ',k.montant);
writeln;
with x do
begin
write('entrer le nouveau indentificateur:');readln(id);
write('entrer le nouveau nom:'); readln(nom);
write('entrer le nouveau prénom:');readln(prenom);
write('donner le nouveau numéro de la Carte d''Identité Nationale:');readln(cin);
      writeln('================ saisie du nouveau numéro du téléphone:');
      with t do
      begin
      write('entrer l''indicatif:');readln(indicatif);
      write('entrer le numéro:');readln(numero);
      end;
          writeln('=============================== saisie de la nouvelle adresse:');
          with a do
          begin
          write('entrer le numéro:');readln(num);
          write('entrer la rue:');readln(rue);
          write('entrer le code postal:');readln(c_p);
          writeln('entrer la ville:');readln(ville);
          end;
write('entrer le nouveau montant:');readln(montant);
end;
seek(f,filepos(f)-1);
write(f,x);
repeat
write('Autre modification (O/N)?:');readln(rep)
until(upcase(rep) in ['O','N']);
end;
until upcase(rep)='N';
close(f);
end;
{*********************** procédure supprimer client ************************************}
procedure supprimer (var f:fich_clients);
var
fich_inter:fich_clients;
ch:string;
y,z:client;
rep:char;
ok:boolean;
id_sup:byte;
p,i:integer;
begin
write('Entrer le nom physique du fichier intermédiaire:');
readln(ch);
assign(fich_inter,ch);
repeat
write('Entrer l''identité du client à supprimer:');
readln(id_sup);
reset(f);
ok:=false;
while(not(eof(f))and(ok=false))do
begin
read(f,y);
if(y.id = id_sup)then
ok:=true;
end;
if(ok=false)then
writeln('Identité introuvable !!!')
else
begin
writeln('=== le client à supprimer est le suivant:');
writeln('id = ',y.id);
writeln('nom = ',y.nom);
writeln('prénom = ',y.prenom);
writeln('C.I.N = ',y.cin);
writeln('====== son numéro du téléphone est:');
writeln('   Indicatif = ',y.num_tel.indicatif);
writeln('   Numéro = ',y.num_tel.numero);
writeln('============= son adresse est :');
writeln('      N° ',y.adr.num);
writeln('      Rue = ',y.adr.rue);
writeln('      code postal = ',y.adr.c_p);
writeln('      ville       = ',y.adr.ville);
writeln('le montant = ',y.montant);
readln;
p:=filepos(f);
reset(f);
rewrite(fich_inter);
for i:=1 to p-1 do
begin
read(f,z);
write(fich_inter,z);
end;
seek(f,p);
while not(eof(f))do
begin
read(f,z);
write(fich_inter,z);
end;
reset(fich_inter);
rewrite(f);
while not(eof(fich_inter)) do
begin
read(fich_inter,z);
write(f,z);
end;
end;
repeat
write('Autre suppresion (O/N)?:');readln(rep);
until upcase(rep) in ['O','N'];
until upcase(rep) = 'N';
close(f);
end;
{********************* procédure affichage des clients ****************************}
procedure affichage (var f:fich_clients);
var
j:integer;
u:client;
a:adresse;
t:tel;
begin
reset(f);
j:=0;
while not(eof(f))do
begin
read(f,u);
j:=j+1;
writeln('======= Affichage du client N° ',j);
with u do
begin
writeln('id = ',id);
writeln('nom = ',nom);
writeln('prénom = ',prenom);
writeln('C.I.N = ',cin);
writeln('====== son numéro du téléphone est:');
with t do
begin
writeln('   Indicatif = ',indicatif);
writeln('   Numéro = ',numero);
end;
writeln('============= son adresse est :');
with a do
begin
writeln('      N° ',num);
writeln('      Rue = ',rue);
writeln('      code postal = ',c_p);
writeln('      ville       = ',ville);
end;
writeln('le montant = ',u.montant:8:3);
end;
readln;
clrscr;
end;
close(f);
end;
{****************** procédure assignation *******************************}
procedure assignation(var f:fich_clients);
var
chemin:string;
begin
write('Entrer le nom physique du fichier des clients:');
readln(chemin);
assign(f,chemin);
end;
{****************** procédure création ******************************************}
procedure creation(var f:fich_clients);
begin
rewrite(f);
end;
{****************** programme principal ******************************************}
begin
a:
clrscr;
writeln('*********** Menu Principal **********');
writeln('1- Assignation                       :');
writeln('2- création                          :');
writeln('3- saisie des clients                :');
writeln('4- Ajout d''un client                 :');
writeln('5- Modifier un client                :');
writeln('6- Supprimer un client               :');
writeln('7- Affichage de la liste des clients :');
writeln('8- Sortir                            :');
writeln;
repeat
write('Entrer Votre choix S.V.P entre 1 et 8:');
readln(choix);
until choix in [1..8];
case choix of
1:begin
  clrscr;
  assignation(f);
  goto a;
  end;
2:begin
   clrscr;
   creation(f);
   goto a;
  end;
3:begin
  clrscr;
  saisie(f);
  goto a;
  end;
4:begin
  clrscr;
  ajout(f);
  goto a;
  end;
5:begin
  clrscr;
  modifier(f);
  goto a;
  end;
6:begin
  clrscr;
  supprimer(f);
  goto a;
  end;
7:begin
  clrscr;
  affichage(f);
  goto a;
  end;
8:begin
  clrscr;
  writeln('Baye Baye c''est fini !');
  readln;
  end;
end;
end.






 
Revenir en haut
bessima


Hors ligne

Inscrit le: 01 Déc 2008
Messages: 4
Féminin
Point(s): 51
Moyenne de points: 0

Posté le: Mar 2 Déc - 12:30 (2008)    Sujet du message: excercice corrige Répondre en citant

ecrire un programme qui cree sur disquette le fichier mots.dat contenant une serie de50 mots au maximum(longueur maximale d'un mot:50 caractère).la saisie des mots se terminera a l'introductrion du symbole'*' qui ne sera pas ecrit dand le fichier
     svp aider moi pour trouver la solution.merci Confused


 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 11:30 (2016)    Sujet du message: Exercice corriger sur le fichiers

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> `··._.·`·.¸¸.·´´Cours¯`··._.·`·.,¸¸,.·´¯ Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation