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

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

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

Типовые алгоритмы обработки двумерных массивов

Двумерные массивы

Двумерный массив – это таблица, содержащая информацию и состоящая из нескольких строк и столбцов. В математике аналогом является матрица.

Каждый элемент двумерного массива имеет тоже имя, что и весь массив и отличается от другого элемента номером строки и номером столбца, на пересечении которых он находится.

Номер строки и номер столбца называются индексами.

Индексы в двумерном массиве записываются в скобках через запятую. На первом месте стоит индекс строки, на втором месте – индекс столбца.

Например, В(I,J) –элемент двумерного массива с именем В, стоящий на пересечении I строки и J столбца.

Лекция 6 Информатика, часть 2

32

Ввод и вывод элементов двумерных массивов

Ввод элементов двумерного мссива X(N,M),

I=1,2,…,N, J=1,2,…,M

Шаг изменения I и J равен 1. Пусть N=2, M=3.

При I=1, изменения J=1,2,…,3 вводятся элементы массива Х(1,1), Х(1,2), Х(1,3)

При I=2, изменения J=1,2,…,3 вводятся элементы массива X(2,1), X(2,2), X(2,3)

N,M

I=1,N,1

J=1,M,1

Х(I,J)

АНАЛОГИЧНО

Вывод элементов двумерного массива У(N,M), I=1,…,N, J=1,2,…,M

Шаг изменения I и J равен 1.

При N= 3 и M=2 элементы массива Y(1,1), Y(1,2), Y(2,1), Y(2,2), Y(3,1),У(3,2)

I=1,N

I=1,N

Y(I,J)

Лекция 6 Информатика, часть 2

33

Алгоритм вычисления среднего значения элементов массива по строкам

Вычислить средние значения элементов

массива А(N,М) по строкам. Входные данные: N,M, A(N,M).

Выходные данные: S(N) – сумма элементов массива по строкам, SR(N) – средние значения по строкам.

Вспомогательные данные: I,J Математическая постановка задачи

S(I ) = åM A(I, J )

SR(I ) =

S(I)

 

M

j= 1

 

Задание начального значения суммы S(I)=0. Формула в цикле(сумма) S(I)=S(I)+А(I,J). Среднее SR(I)=S(I)/M

I=1,N,1

S(I)=0

А(1,1) А(1,2) А(1,3) S(1) SR(1) А(2,1) А(2,2) A(2,3) S(2) SR(2) А(3,1) А(3,2) А(3,3) S(3) SR(3) А(4,1) А(4,2) A(4,3) S(4) SR(4)

J=1,M,1

S(I)=S(I)+A(I,J) SR(I)=S(I)/M

Лекция 6 Информатика, часть 2

34

Алгоритм вычисления среднего значения элементов массива по столбцам

Вычислить средние значения элементов

массива А(N,М) по столбцам. Входные данные: N,M, A(N,M).

Выходные данные: S(M) – сумма элементов массива по строкам, SR(M) – средние значения по строкам.

Вспомогательные данные: I,J Математическая постановка задачи

S(J ) = å A(I, J )

SR(J ) = S(J )

N

 

 

 

 

 

 

i= 1

 

N

 

Задание начального значения суммы S(J)=0. Формула в цикле(сумма) S(J)=S(J)+А(I,J). Среднее SR(J)=S(J)/M

J=1,M,1

S(J)=0

А(1,1) А(1,2) А(1,3) А(2,1) А(2,2) A(2,3) А(3,1) А(3,2) А(3,3) А(4,1) А(4,2) A(4,3) S(1) S(2) S(3)

SR(1) SR(2) SR(3)

I=1,N,1

 

S(J)=S(J)+A(I,J)

SR(J)=S(J)/N

Лекция 6 Информатика, часть 2

35

Алгоритм транспонирования матрицы

Транспонирование матрицы . Замена

Формула в цикле

строк матрицы А(N,М) её столбцами, а

столбцов – строками.

B(J,I)=А(I,J)

Транспонированная матрица

 

В(M,N) = A(N,M)

J=1,M,1

Входные данные: N,M, A(N,M).

 

Выходные данные: B(M,N) –

I=1,N,1

Вспомогательные данные: I,J

Математическая постановка задачи

