Chervonnaya-Aleksei
?>

Дана квадратная матрица n порядка. определить является ли она магическим квадратом

Информатика

Ответы

perovd8111
Вмагическом квадрате сумма по каждой строке, по каждому столбцу и по обоим диагоналям равна одному и тому же числу, называемому константой магического квадрата. программе достаточно найти одну любую сумму, принять её в качестве упомянутой константы, а затем обнаружить хотя бы один случай неравенства очередной вычисленной суммы с принятой константой. если нарушений обнаружено не будет, квадрат является магическим. const   n2 = 10; var   a: array[1..n2, 1..n2] of integer;   i, j, n: integer;   k, s: longint;   magic: boolean; begin   write('введите число строк (cтолбцов) в магическом квадрате: ');   readln(n);   for i : = 1 to n do   begin       write('введите через пробел элементы строки ', i, ': ');       for j : = 1 to n do read(a[i, j])   end;   s : = 0;   for j : = 1 to n do s : = s + a[1, j];   k : = s; i : = 2; magic : = true;   while magic and (i < = n) do   begin       s : = 0;       for j : = 1 to n do s : = s + a[i, j];       magic : = (s = k);       i : = i + 1   end;   j : = 1;   while magic and (j < = n) do   begin       s : = 0;       for i : = 1 to n do s : = s + a[i, j];       magic : = (s = k);       j : = j + 1   end;   if magic then begin       s : = 0;       for i : = 1 to n do s : = s + a[i, i];       magic : = (s = k);   end;   if magic then begin       s : = 0;       for i : = 1 to n do s : = s + a[i, n - i + 1];       magic : = (s = k);   end;   if magic then writeln('квадрат является магическим, k=', k)   else writeln('квадрат не является магическим') end. тестовое решение: введите число строк (cтолбцов) в магическом квадрате: 5 введите через пробел элементы строки 1: 11 24 7 20 3 введите через пробел элементы строки 2: 4 12 25 8 16 введите через пробел элементы строки 3: 17 5 13 21 9 введите через пробел элементы строки 4: 10 18 1 14 22 введите через пробел элементы строки 5: 23 6 19 2 15 квадрат является магическим, k=65 введите число строк (cтолбцов) в магическом квадрате: 4 введите через пробел элементы строки 1: 1 1 1 1 введите через пробел элементы строки 2: 1 1 1 1 введите через пробел элементы строки 3: 1 1 1 1 введите через пробел элементы строки 4: 1 1 2 -1 квадрат не является магическим
julichca68
Эта программа действительна при условии, что утро начинается в 6, день в 12, вечер в 18, а ночь в 24 и продолжается до 6. написала через if, так как не знакома с case, буду рада, если кто-нибудь мне расскажет) var  a: integer; begin   read(a);     if (a > 5) and (a < = 11) then     write('утро ');   if (a > 11) and (a < = 17) then     write('день ');   if (a > 17) and (a < = 23) then     write('вечер');     if (a = 24) or (a < 6) then        write('ночь'); end.
manyugina1
Const   gl = 'аеёиоуыэюя'; var   s: string;   f: array[1..10] of boolean;   i, m: integer; begin   write('введите фразу: '); readln(s);   m : = pos(' ', s);   if m = 0 then writeln('в строке отсутствуют пробелы')   else begin       for i : = 1 to 10 do f[i] : = false;       for i : = m + 1 to length(s) do           case s[i] of               'а', 'а': f[1] : = true;               'е', 'е': f[2] : = true;               'ё', 'ё': f[3] : = true;               'и', 'и': f[4] : = true;               'о', 'о': f[5] : = true;               'у', 'у': f[6] : = true;               'ы', 'ы': f[7] : = true;               'э', 'э': f[8] : = true;               'ю', 'ю': f[9] : = true;               'я', 'я': f[10] : = true           end;       write('найдены гласные: ');       for i : = 1 to 10 do           if f[i] then write(gl[i], ' ');       writeln   end end. тестовое решение: введите фразу: это проверочная фраза "мама мыла раму". конец теста. найдены гласные: а е о у ы я в pascal.abc можно написать и короче: const   gl = 'аеёиоуыэюя'; var   s: string;   f: array[1..10] of boolean;   i, m, p: integer; begin   write('введите фразу: '); readln(s);   m : = pos(' ', s);   if m = 0 then writeln('в строке отсутствуют пробелы')   else begin       for i : = 1 to 10 do f[i] : = false;       s : = lowercase(s); { перекодировать к нижнему регистру }       for i : = m + 1 to length(s) do       begin           p : = pos(s[i], gl);           if p > 0 then f[p] : = true       end;       write('найдены гласные: ');       for i : = 1 to 10 do           if f[i] then write(gl[i], ' ');       writeln   end end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дана квадратная матрица n порядка. определить является ли она магическим квадратом
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

gilmore886173
Aleksandr740
azarovaelena19812
oslopovavera
kzhgutova
alekseev13602
ksoboleva
Измайлова-Алексей
serov555zaq5
vfif-804828
maryariazantseva
ПаршинАндрей1928
balabinatanya7174
rykovatv6
kristi-a-90