program massiv3;
uses crt;
label inp1;
var n,k,i,j: integer;
sum: integer;
a: array[1..8,1..8] of integer;
s: array[1..8] of integer;
{функция суммы элементов строки массива}
function summa (b: integer):integer;
var s1:integer;
begin
s1:=0;
for n:=1 to 8 do
s1:=s1+a[b,n];
summa:=s1;
end;
{процедура поиска совпадений строк и столбцов}
procedure search;
begin
for i:=1 to 8 do
for j:=1 to 8 do
if a[i,j]=a[j,i] then s[i]:=s[i]+1;
{вывод результатов поиска}
for i:=1 to 8 do
if s[i]=8 then begin n:=n+1; writeln('Совпадают ',i,' строка и ',i,' столбец.'); end;
if n=0 then writeln('Совпадений строк и столбцов не найдено.');
end;
{основная программа}
begin
randomize;
clrscr;
{выбор источника значений массива}
inp1: writeln('Выберите способ заполнения массива (1 - вручную, 2 - псевдослучайные значения)');
readln(k);
case k of
{заполнение массива вручную}
1: begin
for i:=1 to 8 do
for j:=1 to 8 do
begin
writeln('Введите [',i,';',j,'] элемент массива');
read(a[i,j]);
end;
end; {1}
{заполнение массива псевдослучайными значениями}
2: begin
for i:=1 to 8 do
for j:=1 to 8 do
begin
a[i,j]:=trunc(random*10);
if trunc(random*2)=1 then a[i,j]:=a[i,j]*(-1);
end;
end; {2}
else goto inp1;
end; {case}
writeln('Массив заполнен значениями:');
{вывод массива на экран}
writeln;
for i:=1 to 8 do
begin
for j:=1 to 8 do
begin
write(a[i,j]:2,' ');
end;{j}
writeln;
end;{i}
writeln;
{поиск максимального по модулю элемента массива при помощи процедуры search}
search;
writeln;
{сумма элементов в строках с отрицательным элементом}
for i:=1 to 8 do
begin
for j:=1 to 8 do
begin
if a[i,j]<0 then
begin
sum:=summa(i);
writeln('Сумма элементов в ',i,' строке равна ',sum);
break;
end;
end; {j}
end; {i}
readln(i);
end.