Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция6(2) Типовые алгоритмы

.pdf
Скачиваний:
20
Добавлен:
03.06.2015
Размер:
253.33 Кб
Скачать

 

 

Алгоритм включения строки в

 

 

 

 

 

 

матрицу

 

 

 

 

Включить строку Х(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