Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Алгоритмы и программы




Некоторые свойства матриц:

ЗАДАЧА. Найти сумму элементов матрицы, лежащих выше главной диагонали. В матрице n строк и m столбцов.

 

 

 

s:=0;

for i:=1 to n do

for j:=1 to m do

if j>i then

s:=s+a[i,j];

MessageDlg('S='

+FloatToStrF(s,ffFixed,5,3),MtInformation,[mbOk],0);

 

Еще один вариант решения задачи

 

s:=0;

for i:=1 to n do

for j:=i+1 to m do

s:=s+a[i,j];

ЗАДАЧА. Вычислить количество положительных элементов квадратной матрицы, расположенных по ее периметру и на диагоналях. Напомним, что в квадратной матрице число строк равно числу столбцов.

Для 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.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных