Program Magisches_Quadrat_version1;
const max = 3;
var
quadrat : array[1..max,1..max] of integer;
zeile, spalte: integer;
eintrag : integer;
begin {quadrat }
for zeile := 1 to max do
for spalte := 1 to max do
quadrat[ zeile, spalte ] := 0;
zeile := 1;
spalte := 2;
eintrag := 1;
quadrat[ zeile, spalte ] := eintrag;
while eintrag <= max*max do
begin
if zeile = 1 then
begin
if spalte = max then
zeile := zeile +1
else
begin
spalte := spalte +1;
zeile := max;
end;
end { zeile = 1}
else
begin { Zeile <> 1 }
if spalte = max then
begin
zeile := zeile -1;
spalte := 1;
end
else
begin
spalte := spalte +1;
zeile := zeile -1;
if mag_quadrat[ zeile, spalte ] <> 0 then
begin
spalte := spalte - 1;
zeile := zeile + 2;
end;
end;
end;
eintrag := eintrag +1;
mag_quadrat[ zeile, spalte ] := eintrag;
end; { of while }
for zeile := 1 to max do
begin
for spalte := 1 to max do
write(mag_quadrat[ zeile, spalte ],' ');
writeln;
end;
readln
end. {Quadrat}
Version2