Вмагическом квадрате сумма по каждой строке, по каждому столбцу и по обоим диагоналям равна одному и тому же числу, называемому константой магического квадрата. программе достаточно найти одну любую сумму, принять её в качестве упомянутой константы, а затем обнаружить хотя бы один случай неравенства очередной вычисленной суммы с принятой константой. если нарушений обнаружено не будет, квадрат является магическим. 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
06.07.2020
Эта программа действительна при условии, что утро начинается в 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
06.07.2020
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.