- •2. Понятие класса в Делфи. Взаимосвязь класса и объекта. Дерево классов в Делфи.
- •5. Понятие и достоинства подхода объектно-ориентированного программирования.
- •21. Что такое событийное программирование? Понятие события и его роль в современном программировании. 22. События в Делфи программах, их назначения, средства реализации, примеры разнообразных событий.
- •23. Примеры событий в конкретных программах на Делфи.
- •24. Составные имена в программах – когда они возникают, как формируются и с помощью каких средств можно сократить длину таких имен. (например, оператор With)
- •25. Запись как тип данных, их определение, назначение, структура. Обращение к полям записей: составные имена, оператор With. Примеры применения в программах.
- •26. Условный оператор, его назначение, структура. Варианты условных операторов. Вложенные условные операторы. Примеры.
- •27. Массив как тип данных, определение, назначение, структура. Объявление и программирование ввода-вывода одномерного, двух и многомерного массивов. Примеры применения в программах.
- •Имя: array [нижний_индекс. .Верхний_индекс] of тип
- •Имя: array[НижняяГраница1..ВерхняяГраница1, НижняяГраница2..ВерхняяГраница2] of Тип
- •29. Файлы как типы данных. Определения и свойства файлов, типы файлов: текстовые, типированные и нетипированные файлы. Операторы чтения из файла и записи в файл.
- •30. Применение логических переменных, логических функций, логических выражений при программировании в системе Делфи. Логические операции, разрешенные в Делфи.
- •1. Отрицание: not ("не")
- •2. Логическое умножение (конъюнкция) - and ("и")
- •3. Логическое сложение (дизъюнкция) - or ("или")
- •4. Исключающее "или" - xor
- •31. Конструкторы и деструкторы – средства порождения и уничтожения объектов в системе Делфи. Их необходимость и область применения в программах.
27. Массив как тип данных, определение, назначение, структура. Объявление и программирование ввода-вывода одномерного, двух и многомерного массивов. Примеры применения в программах.
Массивом называется упорядоченная индексированная совокупность однотипных элементов, имеющих общее имя. Элементами массива могут быть данные различных типов, включая структурированные. Каждый элемент массива однозначно определяется именем массива и индексом (номером этого элемента в массиве) или индексами, если массив многомерный. Для обращения к отдельному элементу массива указываются имя этого массива и индекс (индексы) элемента, заключенный в квадратные скобки, например, arr1 [3, 35], arr1 [3] [35] или аrr3 [7].
Количество индексных позиций определяется размерностью массива (одномерный, двумерный и т. д.), при этом размерность не ограничивается. В математике аналогом одномерного массива является вектор, а двумерного— матрица. Индексы элементов массива должны принадлежать порядковому типу. Разные индексы одного и того же массива могут иметь различные типы. Чаще всего индекс имеет целочисленный тип.
Различают массивы статические и динамические.
Статический массив представляет собой массив, границы индексов и, соответственно, размеры которого задаются при объявлении, т. е. они известны еще до компиляции программы. Формат описания типа статического массива:
Определение типа статического массива |
|
Array [Имя массива] of <Тип элементов>;
Например,
Определение типа статического массива |
|
Type tm = Array[1 .. 10, 1 .. 100] of real;
...
Определение типа статического массива |
|
var
arr1, arr1 : tm;
arr3 : Array[20 .. 100] of char;
arr4 : Array['a' .. 'z'] of integer;
Переменные arr1 и arr2 являются двумерными массивами по 1000 элементов (10 строк х 100 столбцов). Каждый элемент этих массивов представляет собой число типа real. Для объявления массивов arr1 и аrr2 введен специальный тип tm. Переменные аrrЗ и аrr4 являются одномерными массивами длиной в 81 символ и 26 целых чисел соответственно.
Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов, а размер массива определяется при выполнении программы. Формат описания типа динамического массива:
Формат описания динамического массива |
|
Array of <Тип элементов>;
Во время выполнения программы размер динамического массива задается процедурой SetLength(var S; NewLength: Integer), которая для динамического массива S устанавливает новый размер, равный NewLength. Выполнять операции с динамическим массивом и его элементами можно только после задания размеров этого массива.
После задания размера динамического массива для определения его длины, а также минимального и максимального номеров элементов используются функции Length(), Low() и High() соответственно. Нумерация элементов динамического массива начинается с нуля, поэтому функция Low() для него всегда возвращает значение 0.
Приведем пример использования динамического массива.
Динамический массив |
|
var
n : integer;
m : array of real;
SetLength (m, 100);
for n:=0 to 99 do m[n] :=n;
SetLength (m, 200);
Объявление массива
Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных.
В общем виде инструкция объявления одномерного массива выглядит следующим образом: