|
Массивы
Рассмотренные выше простые
типы данных позволяют использовать в программе одиночные
объекты - числа, символы, строки и т.п. В Турбо Паскале
могут использоваться также объекты, содержащие множество
однотипных элементов. Это массивы -формальное объединение
нескольких однотипных объектов (чисел, символов, строк
и т.п.), рассматриваемое как единое целое. К необходимости
применения массивов мы приходим всякий раз, когда требуется
связать и использовать целый ряд родственных величин.
Например, результаты многократных замеров температуры
воздуха в течение года удобно рассматривать как совокупность
вещественных чисел, объединенных в один сложный объект
- массив измерений.
При описании массива необходимо
указать общее число входящих в массив элементов и тип
этих элементов. Например:
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 (МАХ- параметр обращения).
|