1. Заполнить магический квадрат (25,8,11,14,17,20,23,26), составить свой магический квадрат. 2. Придумать алгоритм-фокус. 3. Решить алгоритм Гаусса ( 4,5,6,7,8,9,10,11,12,13)

1. Заполнить магический квадрат (25,8,11,14,17,20,23,26), составить свой магический квадрат. 2. Придумать алгоритм-фокус. 3. Решить алгоритм Гаусса ( 4,5,6,7,8,9,10,11,12,13)
Гость
Ответ(ы) на вопрос:
Гость
Магический квадрат с n сторон const   mn = 16; var   p: Boolean; procedure Swap(var a, b: Integer); var T: Integer; begin T := a; a := b; b := T end; procedure CreateMagic(n: Integer); var i, j, k, s, b, r, m: Integer; a: Array[1.. mn, 1.. mn] Of Integer; begin   p := True;  if Odd(n) Then begin i := 1; j := Succ(n div 2); for k := 1 To Sqr(n) do begin a[i, j] := k; if k mod n = 0 Then Inc(i) Else begin Dec(i); Inc(j); if i = 0 Then i := n; if j > n Then j := 1 end end;   end Else if n mod 4 = 0 Then begin k := 1; for i := 1 To n Do for j := 1 To n Do begin a[i, j] := k; Inc(k) end; j := 2; m := n div 2; for i := 1 To m Do for k := 1 To m Div 2 Do begin if j = Succ(m) Then j := 2 Else if j = (m + 2) Then j := 1; s := Succ(n - i); b := Succ(n - j); Swap(a[i, j], a[s, b]); Swap(a[i, b], a[s, j]); Inc(j, 2) end   end Else if n <> 2 Then begin k := 1; for i := 1 To n Do for j := 1 To n Do begin a[i, j] := k; Inc(k) end;   r := Pred(n div 2) div 2; m := n div 2; for i := 1 To m Do begin j := i; for k := 1 To r Do begin if j > m Then j := 1; s := Succ(n - i); b := Succ(n - j); Swap(a[i, j], a[s, b]); Swap(a[i, b], a[s, j]); Inc(j) end   end; i := 1; for k := 1 To m Do begin if j > m Then j := 1; s := Succ(n - i); Swap(a[i, j], a[s, j]); Inc(i); Inc(j)   end; i := 1; j := r + 2; for k := 1 To m Do begin if j > m Then j := 1; b := Succ(n - j); Swap(a[i, j], a[i, b]); Inc(i); Inc(j) end   end   Else p := False; if p Then begin for i := 1 To n Do begin for j := 1 To n Do Write(a[i, j]: 4); WriteLn end end Else WriteLn( 'do not exists' ) end; var   n: Integer; begin WriteLn('n = '); ReadLn(n);   CreateMagic(n); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы