Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Удаление строки матрицы.

Двумерные массивы. Умножение матрицы на вектор.

 

Для вычисления произведения С матрицы А размером n*m на вектор B размером m необходимо вычислить , i=1, …., n. .

Использование вспомогательной переменной s позволяет уменьшить время выполнения программы за счет исключения обращения в цикле по j к элементам массива C.


Program PROIZV_1;

Const n=6;

m=9;

Var i, j, s: integer;

a: array [1..n, 1..m] of integer;

b: array [1..m] of integer;

c: array [1..n] of integer;

Begin

randomize;

writeln (‘Сформирована матрица A’);

for i: =1 to n do

Begin

for j: =1 to m do

Begin

a[ i, j ]: = random (101)-50;

write (a[ i, j ]: 6);

end;

writeln (‘’);

end;

writeln (‘Сформирован вектор B’);

for j: =1 to m do

Begin

b[ j ]: = random (51)-30;

write (b[ j ]: 6);

end;

for i: =1 to n do

Begin

s: =0;

for j: =1 to m do

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

c[ i ]: =s;

end;

writeln (‘Получен вектор C ’);

for i: =1 to n do

write (c[ i ]: 6);

Readln;

End.


 

Для умножения матрицы А размером n*k на матрицу B размером k*m необходимо вычислить , i=1, …, n; j=1, …, m.


Program PROIZV_1;

Cons t n=3;

m=4;

k=5;

Var i, j, s: integer;

a: array [1..n, 1..k] of integer;

b: array [1..k, 1..m] of integer;

c: array [1..n, 1..m] of integer;

Begin

randomize;

writeln (‘Сформирована матрица A’);

for i: =1 to n do

Begin

for j: =1 to k do

Begin

a[ i, j ]: = random (101)-50;

writ e (a[ i, j ]: 6);

end;

writeln;

end;

writeln (‘Сформирована матрица B’);

for i: =1 to k do

Begin

for j: =1 to m do

Begin

b[ i, j ]: = random (351)-85;

write (a[ i, j ]: 6);

end;

writeln (‘’);

end;

for i: =1 to n do

for j: =1 to m do

Begin

s: =0;

for l: =1 to k do

s: =s+a[ i, l ]*b[ l, j ];

c[ i, j ]: =s;

end;

writeln (‘Сформирована матрица С’);

for i: =1 to n do

Begin

for j: =1 to m do

write (c[ i, j ]: 6);

writeln;

end;

Readln;

End.


Удаление строки матрицы.

 

Алгоритм удаления строки является сходным с алгоритмом удаление элементов одномерного массива, за тем исключением, что операция переноса элементов выполняется для каждого столбца при переборе строк. Рассмотрим программу удаления из матрицы А заданной с клавиатуры строки T.

 


Program UDALENIE;

Const n=10;

m=5;

Var i, j, t, n: integer;

a: array [1..n, 1..m] of integer;

Begin

randomize;

writeln (‘Сформирована матрица A’);

for i: =1 to n do

Begin

for j: =1 to m do

Begin

a[ i, j ]: = random (101)-50;

write (a[ i, j ]: 6);

end;

writeln;

end;

writeln (‘Введите номер строки для удаления’);

readln (t);

k: =n-1;

for i: =t to k do

for j: =1 to m do

a[ i, j ]=a[ i+1, j ];

writeln (‘Получена матрица ‘);

for i: =1 to k do

Begin

for j: =1 to m do

write (a[ i, j ]);

writeln;

end;

Readln;

End.


 

<== предыдущая лекция | следующая лекция ==>
Транспонирование матриц. | Л.Н. Гумилев атындағы ЕҰУ
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.011 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал