Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Удаление строки матрицы.
Двумерные массивы. Умножение матрицы на вектор.
Для вычисления произведения С матрицы А размером 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.
|