{Pascal. Проверить, является ли код оптимальным и правильным решением задачи, решить проблему вывода при отсутствии "специальных элементов" Задача: дана вещественная матрица А размера NxM, вывести значение и индексы "особого элемента" (считается особым, если он больше суммы остальных элементов его столбца). (Такой элемент может быть только один в столбце, поэтому нужно находить максимум по столбцу и сранивать этот максимум с суммой по столбцу. Функция sum возвращает индекс этого элемента.) } const nmax=10; mmax=10; type mas=array[1..nmax,1..mmax] of real; var n,m,j,i,k,pr:integer; { (где n и m - размерность, не превышающая nmax, mmax соответственно)} a:mas; function sum(a:mas; j:integer):integer; var i,ind:integer; s,mx:real; begin s:=a[1,j]; mx:=a[1,j]; ind:=1; for i:=2 to n do begin s:=s+a[i,j]; if a[i,j]>mx then begin mx:=a[i,j]; ind:=i; end; end; if mx>s-mx then sum:=ind else sum:=0; end; begin write('n = '); readln(n); write('m = '); readln(m); { формирование массива и вывод на экран } for i:=1 to n do for j:=1 to m do begin a[i,j]:=random(-20,50)/10; write(a[i,j]:6); if j=m then writeln; end; { обработка массива } pr:=0; for j:=1 to m do begin k:=sum(a,j); if k>0 then begin if pr=0 then begin writeln('особые элементы'); pr:=1; end; writeln ('a[',k,',',j,']=',a[k,j]); end; end; if pr=0 then writeln('особых элементов нет'); end.