0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 9
1

Построить магический квадрат порядка n

29.10.2014, 00:09. Показов 7178. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
построить магический квадрат
порядка n в pascal.
чтоб по горизонтали по вертикали и по диагонали была равна сумма цифр
Миниатюры
Построить магический квадрат порядка n  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2014, 00:09
Ответы с готовыми решениями:

Построить магический квадрат
Написать программу, которая позволяет построить магический квадрат любой четности при 10<=n<=5

магический квадрат
написать программу, использующую подпрограмму, которая проверяет, является ли введенная матрица...

Магический квадрат
дана целая квадратная матрица n-порядка. Определить, являеться ли она магическим квадратом, т.е....

Магический квадрат
Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом, т. е....

8
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
29.10.2014, 05:42 2
Шифрование текста магическим квадратом 6X6 в конце темы

Добавлено через 2 минуты
сами сможете переделать?

Добавлено через 11 минут
и небольшое замечание - в традиционном магическом квадрате числа не повторяются
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,925
29.10.2014, 09:27 3
Воспользоваться поиском вера не позволяет?
Определить, является ли матрица магическим квадратом
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
29.10.2014, 09:44 4
Цитата Сообщение от alexcoder Посмотреть сообщение
Воспользоваться поиском вера не позволяет?
Магический квадрат
Коллега, извините, но в указанной Вами теме НЕТ кода ПОСТРОЕНИЯ магического квадрата.

Там есть код по проверке, является ли матрица (введённая вручную или заполненная случайными числами) магическим квадратом.
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,925
29.10.2014, 09:48 5
Коллега, можно перейти вниз страницы и среди похожих тем выбрать ту, в которой есть.
Пусть ТС хоть что-нибудь сам сделает!
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
29.10.2014, 11:19 6
Цитата Сообщение от alexcoder Посмотреть сообщение
Коллега, можно перейти вниз страницы и среди похожих тем выбрать ту, в которой есть.
перебрал все похожие темы по ссылкам (в том числе и ходил по ссылкам в найденных темах).
Но нашёл одну единственную, где Puporev выложил код построения для заданного N...
Эта тема реально одна из "Похожих тем" внизу под темой по указанной ссылке...

Цитата Сообщение от alexcoder Посмотреть сообщение
Пусть ТС хоть что-нибудь сам сделает!
согласен!
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
29.10.2014, 12:50 7
зачем одинаковые темы плодите?
вот для нечетного традиционного квадрата
Pascal
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
type 
   mas=array[1..20,1..20] of integer;
var
  A:mas;
  i,j,n:integer;
 
procedure kvadrat(var A:mas;n:integer);
var
  i,j:integer;
begin
  for i:=1 to n do 
    for j:=1 to n do begin
       a[i,j]:= 1+((i+j-1+n div 2) mod n)*n+(i+2*(j-1)) mod n;
    end;
end;  
begin
  repeat
    write('введите порядок квадрата (нечетное число от 3 до 19)>');
    readln(n);
  until (n>2)and (n<21) and (odd (n));  
  kvadrat(A,n);//расчет квадрата
  for i:=1 to n do begin
    for j:=1 to n do write(A[i,j]:3);
    writeln;
  end;
end.
1
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
29.10.2014, 13:01 8
Цитата Сообщение от Joy Посмотреть сообщение
вот для нечетного
на форуме есть программа формирующая магические квадраты для n от 3 до 16, в том числе и для чётных n
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.10.2014, 16:58 9
Вероятно ТС нужен латинский квадрат со свойствами магического, что и изображено на картинке.

Добавлено через 9 минут
Цитата Сообщение от Sergio Leone Посмотреть сообщение
на форуме есть программа формирующая магические квадраты для n от 3 до 16, в том числе и для чётных n
У себя не сохранил и на форуме не мог найти, а сегодня нашел
Магический квадрат

Добавлено через 33 минуты
Переделал тот код под условие ТС.
Для нечетных матриц получаются латинские квадраты, для других нет.
Pascal
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
uses crt;
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 mod n;
    if k mod n=0 then
     begin
      a[i,j]:=n;
      Inc(i)
     end
    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);
    if k=n+1 then k:=1;
   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);
    if k=n+1 then k:=1;
   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;
  j := Succ(r);
  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
clrscr;
Write('n = ');
ReadLn(n);
CreateMagic(n);
readln
end.
0
29.10.2014, 16:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2014, 16:58
Помогаю со студенческими работами здесь

Магический квадрат
Только вернулся со второго тура районной олимпиады где занял второе место, вот одна из задач....

Магический квадрат
Помогите, пожалуйста, решить задачу. Дана целая квадратная матрица n-го порядка. Определить...

Магический квадрат
Нужно определить, является ли матрица NxN магическим квадратом. Как описать главную диагональ я...

Магический квадрат
Дана матрица 3x3. Определить является ли матрица магическим квадратом. Кто может помочь решить ?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru