Иллюстрированный самоучитель по Turbo Pascal

Массивы

Рассмотренные выше простые типы данных позволяют использовать в программе одиночные объекты – числа, символы, строки и т.п. В Турбо Паскале могут использоваться также объекты, содержащие множество однотипных элементов. Это массивы – формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект – массив измерений.

При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:

var
а: array [1..10] of Real;
b: array [0..50] of Char;
с: array [-3..4] of Boolean;

Как видим, при описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон (подробнее см. в гл.4) задается левой и правой границами изменения индекса массива, так что массив А состоит из 10 элементов, массив В – из 51, а массив С – из 8 элементов. За словом OF указывается тип элементов, образующих массив.

Доступ к каждому элементу массива в программе осуществляется с помощью индекса – целого числа (точнее, выражения порядкового типа, см. гл.4), служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером). При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках, например:

var
a: array [1..10] of Integer;
b: array [0..40] of Char;
c: array [-2..2] of Boolean;
k: Integer; begin
b[17]: = 'F1;
c[-2]: = a[l] > [2];
for k: = 1 to 10 do a[k]: = 0;
…
end.

В правильно составленной программе индекс не должен выходить за пределы, определенные типом-диапазоном. Например, можно использовать элементы А[1], В[38], С[0], но нельзя A[0] или С[38] (определение массивов см. выше). Турбо Паскаль может контролировать использование индексов в программе на этапе компиляции и на этапе счета программы.

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

Пример 2.9.

Program Average;
{Программа создает массив из N случайных целых чисел, равномерно распределенных
в диапазоне от 0 до MAX_VALUE-1, подсчитывает среднее арифметическое этих чисел,
а также минимальное и максимальное из них.}
const
N = 1000;
MAX_VALUE = 100+1; {Диапазон значений случайных чисел}
var
m: array [1..N] of Integer; {Массив чисел}
i: Integer; {Индекс массива}
max, min: Integer; {Максимальное и минимальное число}
s: Real; {Сумма чисел}
begin
{Наполняем массив случайными числами:}
for i: = 1 to N do
m[i]: = random(MAX_VALUE); {Задаем начальные значения переменных:}
s: = 0;
max: = m [ 1 ];
min: = m [ 1 ];
{Цикл вычисления суммы всех случайных чисел и поиска минимального и максимального:}
for i: = 1 to N do
begin
s: = s + m [ i ];
if m[i] < min then
min: = m[i]
else if m[i] > max then
max: = m[i]
end;
{Вычисляем среднее значение и печатаем результат:}
WriteLn('MMH = ',min,' Макс = ', max, ' Среднее = ',s/N)
end.

Для создания массива используется встроенная функция RANDOM (MAX), которая возвращает случайное целое число, равномерно распределенное в диапазоне от 0 до МАХ-1 (МАХ – параметр обращения).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.