![](/user_photo/2706_HbeT2.jpg)
Osnovy_informatiki_-_11_Matritsy
.pdfОбработка элементов заданной строки.
Произведение ненулевых элементов в строке с номером k (1<=k<=n)
read(k);p:=1; for j:=1 to m do if A[k,j<>0 then
p:=p*A[k,j];
Обработка элементов заданного столбца.
Максимальное значение в столбце с номером r (1<=r<=m)
read(r); max:=A[1,r]; for i:=2 to m do
if A[1,r]>max then max:= A[1,r];
Обработка матрицы по строкам.
Найти сумму в каждой строке матрицы.
var sum: IArr; //для суммы элементов каждой строке
var s:integer;
for i:=1 to n do
begin
s:=0;
for j:=1 to m do
s:=s+A[i,j];
sum[I]:=s;
end;
Обработка матрицы по столбцам.
Найти столбец, в котором больше всего нулей.
var ncol,k,max:integer; max:=-1; ncol:=0;
for j:=1 to m do begin
k:=0;
for i:=1 to n do
if A[i,j]=0 then k:=k+1; if k>max then
begin
max:=k; ncol:=j; end
end;
Поиск заданного значения в матрице
var x, ncol, nrow : integer; var find : Boolean;
find := false; ncol:=1; nrow:=1; while not find and (nrow<=n) do begin
find:= A[nrow,ncol]=x;
if not find then inc(ncol); if ncol>m then begin
ncol:=1;
inc(nrow);
end
end
if find then writeln(” row= ”,nrow,” col= ”,ncol)
else writeln(”нет равных x”);
Удаление строки с номером k
for i:=k to n-1 do for j:=1 to m do A[i,j]:=A[i+1,j];
n:=n-1;
Удаление столбца с номером k
for j:=k to m-1 do
for i:=1 to n do
A[i,j]:=A[i,j+1];
m:=m-1;
Добавление строки
for i:=n+1 downto k+1 do for j:=1 to m do A[i,j]:=A[i-1,j];
n:=n+1;
for j=1 to m do A[k,j]:= 0;
Добавление столбца
for j:=m+1 downto k+1 do for i:=1 to n do A[i,j]:=A[i,j-1];
m:=m+1;
for i:=1 to n do A[i,k]:=0;
![](/html/2706/209/html_XaP9l5Bfh_.2BJN/htmlconvd-d_WrPJ17x1.jpg)
Обработка части квадратной матрицы (n=m)
Главная диагональ (i=j)
Проверить, что на главной диагонали нет нулей
r:=1;
while r<=n and (A[r,r]<>0) do r:=r+1;
if r>n then writeln(”yes”)
else writeln(”no”);
![](/html/2706/209/html_XaP9l5Bfh_.2BJN/htmlconvd-d_WrPJ18x1.jpg)
Обработка части квадратной матрицы (n=m)
Элементы выше главной диагонали (i [1,n-1], j>i, j<=n)
Среднее арифметическое
k:=0;
sr:=0;
for row:=1 to n-1 do for col:=row+1 to n begin
sr:= sr+A[row,col]; k:=k+1
end;
sr:=sr/k;
![](/html/2706/209/html_XaP9l5Bfh_.2BJN/htmlconvd-d_WrPJ19x1.jpg)
Обработка части квадратной матрицы (n=m)
Элементы ниже главной диагонали (j [2,n], i<j, i>=1)
var find : Boolean;
find := false; j:=2; i:=1; while not find and (j<=n) do begin
find:= A[i,j]<>0;
if not find then inc(i); if i=j then begin
i:=1;
inc(j);
end
end
if find then writeln(” нет ”) else writeln(”да”);
![](/html/2706/209/html_XaP9l5Bfh_.2BJN/htmlconvd-d_WrPJ20x1.jpg)
Транспонировать квадратную матрицу
var r:integer;
for i:= 1 to n-1 do for j:=i+1 to n do begin
r:=A[i, j];
A[i, j]:=A[j, i]; A[j, i]:=r
end;