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

Занятие 8. Массивы

Для решения многих задач приходится работать с однотипными данными, причем обработка этих данных часто выполняется по одному и тому же закону. Например, дана тысяча вещественных чисел, каждое число требуется увеличить на 2. Если решать эту задачу традиционным способом, следует описать 1000 переменных, назначить им начальные значения, это 1000 операторов, затем каждую переменную увеличить на 2, это еще 1000 операторов. Для более компактного описания подобного алгоритма можно использовать массивы.

Одномерные массивы

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

Перед использованием массив необходимо описать. Массивы, как и переменные, описываются в разделе описаний процедуры или программы. При описании массива указывается его имя, диапазон изменения индекса, тип элемента.

Синтаксис описания массива:

<ИмяМассива> : array[<ДиапазонИндекса>] of <тип>;

Ключевое слово array позволяет описать массив.

Ключевое слово of – используется для задания типа элемента массива.

При задании типа массива можно использовать любой тип Pascal.

Например, для решения задачи, приведенной выше, следует описать такой массив:

Var

Mas : array[1..1000] of real;

Диапазон изменения индекса массива задается двумя числами, первое задает начальное значение индекса массива, второе задает конечное значение индекса массива.

Этот массив можно описать также таким образом:

Const

N=1000

Var

Mas : array[1..N] of real;

Последний способ хорош тем, что при изменении размера массива нужно изменить только одну константу N.

Для доступа к элементу массива используется следующий синтаксис:

<Имя массива>[ИндексЭлемента ]:=<Значение>;

Например:

Mas[30]:=25;

Где 30-тому элементу массива присваивается значение 25.

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

Const

N=10;

Var

Mas : array[1..N] of real;

i:integer;

str:string;

Begin

Str:=’’;

For i:=1 to N do

Begin

Mas[i]:= random(200) + random;

Mas[i]:= Mas[i] + 2;

Str:=Str + FloatToStr(Mas[i]) + ‘ ‘;

End;

ShowMessage(str);

End;

Наряду с одномерными массивами часто используются двумерные массивы.

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

Данные могут быть организованы в виде таблицы (матрицы), где расположение каждого элемента матрицы определяется номером строки и столбца. Например, место в зрительном зале задается указанием номера ряда и номера места в ряду. Такие данные удобно описывать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс – это номер строки, второй – номер столбца, где расположен элемент массива.

Размер двумерного массива задается парой чисел, первое задает число строк в массиве, второе число столбцов. Например, описать двумерный массив, размером 5 строк и 4 столбца:

Var

Table : array[1..5,1..4] of integer;

Элемент Table[3,2] расположен в третьей строке и втором столбце.

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