Массив это, очень интересный и полезный способ организации однотипных данных в программе. Так, если мы оперируем некоторым количеством однотипных переменных, их иногда бывает очень удобно представить в виде массива данных, помещенных в одну единственную переменную. В этом плане массив подобен русской матрешке, только каждая однотипная матрешка находящаяся внутри, называется элементом массива и имеет собственный числовой индекс. По этому индексу ее можно легко найти, отличить от других, поместить в нее или наоборот извлечь какие либо данные. В общем иногда для понимания лучше рассмотреть ряд примеров, чем разбираться в дебрях теории. Рассмотрим рисунок ниже...
Здесть представлен одномерный массив - a, переменных типа Integer, где в каждой конкретной коробочке (переменной) содержится соответствующее значение, в первой -10, во второй 20, в третьей 30 и т.д. Значениями этими можно оперировать, изменять, сравнивать, проводить над ними арифметические операции и прочее... Допустим нам нужно сложить содержимое первой и четвертой коробок, а результат поместить в третью. Для этого обращаемся к их содержимому через индексы, итак наше сложение будет выглядеть, следующим образом: a[3]:=a[1]+a[4]; Здесь я думаю все понятно.
Рассмотрим теперь основные правила работы с массивами данных. Для начала нам нужно объявить то, что мы имеем дело с массивом переменных. Делается это соответствующей записью в разделе type или чаще всего в разделе var. Итак, объявим наконец наш красочный массивчик: var a: array[1..5] of Integer; Здесь 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 листинга, объявляем переменные и массив:
b: Integer; a: array [1..12] of string;
4) Cоздаем собственную функцию, и назовем ее number, для этого в разделе private листинга пишем: function number:Integer; и нажимаем клавиши Ctrl+Shift+C;
5) B разделе между begin и end сгенерированного программой кода для функции function TForm1.number: Integer; записываем:
If Edit1.Text = IntToStr(1) then b:=1; If Edit1.Text = IntToStr(2) then b:=2; If Edit1.Text = IntToStr(3) then b:=3; If Edit1.Text = IntToStr(4) then b:=4; If Edit1.Text = IntToStr(5) then b:=5; If Edit1.Text = IntToStr(6) then b:=6; If Edit1.Text = IntToStr(7) then b:=7; If Edit1.Text = IntToStr(8) then b:=8; If Edit1.Text = IntToStr(9) then b:=9; If Edit1.Text = IntToStr(10) then b:=10; If Edit1.Text = IntToStr(11) then b:=11; If Edit1.Text = IntToStr(12) then b:=12;
Эта функция, когда мы ее вызовем присвоит переменной b значение от 1-12 введенное пользователем.
6) Создаем обработчик событий OnClick на кнопке и записываем следующий код: begin a[1]:= 'Январь'; // Присваиваем массиву названия месяцев; a[2]:= 'Февраль'; a[3]:= 'Март'; a[4]:= 'Апрель'; a[5]:= 'Май'; a[6]:= 'Июнь'; a[7]:= 'Июль'; a[8]:= 'Август'; a[9]:= 'Сентябрь'; a[10]:='Октябрь'; a[11]:='Ноябрь'; a[12]:='Декабрь';
number; //Вызываем нашу функцию, то есть переменную b, c уже присвоенным пользователем значением; label1.Caption:=a[b]; //И подставляем ее в качестве индекса, для вызова в Label из массива, соответствующего значения месяца;
end;
7) Запускаем проект, и если вы выполнили в точности все, как предлагается в статье, то после ввода целого числа от 1-12, по нажатию кнопки, Label будет отображать название месяца соответствующее введенному числу. Такие вот дела. Но это еще не все. В этом примере да и вообще, массивы можно объявлять не только как переменные, но и как константы, в таком случае синтаксис объявления массива будет немного отличаться. Возьмем наш последний пример и представим массив для хранения названий месяцев - константами. Делается это так: const a: array[1..12] of String = ('Январь',
'Февраль',
'Март',
'Апрель', 'Май', 'Июнь', 'Июль',
'Август', 'Сентябрь',
'Октябрь', 'Ноябрь',
'Декабрь' ); После описания размерности и типа, ставим знак равенства и в скобках по порядку перечисляем значения для массива. И вот здесь нужно быть крайне внимательным, поскольку количество указанное в размерности
[1..12] строго должно быть равно количеству присваиваемых значений. Если это условие не выполнится, то выскочит ошибка.
Ну вот наверное пока достаточно, на сегодня, попробуйте теперь самостоятельно поработать с массивами. Продолжение следует...
|