Program S1;
Uses crt;
Type
fdat = file Of integer;
tab = array[1..20] Of string;
Var
fd : fdat;
ft : text;
n,p,d : integer;
decomp : tab;
//****************************************
Function verif(n,p:integer) : boolean;
Var
chn : string;
Begin
str(n,chn);
verif := (length(chn)=p);
End;
//****************************************
Procedure remplir(Var fd:fdat; n,p:integer);
Var
i,v : integer;
Begin
rewrite(fd);
For i:=1 To n Do
Begin
Repeat
write('saisir un entier de ',p, ' chiffres: ');
readln(v);
Until verif(v,p);
write(fd,v);
End;
End;
//****************************************
Procedure affiche1(Var f:fdat);
Var
ch : string;
Begin
reset(f);
While (Not(eof(f))) Do
Begin
read(f,n);
writeln('---->',n);
End;
End;
//****************************************
Procedure affiche(Var ft:text);
Var
ch : string;
Begin
reset(ft);
While (Not(eof(ft))) Do
Begin
readln(ft,ch);
writeln('---->',ch);
readln;
End;
End;
//****************************************
Procedure decompfact(Var T:tab;Var n:integer;v:integer);
Var
i : integer;
chi : string;
Begin
i := 2;
n := 0;
While (v<>1) Do
If (v Mod i=0) Then
Begin
n := n+1;
str(i,chi);
T[n] := chi;
v := v Div i;
End
Else
i := i+1;
End;
//****************************************
Function genere(T:tab;d:integer) : string;
Var
c : char;
n,i : integer;
chg,chn,ch : string;
Begin
chg := '';
ch := T[1];
n := 1;
i := 1;
Repeat
i := i+1;
If (T[i]=ch) Then
n := n+1
Else
Begin
str(n,chn);
chg := chg+chn+ch;
ch := T[i];
n := 1;
End;
Until (i>d);
genere := chg;
End;
//****************************************
Procedure decomposition (Var fd:fdat; Var ft:text; n:integer);
Var
chdecomp,chg : string;
v,i,j : integer;
Begin
reset(fd);
rewrite(ft);
For i:=1 To n Do
Begin
read(fd,v);
decompfact(decomp,d,v);
write(v,' = ');
For j:=1 To d-1 Do
write(decomp[j],',');
writeln(decomp[d]);
chg := genere(decomp,d);
writeln(ft,chg);
End;
End;
//****************************************
Begin
Repeat
write('Saisir N: ');
readln(n);
Until (n>2) And (n<100);
Repeat
write('Saisir P: ');
readln(p);
Until (p>2) And (p<6);
assign(fd,'nombres.dat');
assign(ft,'facteurs.txt');
remplir(fd,n,p);
clrscr;
writeln('--------------------------------------------------------');
writeln;
writeln('------------ Le contenu du fichier Nombres.dat ---------');
writeln;
writeln('--------------------------------------------------------');
decomposition(fd,ft,n);
writeln('--------------------------------------------------------');
writeln;
writeln('------------ Le contenu du fichier Facteurs.txt ---------');
writeln;
writeln('--------------------------------------------------------');
affiche(ft);
End.
Inscription à :
Publier les commentaires (Atom)