Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf11.doc
Скачиваний:
0
Добавлен:
10.12.2019
Размер:
73.73 Кб
Скачать

ДВУМЕРНЫЕ МАССИВЫ

Двумерные массивы условно можно изобразить в виде таблицы ( матрицы) . С информацией, представленной в виде таблицы, мы очень часто встречаемся в различных областях знаний – экономике, статистике, математике, физике, химии и т.д.

Каждый элемент таблицы имеет два индекса, значения которых позволяют указать местоположение элемента (его координаты). В математике квадратные и прямоугольные таблицы называют матрицами. Первый индекс – это номер строки, который изменяется только с переходом на следующую строку; второй индекс – номер столбца. По таблицу, имеющую m строк и n столбцов, говорят, что она имеет размер m*n.

А[1,1]

А[1,2]

А[1,3]

А[1,4]

А[1,5]

А[1,6]

А[2,1]

А[2,2]

А[2,3]

А[2,4]

А[2,5]

А[2,6]

А[3,1]

А[3,2]

А[3,3]

А[3,4]

А[3,5]

А[3,6]

При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенные циклы.

Перемещение по строке:

FOR i:=1 to m DO внешний цикл, изменяется номер строки

FOR j:=1 to n DO внутренний цикл, изменяется номер столбца

Перемещение по столбцу:

FOR j:=1 to n DO внешний цикл, изменяется номер столбца

FOR i:=1 to m DO внутренний цикл, изменяется номер строки

Описание двумерного массива Рассмотрим описание массива на конкретном примере

Переменная А является двумерным массивом, имеющим 3 строки и 4 столбца

1

3

-6

7

8

-5

3

12

2

-7

8

10

В разделе переменных на языке Паскаль массив описывается следующим образом:

Var

A: array [1..3,1..4] of integer;

{все элементы массива в данном случае являются целыми числами}

ОСНОВНЫЕ АЛГОРИТМЫ ДЛЯ РАБОТЫ С ДВУМЕРНЫМИ МАССИВАМИ

  1. Заполнение двумерного массива.

Массив А содержит 3 строки и 4 столбца, т.е. 3*4=12 элементов.

Заполнение по строке:

FOR i:=1 to 3 DO внешний цикл, изменяется номер строки

FOR j:=1 to 4 DO внутренний цикл, изменяется номер столбца

Read (A[i,j]); заполнение с клавиатуры

Заполнение по столбцу:

FOR j:=1 to 4 DO внешний цикл, изменяется номер столбца

FOR i:=1 to 3 DO внутренний цикл, изменяется номер строки

Read (A[i,j]); заполнение с клавиатуры

  1. Печать в виде таблицы.

FOR i:=1 to 3 DO

begin

FOR j:=1 to 4 DO

WRITE(A[i,j],’ ‘);  печатаем элементы строки,

не перемещая курсор

WRITELN; перемещаем курсор

End;

  1. Сумма элементов массива.

S:=0;

FOR i:=1 to 3 DO

FOR j:=1 to 4 DO

S:=S+A[i,j];

  1. Вычисление суммы элементов каждой строки и каждого столбца.

Мы используем базовый алгоритм вычисления суммы элементов одномерного массива (у нас это будут строки) и повторим его столько раз, сколько имеется строк.

FOR i:=1 to 3 DO

begin

S:=0;

FOR j:=1 to 4 DO

S:=S+A[i,j];

WRITELN(‘сумма ‘,i,’ – строки=‘, S);

End;

Для того, чтобы перемещаться по строке мы меняем индекс j.

Сумма каждого столбца находится аналогично.

  1. Максимальный (минимальный) элемент массива.

Построим алгоритм поиска максимального элемента таким образом: введем три дополнительные переменные с именами max и Imax_m, Imax_n. Присвоим им начальные значения – переменной max значение первого элемента массива A[1,1], Imax_m - номер первой строки, Imax_n - номер первого столбца. Затем сравниваем каждый элемент с переменной max, если его значение оказывается больше, то присваиваем его переменной max, переменной Imax_m присваиваем индекс строки этого элемента и переменной Imax_n присваиваем индекс столбца этого элемента.

Max:=[1,1];

Imax_m:=1;

Imax_n:=1;

FOR i:=1 to 3 DO

FOR j:=1 to 4 DO

If A[i,j]>Max then begin Max:=A[i,j]; Imax_m:=i;

Imax_n:=j; end;

WRITELN(‘Max =‘, Max,’ строка=’,Imax_m,’ столбец=’,Imax_n);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]