B(J,I)=A(I,J)

 

B(J, I) = A(I, J)

 

А(1,1)

А(1,2)

А(1,3)

 

B(1,1)

B(1,2)

А(2,1)

А(2,2)

A(2,3)

 

B(2,1)

B(2,2)

 

 

 

 

B(3,1)

B(3,2)

 

 

 

Лекция 6 Информатика, часть 2

36

Алгоритм произведения матрицы А(N,M) на вектор B(M)

Входные данные: N,M, A(N,M),

Задание начального

B(M)

 

 

значения переменной

Выходные данные: C(N) – вектор

C(I)=0.

результата.

 

Формула во внутреннем

 

цикле С(I)=C(I)+А(I,J)*B(J).

Вспомогательные данные: I,J

 

Математическая постановка

 

задачи

M

 

 

 

 

A(I, J)* B(J)

 

 

 

C(I) = å

I=1,N,1

 

 

 

 

 

 

j= 1

 

C(I)=0

А(1,1)

А(1,2)

А(1,3)

С(1)

 

А(2,1)

А(2,2)

A(2,3)

C(2)

J=1,M,1

А(3,1)

А(3,2)

А(3,3)

C(3)

C(I)=C(I)+A(I,J)*B(J)

B(1)

B(2)

B(3)

 

 

 

Лекция 6 Информатика, часть 2

37

Алгоритм преобразования матрицы в одномерный массив

Преобразовать массив А(N,М) в вектор

Х(N*M).

Входные данные: N,M, A(N,M).

Выходные данные: X(N*M) – вектор, в который последовательно переписаны строки массива А.

Вспомогательные данные: I,J Математическая постановка задачи

L = (I − 1) * M + J

X (L) = A(I , J )

Формулы в цикле: Вычисление значения индекса массива Х L=(I-1)*M+J

Запись элемента X(L)=A(I,J)

I=1,N,1

J=1,M,1

А(1,1)

А(1,2)

А(1,3)

N=2, M=3

L=(I-1)*M+J

 

А(2,1)

А(2,2)

A(2,3)

N*M=6

 

X(1) X(2) X(3) X(4) X(5) X(6)

X(L)=A(I,J)

 

I=2, J=1, M=3

 

 

 

L=(I-1)*M+J=(2-1)*3+1=4

 

X(4)=A(2,1)

 

Информатика, часть 2

38

Алгоритм нахождения максимального элемента в строках двумерного массива

Найти максимальные элементы в

строках массива В (N, M) с запоминанием максимального элемента и его индекса.

Входные данные: N, M, B(N,M).

Выходные данные: MAX(N) – массив максимальныx элементов, IMAX (N) –массив индексов максимальных элементов.

Вспомогательные данные: I,J Постановка задачи

В(I,1)

B(I,2)

B(I,3)

IMAX(I)

MAX(I)

10

20

10

2

20

1

10

20

1

25

2

30

25

2

30

Задание начальных значений

MAX(I)=B(I,1), IMAX(I)=1.

Формулы в цикле

МАХ(I)=B(I,J) и IMAX(I)=J ,

если МАХ(I)>B(I,J)

I=1,N

 

MAX(I)=B(I,1)

 

IMAX(I)= 1

 

J=1,M

 

Нет

IMAX(I)

MAX(I)>B(I,J)

Да

MAX(I)

 

MAX(I)=B(I,J)

 

IMAX(I)= J

 

Лекция 6 Информатика, часть 2

39

Алгоритм удаления строки из матрицы

Удаление К строки из матрицы

Формула в цикле

А(N,М).

A(I,J)=А(I+1,J)

Все строки, начиная с К+1

 

переместить вверх. Число строк

 

уменьшится на 1.

N=N-1

Входные данные: N,M, К, A(N,M).

Выходные данные: А(N-1,M)

 

Вспомогательные данные: I,J

I=K,N,1

Математическая постановка задачи

 

A(I, J ) =

A(I + 1, J )

J=1,M,1

100

100

100

K=3

 

 

A(I,J)=A(I+1,J)

1

200

200

1

100

100

300 300 300

2

200

200

 

1

400

400

3

400

400

 

100

100

100

100

100

100

 

Лекция 6 Информатика, часть 2

40