ВУЗ:
Составители:
Рубрика:
17
{Транспонирование квадратной матрицы}
For i:=1 to n–1 do
For j:=i+1 to n do begin
C:= A[ i, j ];
A[ i, j ]:= A[ j, i ];
A[ j, i ]:=C end;
{Печать транспонированной матрицы}
For i:=1 to n do begin
For j:=1 to n do write(A[ i, j ]:3:0);
writeln; {Перевод курсора перед новой
строкой}
end;
End.
Пример 8 Транспонирование прямоугольной
матрицы
Требуется транспонировать матрицу А
размером n×m. Для реализации программы
воспользуемся вспомогательной матрицей
размером m×n.
Программа 8
Var i, j, n, m: byte;
A: array[1 . . 20, 1 . . 10] of real;
B: array[1 . . 10, 1 . . 20] of real;
Begin writeln('Введите размер матрицы n, m');
readln(n,m);
{Ввод исходной матрицы}
For i:=1 to n do
For j:=1 to m do Read(A[ i, j ]);
{Транспонирование матрицы}
For i:=1 to n do
For j:=1 to m do B[ j, i ]:= A[ i, j ]
НАЧАЛО
КОНЕЦ
B[ j, i]:= A[ i, j];
Печать
Ввод n, m
i:=1, n
j:=1, m
Печать
Ввод A[ i, j]
i:=1, n
j:=1, m
i:=1, n
j:=1, m
Печать
Вывод B[ i, j]
Р
исунок 10. Блок-схема
программы №8
18
{Печать транспонированной матрицы}
For i:=1 to m do begin
For j:=1 to n do write(B[ i, j ]:3:0);
writeln; end;
End.
Пример 9 Умножение матрицы на скаляр
Требуется увеличить все элементы
матрицы А размером n×m в k раз. В начале
задаем размеры матрицы n×m, а затем
запрашиваем число, в которое элементы
матрицы должны быть увеличены.
Реализуйте данный пример в
центральном блоке программы.
C
[]
i, j : = A
[]
i, j * K,
где i = 1, … n; j = 1, … m.
Пример 10 Умножение матрицы на вектор
Требуется умножить матрицу А
размером n×m на вектор. Чтобы умножить
матрицу на вектор надо рассматривать вектор
как вектор-столбец. В начале задаем размеры матрицы n×m, а затем
запрашиваем вектор В размером m×1, на который матрица должн
ы быть
умножена. В итоге получаем вектор-столбец С размером n×1.
A =
⎝
⎜
⎜
⎛
⎠
⎟
⎟
⎞
12–1 2
30 4 –2
23 3 5
B =
⎝
⎜
⎜
⎛
⎠
⎟
⎟
⎞
–1
2
1
3
C =
⎝
⎜
⎜
⎛
⎠
⎟
⎟
⎞
8
–5
22
НАЧАЛО
КОНЕЦ
A[ i, j]:= A[ i, j]*k;
Печать
Ввод k, n ,m
i:=1, n
j:=1, m
Ввод
матрицы
Печать
матрицы
Р
исунок 11. Блок-
схема примера №9
НАЧАЛО {Транспонирование квадратной матрицы} {Печать транспонированной матрицы} Печать For i:=1 to n1 do For i:=1 to m do begin Ввод n, m For j:=i+1 to n do begin For j:=1 to n do write(B[ i, j ]:3:0); i:=1, n C:= A[ i, j ]; writeln; end; A[ i, j ]:= A[ j, i ]; End. j:=1, m A[ j, i ]:=C end; Пример 9 Умножение матрицы на скаляр {Печать транспонированной матрицы} Печать Требуется увеличить все элементы For i:=1 to n do begin НАЧАЛО Ввод A[ i, j] For j:=1 to n do write(A[ i, j ]:3:0); Печать матрицы А размером n×m в k раз. В начале Ввод k, n ,m writeln; {Перевод курсора перед новой задаем размеры матрицы n×m, а затем i:=1, n строкой} Ввод матрицы запрашиваем число, в которое элементы end; матрицы должны быть увеличены. j:=1, m End. i:=1, n Пример 8 Транспонирование прямоугольной Реализуйте данный пример в B[ j, i]:= A[ i, j]; матрицы j:=1, m центральном блоке программы. Требуется транспонировать матрицу А A[ i, j]:= A[ i, j]*k; C[ i, j ] : = A[ i, j ] * K, i:=1, n размером n×m. Для реализации программы воспользуемся вспомогательной матрицей где i = 1, n; j = 1, m. размером m×n. Печать j:=1, m матрицы Программа 8 Пример 10 Умножение матрицы на вектор КОНЕЦ Печать Var i, j, n, m: byte; Вывод B[ i, j] A: array[1 . . 20, 1 . . 10] of real; Рисунок 11. Блок- Требуется умножить матрицу А B: array[1 . . 10, 1 . . 20] of real; схема примера №9 размером n×m на вектор. Чтобы умножить КОНЕЦ Begin writeln('Введите размер матрицы n, m'); матрицу на вектор надо рассматривать вектор readln(n,m); как вектор-столбец. В начале задаем размеры матрицы n×m, а затем запрашиваем вектор В размером m×1, на который матрица должны быть Рисунок 10. Блок-схема {Ввод исходной матрицы} умножена. В итоге получаем вектор-столбец С размером n×1. программы №8 For i:=1 to n do 1 For j:=1 to m do Read(A[ i, j ]); ⎛ 1 2 1 2 ⎞ ⎛ ⎞ ⎛ 8 ⎞ {Транспонирование матрицы} A = ⎜ 3 0 4 2 ⎟ B= ⎜ 2 ⎟ C = ⎜ 5 ⎟ For i:=1 to n do ⎜ ⎝2 3 3 5 ⎠ ⎟ ⎜ 1 ⎟ ⎜ ⎟ ⎝ 22 ⎠ For j:=1 to m do B[ j, i ]:= A[ i, j ] ⎝ 3 ⎠ 17 18
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »