1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| uses crt;
const n=3;
type matrice=array[1..n,1..n]of char;
var m:matrice;
f_code, f_inter:text;
i,j:integer;
procedure creation(var nomi:text;nome:string);
begin
assign(nomi, nome) ;
rewrite(nomi);
close(nomi);
end;
procedure etape1(var m : matrice; n : integer);
var i, j :integer;
begin
randomize;
for i:=1to n do for j:=1 to n do m[i,j] := chr(ord('A')+random(26));
end;
procedure etape2( m : matrice; n : integer; var f_inter : text);
var i, bi, bs:integer;
ch : string;
begin
append(f_inter);
bi:=1;
bs:=n;
while bi<bs do begin
ch:='';
for i:= bi to bs do ch :=ch+ m[bi,i];
for i:= bi+1 to bs-1 do ch := ch+ m[i,bs];
for i:= bs downto bi do ch:=ch+ m[bs,i];
for i:= bs-1 downto bi+1 do ch:=ch+m[i,bi];
bi := bi+1;
bs := bs-1;
writeln(f_inter,ch);
end;
if bi = bs then writeln(f_inter,m[bi,bs]);
close(f_inter);
end;
function convert_10_b2 (D,b2:integer ):string;
var r :integer ;
c,ch:string ;
begin
ch:='';
repeat
r := D mod b2 ;
if r<10 then str(r,c)
else c:= chr(r+55);
ch:=c+ch;
D:=D div b2;
until D=0 ;
convert_10_b2:=ch;
end;
procedure etape3(var f_inter, f_code : text);
var ch : string;
i : integer;
begin
reset(f_inter);
append(f_code);
writeln( f_code, convert_10_b2 (n,2) );
while not eof(f_inter) do begin
readln(f_inter, ch);
for i:=1 to length(ch) do write(f_code, convert_10_b2 (ord(ch[i]),16),'#' );
writeln(f_code);
end;
close(f_inter);
close(f_code);
end;
begin
creation(f_inter,'f_inter.txt');
creation(f_code ,'f-code.txt');
etape1(m, n);
for i:=1to n do begin for j:=1 to n do write(m[i,j],' ');writeln;end;
etape2(m, n, f_inter);
etape3(f_inter, f_code);readln
end. |
Partager