ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
