Дана целая квадратная матрица, n- го порядка. определить, является ли она магическим квадратом, т.е. такой, в которой сумма элементов во всех строках и столбцах одинаковая. нужна адекватная программа уровня 11 класса на паскале.
281
393
Ответы на вопрос:
Const n=5; var a: array[1..n,1..n] of integer; i,j,s1,s2: integer; b: boolean; begin for i: =1 to n do for j: =1 to n do read(a[i,j]); b: =true; s1: =0; for j: =1 to n do s1: =s1+a[1,j]; for i: =1 to n do begin s2: =0; for j: =1 to n do s2: =s2+a[i,j]; if s1< > s2 then b: =false; s2: =0; for j: =1 to n do s2: =s2+a[j,i]; if s1< > s2 then b: =false; end; if b then writeln('матрица - магический квадрат') else writeln('матрица не является магическим квадратом'); end. пример 1: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9матрица - магический квадрат пример 2: 15 24 1 8 17 5 23 7 14 16 22 4 6 13 20 10 12 19 21 3 11 18 2 25 9 матрица не является магическим квадратом
Program magicsquares; {построение магических квадратов} uses crt; type a_type=array [1..50,1..50] of integer ; var i,j,n: integer; a: a_type; t: boolean; {логическая переменная true (правда) или false (ложь)} x,y: integer; label 1; {метка} procedure print(n: integer; a: a_type); {процедура вывода} var i,j: integer; begin for i: =1 to n do begin for j: =1 to n do write(a[i,j]: 4); writeln('' ); end; end; procedure winsh(x1,y1,x2,y2,col1,col2: word); {процедура вывода окна} begin textbackground(black); window (x1+1,y1+1,x2+1,y2+1); {тень - черный прямоугольник} clrscr; textbackground(col1); window(x1,y1,x2,y2); clrscr; textcolor(col2); {рисование рамки} gotoxy(2, 1); write('г' ); for i: =1 to x2-x1-2 do write('=' ); gotoxy(x2-x1,1); write('=' ); gotoxy(2,y2-y1+1); write('l' ); for i: =1 to x2-x1-2 do write('=' ); gotoxy(x2-x1,y2-y1+1); write('-' ); for j: =2 to y2-y1 do begin gotoxy(2,j); write('¦' ); gotoxy(x2-x1,j); write('¦' ); end ; end; procedure oddmagic(n: integer; var a: a_type); {процедура формирования магического квадрата при нечетном n. описание алгоритма в сопроводительной записке } var i,j,k: integer; p,l: integer; begin for i: =1 to n do for j: =1 to n do a[i,j]: =0; j: =n div 2 +1; p: =sqr(n); i: =1; a[i,j]: =1; for l: =2 to p do begin i: =i-1; j: =j+1; if (i=0) and (j< > n+1) then i: =n; if (j=n+1) and (i< > 0) then j: =1; if ((i=0) and (j=n+1)) or (a[i,j]< > 0) then {важен порядок условий! } begin i: =i+2; j: =j-1; end ; a[i,j]: =l; end; end; procedure two (n: integer; var a: a_type); {процедура построения квадрата при n обычной четности: n=6,10,14,} var u,i,j,k,m,z: integer; b: a_type; begin u: = n div 2; m: =(u-1) div 2; oddmagic(u,b); {вызов процедуры построения квадрата при нечет-ном u} k: =u*u; for i: =1 to n do for j: =1 to n do begin if (i> =1) and (i< =u) and (j> =1) and (j< =u) then a[i,j]: =b[i,j]; if (i> =u+1) and (i< =n) and (j> =u+1) and (j< =n) then a[i,j]: =b[i-u,j-u]+k; if (i> =1) and (i< =u) and (j> =u+1) and (j< =n) then a[i,j]: =b[i,j-u]+2*k; if (i> =u+1) and (i< =n) and (j> =1) and (j< =u) then a[i,j]: =b[i-u,j]+3*k; end; for i: =1 to u do if i=u div 2+1 then begin j: = u div 2+1; for k: =1 to m do begin z: =a[i,j]; {обмен данными} a[i,j]: =a[i+u,j]; a[i+u,j]: =z; j: =j-1 end; end
Var i,s,n: integer; a: array[1..1000] of integer; begin write('введите количество элементов массива'); read(n); for i: =1 to n do begin a[i]: =random(10); if a[i]< =6 then s: =s+a[i]; end; writete('ответ: ', s); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Alice11111111111111129.04.2022 11:14
-
jsjdn13.02.2022 14:28
-
zar2610.09.2022 15:06
-
помогите513214.10.2022 17:02
-
ИльяБлажков27.05.2021 09:12
-
Sofia62129.10.2022 21:36
-
4loVSer419.10.2020 10:06
-
PollyPanda0701.06.2020 13:35
-
dashakeks207.08.2020 08:34
-
kazimirova200916.09.2020 03:19
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.