Révision : compression d'un fichier des nombres binaires

Voir le sujet précédent Voir le sujet suivant Aller en bas

Révision : compression d''un fichier des nombres binaires

Message  Hanafi le Mar 19 Mai - 2:29

On veut compresser un fichier d'entiers binaires (contenant des 0 et des 1).
Le principe de compression est le suivant :
Si le fichier contient : 00000011111000, La compression nous donne : 605130
Et se lit : on a 6 zéros, 5 uns et 3 zéros.
Ecrire un programme Pascal qui permet de créer et remplir un fichier nomme "source.fch"
par N entiers binaires (N est un nombre aléatoire compris entre 4 et 100), puis compresser
ce fichier dans un fichier résultat nommé "compress.fch" en utilisant le principe ci-dessus et l'afficher.

Essayez de le faire le plus vite possible.

avatar
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

on travaille avec les fichier tp

Message  bouhmid le Mar 19 Mai - 15:05

Shocked
avatar
bouhmid

Messages : 15
Date d'inscription : 15/02/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Révision : compression d'un fichier des nombres binaires

Message  Hanafi le Mar 19 Mai - 20:12

bouhmid a écrit:Shocked
Ahmed ! Ou est votre essai ? N'oubliez pas que vous êtes un genie !!!
J'attends avec impatience ... bounce
avatar
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Proposition de solution

Message  Hanafi le Mer 20 Mai - 17:15

program compression;
uses wincrt;

var f1,f2:text;
n:integer;
procedure remplir(var f1:text;var n:integer);
var i,j:integer;
n2:string;
test:boolean;
begin
rewrite(f1);
randomize;
n:=random(97)+4;
for i:=1 to 3 do
begin
repeat
test:=true;
write('Donner un nombre binaire ');
readln(n2);
for j:=1 to length(n2) do
if not (n2[j] in ['0','1']) then
test:=false;
until test;
writeln(f1,n2);
end;
close(f1);
end;
procedure convert(var f1,f2:text);
var ch,chnc,n2:string;
i,nc:integer;
c:char;
begin
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
readln(f1,n2);
writeln('n2=',n2);readln;
i:=1; ch:='';
repeat
c:=n2[i];
nc:=0;
while (n2[i]=c) and (i<=length(n2)) do
begin
i:=i+1;
nc:=nc+1;
end;
str(nc,chnc);
ch:=ch+chnc+c;
until i>length(n2);
writeln(f2,ch);
end;
close(f2);close(f1);
end;
procedure affiche(var f2:text);
var n2:string;
begin
reset(f2);
while not eof(f2) do
begin
readln(f2,n2);
writeln(n2);
end;
close(f2);
end;


begin
assign(f1,'c:\bac2009\source.fch');
assign(f2,'c:\bac2009\compress.fch');
remplir(f1,n);
convert(f1,f2);
affiche(f2);
end.
N'oublier pas de créer un dossier de votre numéro d'inscription et enregistrez votre travail périodiquement en cliquant sur la disquette de barre d'outil Pascal.
avatar
Hanafi

Messages : 106
Date d'inscription : 25/10/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Révision : compression d'un fichier des nombres binaires

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum