Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program div11;
- uses wincrt;
- type
- eng=Record
- nb_dec:string;
- mention:string;
- end;
- fich=file of eng;
- var
- ft:text;
- fe:fich;
- n:byte;
- procedure saisie(var n:byte);
- begin
- Repeat
- write('n=');
- readln(n);
- until n in[1..49];
- end;
- function verif(ch:string):Boolean;
- var i:integer;
- begin
- i:=1;
- while((ch[i] in ['0'..'9']) OR (Upcase(ch[i]) in ['A'..'Z'])) AND (i <= length(ch)) do
- i:=i+1;
- verif:=i>length(ch);
- end;
- procedure rempft(var ft:text ; n:byte);
- var
- ch:string;
- i:byte;
- begin
- rewrite(ft);
- for i:=1 to n do
- begin
- Repeat
- readln(ch);
- until (length(ch) <=9) AND (verif(ch));
- writeln(ft,ch);
- end;
- close(ft);
- end;
- procedure rempfe(var fe:fich; var ft:text);
- var
- ch,chnum:string;
- i,j,spair,simpair,e,e1:integer;
- c:byte;
- x:eng;
- begin
- reset(ft);
- rewrite(fe);
- while not(eof(ft)) do
- begin
- readln(ft,ch);
- spair:=0;
- simpair:=0;
- for i:=1 to length(ch) do
- if ch[i] in ['0'..'9'] then chnum := chnum + ch[i];
- for j:=1 to length(chnum) do
- if chnum[j] in ['0','2','4','6','8']
- then
- begin
- val(chnum[j],c,e);
- spair:=spair+c;
- end
- Else
- begin
- val(chnum[j],c,e);
- simpair:=simpair+c;
- end;
- x.nb_dec:=chnum;
- if abs(spair-simpair) mod 11 = 0 then x.mention:='divisible par 11'
- else x.mention:='n est pas divisible par 11';
- if chnum =''
- then
- begin
- x.nb_dec:='1999999999';
- x.mention:='ce n est pas un nombre decimal';
- end;
- write(fe,x);
- end;
- close(fe);
- close(ft);
- end;
- procedure aff(var fe:fich);
- var
- x:eng;
- begin
- reset(fe);
- while not(eof(fe)) do
- begin
- read(fe,x);
- writeln(x.nb_dec,' ',x.mention);
- end;
- end;
- begin
- assign(ft,'C:\Pascal\prat_2011\chaines.txt');
- assign(fe,'C:\Pascal\prat_2011\nombres.dat');
- saisie(n);
- rempft(ft,n);
- rempfe(fe,ft);
- aff(fe);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement