Compression d’un octet (traduction pascal)
Page 1 sur 1
Compression d’un octet (traduction pascal)
ÉNONCÉ
Un CODEC est un logiciel compresseur décompresseur de fichiers. En effet, les suites de bits composant un fichier comportent des similitudes comme 10000111. Plutôt que de stocker la totalité de cet octet, On gagne de la place en écrivant 14031(qui se lit un quatre zéro 3 uns). Cet octet (huit bits) retrouvera ensuite son format original à la décompression.
Il s’agit alors de saisir une chaîne de huit chiffres formée uniquement de 0 et de 1 pour désigner un octet puis la compresser suivant le principe de compression de CODEC et enfin l’afficher
Exemple :
Si octet= « 10010111 »
Alors l’octet compressé est : « 1201031 »
Travail à faire :
1. Analyser ce problème en le décomposant en modules.
2. Analyser chacun des modules proposés.
3. Déduire un algorithme pour le programme principal et pour chaque module.
PASCAL
program compression_octet;
uses wincrt;
var
resultat,ch:string;
procedure saisie (var mot1:string);
var
chiffre:boolean;
l,i:integer;
begin
repeat
writeln('saisir une chaine de huit chiffres formée uniquement de 0 et 1 ');
readln(mot1);
l:=length(mot1);
chiffre:=true;
i:=0;
repeat
i:=i+1;
if not(( mot1[i] ='0') or (mot1[i] ='1') and (l= 8 )) then chiffre:=false;
until (chiffre=false) or (i=length(mot1));
until chiffre;
end;
procedure affichage(res1:string);
begin
writeln('l''octet compressé est:',res1);
end;
function compression(ch1:string):string;
var
ok:boolean;
c:char;
i,j:integer;
res,j1:string;
begin
i:=1;
res:='';
repeat
c:=ch[i];
j1:=c;
i:=i+1;
ok:=true;
j:=1;
repeat
if ch[i]=c then begin
i:=i+1;
j:=j+1; end
else ok:=false;
until (ok=false) or (i=9);
if j > 1
then begin
str(j,j1);
j1:=concat(j1,c); end;
res:=concat(res,j1);
until (i> 8 );
compression:=res;
end;
begin
writeln('*********** Compression d''un octet*******************');
saisie(ch);
resultat:=compression(ch);
affichage(resultat);
end.
Un CODEC est un logiciel compresseur décompresseur de fichiers. En effet, les suites de bits composant un fichier comportent des similitudes comme 10000111. Plutôt que de stocker la totalité de cet octet, On gagne de la place en écrivant 14031(qui se lit un quatre zéro 3 uns). Cet octet (huit bits) retrouvera ensuite son format original à la décompression.
Il s’agit alors de saisir une chaîne de huit chiffres formée uniquement de 0 et de 1 pour désigner un octet puis la compresser suivant le principe de compression de CODEC et enfin l’afficher
Exemple :
Si octet= « 10010111 »
Alors l’octet compressé est : « 1201031 »
Travail à faire :
1. Analyser ce problème en le décomposant en modules.
2. Analyser chacun des modules proposés.
3. Déduire un algorithme pour le programme principal et pour chaque module.
PASCAL
program compression_octet;
uses wincrt;
var
resultat,ch:string;
procedure saisie (var mot1:string);
var
chiffre:boolean;
l,i:integer;
begin
repeat
writeln('saisir une chaine de huit chiffres formée uniquement de 0 et 1 ');
readln(mot1);
l:=length(mot1);
chiffre:=true;
i:=0;
repeat
i:=i+1;
if not(( mot1[i] ='0') or (mot1[i] ='1') and (l= 8 )) then chiffre:=false;
until (chiffre=false) or (i=length(mot1));
until chiffre;
end;
procedure affichage(res1:string);
begin
writeln('l''octet compressé est:',res1);
end;
function compression(ch1:string):string;
var
ok:boolean;
c:char;
i,j:integer;
res,j1:string;
begin
i:=1;
res:='';
repeat
c:=ch[i];
j1:=c;
i:=i+1;
ok:=true;
j:=1;
repeat
if ch[i]=c then begin
i:=i+1;
j:=j+1; end
else ok:=false;
until (ok=false) or (i=9);
if j > 1
then begin
str(j,j1);
j1:=concat(j1,c); end;
res:=concat(res,j1);
until (i> 8 );
compression:=res;
end;
begin
writeln('*********** Compression d''un octet*******************');
saisie(ch);
resultat:=compression(ch);
affichage(resultat);
end.
Sujets similaires
» compression d'un octet (analyse et algorithmes)
» ph d'une solution chimique
» ranger en pairs et impairs les éléments d'un tableau
» Existence d'un mot dans une chaîne
» jeu de mots: algorithme et traduction pascal
» ph d'une solution chimique
» ranger en pairs et impairs les éléments d'un tableau
» Existence d'un mot dans une chaîne
» jeu de mots: algorithme et traduction pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum