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
| program zigzag;
uses wincrt;
var
nbligne,nbcolonne,nblignemax,nbcolonnemax,i,j,taille,k:integer;
mat:array [1..3,1..3] of integer;
begin
nbligne:=1;
nbcolonne:=1;
nblignemax:=3;
nbcolonnemax:=3;
k:=1;
taille:=36;
mat[nbligne,nbcolonne]:=k;
while(taille<9) do
begin
k:=k+1;
if(nbligne=1) or(nbligne=nblignemax) and(nbcolonne mod 2=1) then
begin
nbcolonne:=nbcolonne+1;
mat[nbligne,nbcolonne]:=k;
end
else
if(nbcolonne=1) or(nbcolonne=nbcolonnemax) and (nbligne mod 2 =0) then
begin
nbligne:=nbligne+1;
mat[nbligne,nbcolonne]:=k;
end
else
if(nbcolonne mod 2=0) then
begin
repeat
nbligne:=nbligne+1;
nbcolonne:=nbcolonne-1;
mat[nbligne,nbcolonne]:=k;
k:=k+1;
until(nbcolonne=1);
end
else
if(nbligne mod 2=1) then
begin
repeat
nbligne:=nbligne-1;
nbcolonne:=nbcolonne+1;
mat[nbligne,nbcolonne]:=k;
k:=k+1;
until(nbligne=1);
end;
end;
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(mat[i,j]);
writeln;
end;
end. |
Partager