Codage binaire des 0 et 1
merassou
Messages postés
2
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
J'ai besoin de votre aide pour corriger ce programme. Merci d'avance
Le problème est
Ecrire un programme pascal qui consiste à compter les uns ou les zéros qui se suivent dans un octet.
Exemples
Si O= 10011100 , il sera stocké 1203120
Si O=01000011, il sera stocké 014021
j'ai essaye cette solution mais toujours j'ai un probleme pour le passage entre les 0 et 1. Help pleaaaaaaaaaaaaaaase
program binaire;
Le problème est
Ecrire un programme pascal qui consiste à compter les uns ou les zéros qui se suivent dans un octet.
Exemples
Si O= 10011100 , il sera stocké 1203120
Si O=01000011, il sera stocké 014021
j'ai essaye cette solution mais toujours j'ai un probleme pour le passage entre les 0 et 1. Help pleaaaaaaaaaaaaaaase
program binaire;
uses WinCrt;
type
tab= array[1..8] of string;
var
i,n,j,nbre,l: integer;
T1,T2:tab;
bb:boolean;
res,chnbre:string;
element:char;
begin
repeat
writeln ('n=');
readln (n);
until n in [2..8];
for i:=1 to n do
repeat
writeln('donner l"element',i);
readln (T1[i]);
j:=0; bb:=true;
repeat
j:=j+1;
if not( T1[i][j] in ['0'..'1']) then
bb:=false;
until (length (T1[i])=8) or (bb=false);
until (length (T1[i])=8) and (bb);
for i:=1 to n do
begin
nbre:=1;l:=1;
repeat
element:=T1[i][j]; nbre:=1;
while (T1[i][j+1]=element) do
begin
j:=j+1;
nbre:=nbre+1
end;
if (nbre>1) then
begin
str(nbre,chnbre);
T2[i]:=T2[i]+chnbre+T1[i][j-1];
end
else
begin T2[i]:=T2[i]+T1[i][j]; j:j+1; end; l:=j+1;
until (l>8);
end;
for i:=1 to n do
writeln (T2[i]);
end.