- •Саблукова н.Г. Программирование в среде delphi
- •Часть II
- •Создание проектов
- •Содержание
- •§1 Добавление графических изображений в проект
- •§2 Использование элементов анимации и мультипликации
- •Движение объектов
- •Задания
- •2.2 Изменение форм и видов объектов
- •Задания
- •2.3 Изменение размеров объектов
- •2.4 Пример программы движения объектов с элементами анимации и мультипликации типа «Тараканьи бега»
- •§3 Управление объектами
- •3.1 Управление объектом с помощью мыши
- •Создание проекта с использованием управления объектом с помощью мыши
- •Задания
- •3.3 Управление объектом с помощью клавиатуры
- •Задания
- •§4 Работа со строками
- •4.1 Строковый тип данных
- •4.2 Использование компонента tMemo для работы со строками
- •4.3 Работа со строками с помощью компонентов
- •Задания
- •5. Массивы
- •5.1 Одномерные массивы
- •Доступ к элементам массива
- •Задания
- •Многомерные массивы. Пример создания проекта с границами типа «Лабиринт»
- •Задания
- •6. Создание меню
- •6.1 Главное и вложенное меню
- •6.2 Создание текстового редактора с изменяемыми настройками типа «меню» и элементами диалога
- •7. Элементы мультимедиа
- •Литература
5.1 Одномерные массивы
В математике и информатике массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной. Так, чтобы найти в шкафу с одним рядом ящиков нужный нам ящик, достаточно знать его номер и точку отсчета.
Одномерный массив можно объявить следующим образом:
Var Имя массива: ARRAY [начальный индекс. .конечный индекс] of Тип данных.
При объявлении массива необходимо указать, каким образом производится нумерация элементов, указав начальное и конечное значение для индексной переменной (например, 1..5 или 2..6). Тем самым указывается и число элементов в массиве – его размер. Кроме того, необходимо указать идентификатор (имя) массива и тип данных элементов массива.
Например:
Var Matrix: ARRAY [1..5] of Real;
Var Index:Array[2. .7] of Integer;
Var Name: Array[1..5] of string[25];
Величины в квадратных скобках разделяются двумя точками. Причем перед этими двумя точками и после них допускаются пробелы.
Доступ к элементам массива
Массивы не могут обрабатываться целиком. Но можно получить доступ к каждому элементу-ячейке массива. Это выполняется путем указания значения индекса в квадратных скобках. Например, с помощью оператора
Index[2]:=34;
Элементу массива с индексом 2 (ячейки с номером 2) присваивается значение 34. Наряду с конкретным значением (константой) в качестве индекса может использоваться переменная, например, при поэлементной обработке массива в рамках цикла For..to..do. Так, с помощью фрагмента
For i:=2 to 7 do
Index[i]:=0;
Всем элементам массива Index присваивается значение 0.
Для заполнения массивов используются следующие конструкции:
For i:=1 to 5 do
Begin
A[i] := Random(10);
Edit1.Text := Edit1.Text +' '+ IntToStr(a[i]);
End;
Здесь массив заполняется случайными числами из диапазона [0..9].
Рассмотрим пример программы, в которой требуется ввести одномерный массив.
Пример. Создать проект “Сумма элементов массива”, предусматривающий заполнение массива случайными числами и возможность вывода в текстовое поле сумму всех элементов в массиве |
Поместим на форму два текстовых поля: одно для ввода числовых данных, второе – для вывода суммы и две кнопки для реализации событийных процедур: заполнения массива и вычисления суммы.
Рис. 42 Графический интерфейс окна
Обработчик события заполнения массива для кнопки Button1 будет следующим:
Var Form1: TForm1; |
A:array[1..100] of integer; I:integer; s:integer; |
… |
procedure TForm1.Button1Click(Sender: TObject); |
Begin |
Randomize; |
Edit1.Clear; |
For I := 1 To 10 Do |
begin |
A[I] := Random(10); |
Edit1.Text := Edit1.Text +' '+ IntToStr(a[i]); |
end; |
end; |
Теперь создадим процедуру для вычисления суммы элементов в заполненном массиве:
procedure TForm1.Button2Click(Sender: TObject); |
Begin |
s := 0; |
For I := 1 To 10 Do |
begin |
s:=s + a[i]; |
end; |
Edit2.Text := Edit2.Text +' ' + IntToStr(s) |
end; |
