Program Kontr; {Зачетная контрольная работа по информатике с комментариями автора} {http://studentps.narod.ru} {Условие задачи: Сформировать матрицу вещественных чисел в диапазоне от 0 до 100 размером mxm. Найти максимальный элемент побочной диагонали и минимальный элемент, находящийся выше побочной диагонали. Найти сумму элементов первой строки, которая обрамляется столбцами, содержащими найденные элементы (включая эти столбцы) и поменять эти столбцы местами} const n=10; {n-размер матрицы} var a:array [1..n,1..n] of real; i,j,maxfind,minfind:integer; temp,s,maxpob,minhi:real; begin Randomize; {инициализация генератора случайных чисел} for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(100); {заполняем массив} write(a[i,j]:2:2,' '); {вывод i-ой строки} end;{for} {Заметим, что в матрице элементы побочной диагонали связаны равенством j=n-i+1, где j-номер столбца, i - номер строки, n - размер матрицы} maxpob:=0; minhi:=0; maxfind:=0; minfind:=0; for i:=1 to n do begin for j:=1 to n do begin {а на этом цикле стоит стрелочка с надписью "правильно, но не рационально, д/б один цикл - прим. админа} If j:=(n-i+1) then begin {элемент находится на побочной диагонали} If maxpob<=a[i,j] then begin maxpob:=a[i,j]; {зафикс макс.элемент} maxfind:=j; {запоминаем столбец} end; {if} end;{if} If j<(n-i+1) then begin {элемент находится выше побочной диагонали} If minhi>=a[i,j] then begin minhi:=a[i,j]; {зафикс. мин. элемент} minfind:=j; {запоминаем столбец} end;{if} end;{if} end;{for} end;{for} writeln ('Максимальный элемент на побочной ',maxpob,' Минимальный выше побочной ',minhi); {выясним, какой столбец с нашими элементами встречается раньше} If maxfind=minfind then writeln ('Сумма элементов ',a[1,maxfind]); if maxfind>minfind then begin for i:=minfind to maxfind do s:=s+a[1,i]; end; {if} if minfind>maxfind then begin for i:=maxfind to minfind do s:=s+a[1,i]; end; {if} writeln ('Сумма элементов ',s:2:2); temp:=0; for i:=1 to n do begin temp:=a[i,minfind]; a[i,maxfind]:=a[i,minfind]; a[i,minfind]:=temp;{меняем столбцы местами} end; {for} for i:=1 to n do begin for j:=1 to n do begin write (a[i,j]:2:2); {выводим новый массив} end;{for} writeln; end; {for} end.