Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
252 / 158 / 118
Регистрация: 26.11.2012
Сообщений: 384

Магический квадрат 4x4

11.03.2013, 13:38. Показов 4733. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите построить магические квадраты 4х4, числа которые можно использовать при построении 0...6.

пробовал полный перебор, но ни чего не вышло.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2013, 13:38
Ответы с готовыми решениями:

Задача. Магический/Не магический квадрат
Проверить, является ли заданная целочисленная матрица A(N, N) "магическим квадратом" (это значит, что суммы чисел во всех её строках,...

Магический квадрат
Создать матрицу, заполнить её случайными числами, под ней сформировать одномерный массив, состоящий из суммы всех строк, столбцов, главной...

Магический квадрат
2. Необходимо разработать программу, которая проверяет, является ли матрица магическим квадратом.

2
Дзæуджыхъæу
 Аватар для domovou2.0
232 / 204 / 148
Регистрация: 20.09.2012
Сообщений: 421
Записей в блоге: 1
11.03.2013, 21:36
Лучший ответ Сообщение было отмечено Apostol584 как решение

Решение

Цитата Сообщение от Apostol584 Посмотреть сообщение
пробовал полный перебор...
лучше поиском воспользовался бы.
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
Program MagicSquare;
Uses Crt;
Var A : Array [1..20, 1..20] of Integer;
     i, j, N : Integer;
     Standard, S : Integer; {Standard - сумма-эталон, S - текущая
сумма}
     Flag : Boolean;
{-------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода
матрицы}
Begin
  ClrScr;
  Write('Количество строк и столбцов - ');
  ReadLn(N);
  For i := 1 to N do
     For j := 1 to N do
       begin Write('A[' , i , ', ' , j , '] = ');
               ReadLn(A[i, j])
       end;
  ClrScr;
  WriteLn('Исходная матрица :'); WriteLn;
  For i := 1 to N do
     begin
       For j := 1 to N do Write(A[i, j] : 5);
       WriteLn
     end; WriteLn
End; { of InputOutput }
{-------------------------------------------}
Procedure MagicOrNot(Var Flag : Boolean);             {описание
процедуры, }
                    {в которой выясняется, является ли квадрат
"магическим"}
 Begin      {вычисление суммы элементов главной диагонали}
            {в качестве эталонной суммы}
  Standard:=0;
  For i := 1 to N do Standard := Standard + A[i,i];
  Flag:=TRUE; i:=1;
  While (i<=N) and Flag do {вычисление сумм элементов строк}
     begin
       S:=0;
       For j := 1 to N do S := S+A[i, j];
       If S<>Standard then Flag := FALSE else i:=i+1
 
 
    end;
  j:=1;
  While (j<=N) and Flag do {вычисление сумм элементов столбцов}
    begin
      S:=0;
      For i := 1 to N do S:=S+A[i, j];
      If S<>Standard then Flag := FALSE else j := j+1
    end;
  If Flag then
    begin
      S:=0; {вычисление суммы элементов побочной диагонали}
      For i := 1 to N do S := S+A[i, N+1-i];
      If S<>Standard then Flag := FALSE;
    end;
End;
{--------------------------------------------------------}
BEGIN
  InputOutput; {Вызов процедуры ввода-вывода }
  MagicOrNot(Flag); {Вызов процедуры решения задачи }
  If Flag then WriteLn('Это магический квадрат.')
          else WriteLn('Это не магический квадрат.');
  ReadLn
END.
Два:
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
Program mag_kvadrat;
USES CRT;
 
CONST
NMAX=100;
 
VAR
a:array [1..NMAX,1..NMAX] of integer;
n:integer; {razmer prover kvadratnoj matr}
OK:boolean;
i,j:integer; {indeksyu}
sum:integer; {summa elementov glavnoj diagonali}
temp:integer; {summa elementov stroki, stolbca ili vtoroj diagonali matr}
Num:byte;
 
BEGIN
ClrScr;
Write ('BBEDUTE PA3MEP KBADPATHOU MATR U HAWMUTE <Enter> ->');
Readln (n);
Writeln;
Writeln ('<1> - SLUCH ZAPOLNENIE; <2> - SAMOSTOYATELNOE ZAPOLNENIE');
Writeln;
Write ('NUM {<1> or <2>} =');
Readln(Num);
If Num=1 then
begin
{---------------------------------------------------------------}
Randomize;
           for i:=1 to n do
           begin
           Writeln; {probelyu mejdy strokami}
           for j:=1 to n do         begin
                                    a[i,j]:=random(80);
                                    Write (a[i,j]:4);
                                    end;
                                    Writeln;
           end;
{---------------------------------------------------------------}
end;
If Num=2 then
begin
{---------------------------------------------------------------}
for i:=1 to n do
                 begin
                 Write('->');
                 for j:=1 to n-1 do read(a[i,j]);
                 Readln (a[i,n]);
                 end;
{---------------------------------------------------------------}
end;
 
OK:=TRUE; {Pust matr - mag kvadrat}
 
{chitaem summu elementov glavnoj diagonali}
sum:=0;
for i:=1 to n do
sum:=sum+a[i,i];
 
i:=1;
{chitaem summu po strokam}
 
REPEAT
temp:=0;  {summa elementov tekushej stroki}
for j:=1 to n do temp:=temp+a[i,j]; {poshitali summu po j stroke}
i:=i+1; {i tak dalee do posledujushih strok}
if temp<> sum then OK:=FALSE;
UNTIL (not OK) or (i>n);
 
If OK then
{zdes summa elementov kagdoj stroki
ravna summe elementov glavn diagonali}
 
 
Begin
{chitaem summyi po stolbcam}
j:=1;
 
REPEAT
temp:=0; {summa elementov tekushego stolbca}
for i:=1 to n do temp:=temp+a[i,j];
j:=j+1; {i tak dalee do posleduyushih stolbcov}
if temp<> sum then OK:=FALSE;
UNTIL (not OK) or (j>n);
 
If OK then
{zdes summa elementov kagdoj stroki
ravna summe elementov glavn diagonali
i ravna summe elementov kajdogo stolbca}
 
begin
{chitaem summu elementov pobochnoi diagonali}
temp:=0;
j:=n;
for i:=1 to n do begin
                 temp:=temp+a[i,j];
                 j:=j-1;
                 end;
if temp<> sum then OK:=FALSE;
end;
End;
Writeln;
 
Write ('VVEDENNAJA MATR ');
If not OK then
Write('!!! NE !!!');
Writeln (' JAVLYAETSYA MAGICHESKIM KVADRATOM');
Readkey;
END.
Определить, является ли матрица магическим квадратом
0
252 / 158 / 118
Регистрация: 26.11.2012
Сообщений: 384
12.03.2013, 02:04  [ТС]
Эти программы проверяют является ли матрица магическим квадратом, но мне нудно построение всех возможных.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2013, 02:04
Помогаю со студенческими работами здесь

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

Магический квадрат
Сап. Дела такие. Есть такой квадрат, он называется магический Потому что вставляя туда четные цифры , (ровно 9) ты получаешь ту же...

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

Построить магический квадрат 5 порядка
4. Используя любой удобный метод, построить магический квадрат 5 порядка. Помогите ПЛИЗ!!!Очень нужно решить. А то я Дуб дубов этом((

Магический четно-четный квадрат
Магический четно четный квадрат,напишите пожалуйста данную программу в паскале abc Procedure Four(n:integer; var a:a_type); ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru