ЗАДАЧА. Вычислить количество положительных элементов квадратной матрицы, расположенных по ее периметру и на диагоналях. Напомним, что в квадратной матрице число строк равно числу столбцов.
Для i=1,n
Ai,i – элемент главной диагонали.
Аi,n-i+1 – элемент побочной диагонали.
Элементы, находящиеся по периметру матрицы:
А1,i – первая строка,
АN,i – последняя строка,
Аi,1 – первый столбец,
Аi,N – последний столбец.
k:=0;
for i:=1 to n do
begin
if (a[i,i]>0) then
k:=k+1;
if a[i,n-i+1]>0 then
k:=k+1;
end;
for i:=2 to n-1 do
begin
if (a[1,i]>0) then
k:=k+1;
if (a[n,i]>0) then
k:=k+1;
if (a[i,1]>0) then
k:=k+1;
if (a[i,n]>0) then
k:=k+1;
end;
if (n mod 2 <>0) and
(a[(n div 2)+1,(n div 2)+1]>0)
then k:=k-1;
MessageDlg('K='+IntToStr(K),
MtInformation,[mbOk],0);
ЗАДАЧА. Преобразовать исходную матрицу так, чтобы первый элемент каждой строки был заменен средним арифметическим элементов этой строки.
procedure
TForm1.BitBtn1Click(Sender: TObject);
type
matrica=array[1..20,1..20] of real;
const
n=4;m=4;
var
a:matrica;
i,j: integer; s: real;
begin
for i:=1 to n do
for j:=1 to m do
A[i,j]:=StrToInt(
StringGrid1.Cells[i,j]);
for i:=1 to n do
begin
S:=0;
for j:=1 to m do
S:=S+ a[i,j];
a[i,1]:=S;
end;
//Вывод измененной матрицы.
for i:=1 to n do
for j:=1 to m do
StringGrid1.Cells[i,j]:=
FloatToStr(a[i,j]);
end;
ЗАДАЧА. Задана матрица A(n,m). Сформировать вектор P(m), в который записать номера строк максимальных элементов каждого столбца.
procedure TForm1.Button1Click(Sender: TObject);
type
massiv=array [1..15] of byte;
matr=array [1..15,1..15] of real;
const
n=4;m=4;
var
i,j: byte;
n_max: byte;
max: real;
a: matr;
p: massiv;
begin
for i:=1 to n do
for j:=1 to m do
A[i,j]:=StrToInt(
StringGrid1.Cells[i,j]);
for j:=1 to m do
begin
max:= a[1,j];
n_max:=1;
for i:=2 to m do
if a[i,j] > max then
begin
max:=a[i,j];
n_max:=i;
end;
p[j]:=n_max;
end;
for j:=1 to m do
StringGrid2.Cells[0,j]:=
FloatToStr(p[j]);
end;
ЗАДАЧА. Написать программу умножения двух матриц A(n,m) и B(m,L).
Например, необходимо перемножить две матрицы
.
Воспользовавшись правилом «строка на столбец», получим матрицу:
В общем виде формула для нахождения элемента Cij матрицы имеет вид:
,
где i = 1,N и j = 1,L.
Проводить операцию умножения можно только в том случае, если количество строк левой матрицы совпадает с количеством столбцов правой. Кроме того, A ´ B ¹ B ´ A.