Лабораторная работа № 9.

Обработка двумерных числовых массивов.

При выполнении работы необходимо знать:

  • Знать и уметь строить алгоритмы циклической структуры для обработки двумерных массивов.
  • Знать операторы цикла (смотри лаб. работу № 5).
  • Знать принципы и приемы обработки двумерных числовых массивов с использованием операторов цикла.
  • Уметь составить схему программы (алгоритм) циклической структуры для обработки двумерного числового массива и записать программу по готовому алгоритму.

 

Теоретический минимум:

Переменные-массивы являются переменными сложного (структурированного) типа и представляют собой организованную группу элементов одного типа (линейную или прямоугольную таблицу).

Массив- это упорядоченная совокупность однотипных данных, имеющая одно общее имя.

Объявление массива. Перед началом работы с массивом необходимо объявить его, а также зарезервировать место в памяти под соответствующие количество элементов.

 

Объявление двумерного массива в программе:

TypeMas = array [1..5, 1..6] of integer; { объявляем тип массив из 5 строк и 6 столбцов }

{ содержащий элементы целого типа }

VarA, B : Mas; { переменные A, B типа двумерный массив }

 


Массивы можно объявить и так:

VarA, B : array [1..5, 1..6] of integer;

{ переменные A, B типа массив из 5 строк и 6 столбцов }

 

Первый способ объявления предпочтительнее.

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

Приведем пример организации ввода двумерного массива целых чисел А [5, 6]. Нулевую строку и нулевой столбец использовать не будем, хотя это допускается.

 

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

For i:=1 to 5 do begin

For j:=1 to 6 do begin

Writeln(‘Введите значение A [’, i, ‘,’, j ,’]:’);

Readln(A[i, j]);

End;

End;

При запуске на выполнение необходимо поочередно ввести 30 элементов массива (долго, не всегда удобно).


Ввод элементов двумерного массива случайным образом:

Randomize;

For i:=1 to 5 do begin

For j:=1 to 6 do begin

A[i, j]:=random(200)-100;

End;

End;

При запуске программы на выполнение элементы массива получат случайные значения при помощи генератора случайных чисел Random в интервале [-100; 100[.

Вывод двумерного массива на экран. Осуществляется также при помощи двойного вложенного цикла: необходимо организовать цикл по строкам и цикл по столбцам. Чтобы массив выводился в виде прямоугольной таблицы, необходимо осуществлять вывод элементов через пробел, а затем перевести строку после того, как выведены элементы одной строки. С этой целью между операторами End; завершающими вложенные циклы, ставится пустой оператор Writeln; для перевода строки.

 

Вывод значений элементов двумерного массива на экран:

ClrScr; { очищение экрана }

For i:=1 to 5do begin

For j:=1 to 6 do begin

Write(A[i, j] :5);

End;

Writeln;

End;

Обработка двумерных массивов может вестись либо в горизонтальном направлении (по строкам), либо в вертикальном направлении (по столбцам). Если обработка массива ведется по строкам, то внешний (первый) цикл будет по строкам. Если обработка массива ведется по столбцам, то внешний (первый) цикл будет по столбцам.

Естественным направлением просмотра двумерного массива обычно считается горизонтальное. Но если требуется подсчитать какие–либо величины в каждом столбце, то направление просмотра будет вертикальное.