Program S7;
Var
ch,res : string;
//************************************
Function test(ch:String) : boolean;
Var
j : integer;
verif : boolean;
Begin
j := 1;
verif := true;
While verif And (j<=length(ch)) Do
Begin
If (ch[j] In ['A'..'Z','a'..'z'] ) And (length(ch) In [1..50] )
Then
j := j+1
Else verif := false;
End;
test := verif;
End;
//************************************
Procedure remplire(Var ch:String);
Var
i : integer;
Begin
Repeat
write('donner la chaine : ');
readln(ch);
Until (test(ch));
End;
//************************************
Procedure former(Var res:String;ch:String);
Var
i,j,cp : integer;
temp,ch1 : string;
Begin
i := 1;
temp := '';
res := '';
While i<=(length(ch)-1) Do
Begin
ch1 := '';
temp := ch[i];
cp := 1;
j := i+1;
While (ch[j]=temp) And (j<=length(ch)) Do
Begin
cp := cp+1;
j := j+1;
End;
i := j;
str(cp,ch1);
res := res+ch1+temp;
End;
End;
//************************************
Procedure affiche(x:String);
Begin
writeln('La chaine RES est: ',x);
End;
Begin
remplire(ch);
former(res,ch);
affiche(res);
End.
Inscription à :
Publier les commentaires (Atom)