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


Создаём одномерный массив в Delphi

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

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

В общем иногда для понимания лучше рассмотреть ряд примеров, чем разбираться в дебрях теории. Рассмотрим рисунок ниже…

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

Здесь представлен одномерный массив — a, переменных типа Integer, где в каждой конкретной коробочке (переменной) содержится соответствующее значение, в первой -10, во второй 20в третьей 30 и т.д. Значениями этими можно оперировать, изменять, сравнивать, проводить над ними арифметические операции и прочее… Допустим нам нужно сложить содержимое первой и четвертой коробок, а результат поместить в третью. Для этого обращаемся к их содержимому через индексы, итак наше сложение будет выглядеть, следующим образом:

a[3]:=a[1]+a[4];

Рассмотрим теперь основные правила работы с массивами данных. Для начала нам нужно объявить то, что мы имеем дело с массивом переменных.

Делается это соответствующей записью в разделе type или чаще всего в разделе var:

Здесь a: — наша переменная, array и of — специальные зарезервированные слова, array — в переводе на русский означает -«массив» и указывает на то что, объявляется массив данных, of — указывает на принадлежность массива к данным определенного типа, после него обычно указывается тип помещенных в него данных, в нашем случае это Integer, хотя можно указывать и String и Char и другие типы данных. А цифры через две точки друг от друга в квадратных скобках  [1..5]  означают размер массива — количество переменных или констант содержащих данные, в нашем случае указан размер от 1 до 5 ти. А вообще нумерация массивов может начинаться с нуля.

Итак мы научились объявлять массивы, попробуем теперь поработать с содержащимися в них данными. Давайте напишем такую программу, чтобы пользователь вводя в Edit номера с 1 по 12, по нажатию кнопки получал в Label, название месяца, соответствующего введенному числу.

Для этого:

1) Помещаем на форму компоненты Label Edit и Button;

2) Очищаем свойство Caption у Label и свойство Text у Edit, а в свойстве Caption у Button пишем слово: — Рассчитать

3) В разделе var листинга, объявляем переменные и массив:

4) Cоздаем собственную функцию, и назовем ее number, для этого в разделе private листинга пишем:

5) B разделе между begin и end сгенерированного программой кода для функции function TForm1.number: Integer; записываем:

Эта функция, когда мы ее вызовем присвоит переменной b значение от 1-12 введенное пользователем.

6) Создаем обработчик событий OnClick на кнопке и записываем следующий код:

7) Запускаем проект, и если вы выполнили в точности все, как предлагается в статье, то после ввода целого числа от 1-12, по нажатию кнопки, Label будет отображать название месяца соответствующее введенному числу.

Но это еще не все. В этом примере да и вообще, массивы можно объявлять не только как переменные, но и как константы, в таком случае синтаксис объявления массива будет немного отличаться. Возьмем наш последний пример и представим массив для хранения названий месяцев — константами.

Делается это так:

После описания размерности и типа, ставим знак равенства и в скобках по порядку перечисляем значения для массива. И вот здесь нужно быть крайне внимательным, поскольку количество указанное в размерности  [1..12] строго должно быть равно количеству присваиваемых значений. Если это условие не выполнится, то выскочит ошибка.