Лекция6(2) Типовые алгоритмы
.pdf
|
|
Алгоритм включения строки в |
|
|||||||
|
|
|
|
|
матрицу |
|
|
|
||
|
Включить строку Х(M) в матрицу А(N,М) как К |
Формулы в цикле: |
|
|||||||
|
тую строку. |
|
|
|
|
|
Сдвиг строк «хвоста» массива на |
|||
|
Входные данные: N, M, К, A(N,M), X(M). |
|
1: А(I+1,J)= A(I,J) |
|
||||||
|
Выходные данные: A(N+1,M) – массив, в |
|
|
|||||||
|
котором строки с 1 по К -1 остались |
|
|
Запись элементов X в строку |
||||||
|
прежними, К строка переписана из массива |
A(K,J)=X(J) |
|
|
||||||
|
Х(М), а строки , начиная с К+1 вновь из |
|
|
|
||||||
|
массива А. |
|
|
|
|
|
|
|
|
|
|
Вспомогательные данные: I,J |
|
|
|
|
|
|
|||
|
Постановка задачи |
|
|
|
Вставили в К-ую |
I=N,K,-1 |
|
|||
|
|
|
|
|
|
|
|
|
||
1 |
100 |
100 |
K=3 |
|
|
|
строку массив X |
J=1,M,1 |
|
|
|
|
|
|
|
|
|||||
200 200 200 |
500 500 500 |
|
|
|
A(I+1,J)=A(I,J) |
|
||||
1 |
300 |
300 |
1 |
100 |
100 |
|
|
|
|
|
|
|
|
|
|
||||||
400 400 400 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||
|
Переписали |
200 200 200 |
1 |
100 |
100 |
J=1,M,1 |
|
|||
|
1 |
300 300 |
|
|
|
|
||||
|
«Хвост» |
200 200 200 |
|
|
||||||
|
массива на |
300 300 300 |
A(K,J) =X(J) |
N=N+1 |
||||||
|
одну строку в |
400 400 400 |
|
|
|
|
|
|||
|
конец |
|
|
часть 2 |
|
41 |
||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
500 500 500 |
|
|
||
|
|
|
|
|
|
300 300 300 |
|
|
Алгоритм перестановки строк в матрице
Перестановка L и K строк в матрице А(N,M)
осуществляется с использованием вспомогательной переменной Р:
–В Р записывается J-й элемент L строки,
–в J элемент L строки записывается J элемент K строки,
–в J-й элемент K строки записывается элемент из переменной Р .
Входные данные: N, M, A(N,M).
Выходные данные: А(N,M) – c переставленными строками.
Вспомогательные данные: I , J, Р, К.
РЕЗУЛЬТАТ |
P |
|
110 10 10
40 40 40 40
130 30 30
20 20 20 20
50 50 50 50 |
Лекция 6 Информатика, часть 2 |
L=2, K=4
J=1, M
P=A(L,J)
A(L,J)=A(K,J)
A(K,J)=P
|
L=2,K=4 |
|
|
1 |
10 |
10 |
10 |
2 |
20 20 |
20 |
330 30 30
40 40 40
50 50 50 50
42
Алгоритм умножения двух матриц
(количество столбцов первой матрицы должно совпадать с количеством строк второй матрицы)
Умножить матрицы А(N,K) и B(K,M)
Входные данные: N,M, К, A(N,K), B(K,M)
Выходные данные: C(N,M) – матрица результата.
Вспомогательные данные: I,J Математическая постановка задачи
C(I, J) = åK A(I, L)* B(L, J )
|
l= 1 |
|
|
|
|
|
|
|
|
|
|
|
|
N=3 |
K=2 |
|
|
|
|
|
|
K=2 |
M=4 |
|
|
||
А(1,1) |
А(1,2) |
|
|
|
||
|
B(1,1) |
B(1,2) |
B(1,3) |
B(1,4) |
||
А(2,1) |
А(2,2) |
|
||||
|
B(2,1) |
B(2,2) |
B(2,3) |
B(2,4) |
||
А(3,1) |
А(3,2) |
|
||||
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
I=1,N,1
J=1,M,1
C(I,J)=0
L=1,K,1 |
C(I,J)=C(I,J)+A(I,L)*B(L,J) |
N=3 |
M=4 |
|
|
C(1,1)=A(1,1)*B(1,1)+ A(1,2)*B(2,1) |
C(1,1) |
C(1,2) |
C(1,3) |
C(1,4) |
C(1,2)=A(1,1)*B(1,2)+ A(1,2)*B(2,2) |
C(2,1) |
C(2,2) |
C(2,3) |
C(2,4) |
C(1,3)=A(1,1)*B(1,3)+ A(1,2)*B(2,3) |
C(3,1) |
C(3,2) |
C(3,3) |
C(3,4) |
C(1,4)=A(1,1)*B(1,4)+ A(1,2)*B(2,4) |
Выводы
В данной лекции рассмотрены вопросы:
запоминания результатов и информационных массивов;
блок-схемы типовых алгоритмов: итерационный циклический алгоритм.
алгоритмы обработки одномерных массивов . алгоритмы обработки двумерных массивов.
Лекция 6 Информатика, часть 2 |
44 |