- •3. Основные проектные операции Delphi. Файлы, генерируемые системой Delphi. Взаимосвязь файлов на этапе проектирования и выполнения программы.
- •4.Модуль. Структура модулей. Интерфейсная часть. Раздел реализации. Компиляция модулей. Ссылки модулей. Области видимости идентификаторов.
- •5. Основные элементы языка Object Pascal. Константы и константные выражения. Переменные.
- •Зарезервированные слова языка Паскаль
- •6. Процедуры и функции. Параметры, механизмы их передачи.
- •7. Операторы Object Pascal
- •8.Динамическое распределение памяти в Object Pascal. Указатели.
- •9.Типы данных Object Pascal. Классификация типов ObjectPascal. Приведение типов.
- •10.Порядковые типы данных. Целые типы данных. Действительные типы данных. Булевы типы данных. Символьные типы данных.
- •11. Перечислимые типы. Ограниченные типы. Типы данных, специфичные для Windows.
- •12. Строки. Традиционные строки Pascal. Длинные строки Delphi.
- •Val(st: string; X: числовая переменная; var code: integer)
- •13.Массивы. Статические массивы. Операции с массивами, передача массивов как параметров. Динамические массивы.
- •14. Множества. Записи.
- •15. Файлы. Типы файлов.
- •16 Тип variant. Массивы типа Variant.
- •Теоретические положения объектно-ориентированного программирования. История, основные принципы ооп.
- •Принцип инкапсуляции в ооп. Принцип наследования в ооп.
- •Понятие полиморфизма в ооп. Языки ооп. Объектно-ориентированный анализ и проектирование.
- •Классы. Объявление классов. Реализация принципа инкапсуляции в Object Pascal. Поля. Директивы private, protected и public. Инкапсуляция и формы. Свойства.
- •21.Понятие объекта и экземпляра объекта в Object Pascal.
- •22.Конструкторы и деструкторы. Ключевое слово self.
- •23.Методы и их наследование. Статические методы.
- •25. Абстрактные методы.
- •33. Общие свойства компонентов: положение, размеры и оформление компонент.
- •35.События клавиатуры. Фокус ввода.
- •36. Механизм перетаскивания Drag&Drop, механизм причаливания Drag&Dock.
- •39. Решение проблемы утечки ресурсов с использованием механизма исключений.
- •42. Класс tList.
- •44.Класс tStream и его потомки – потоки данных.
- •45. Глобальный объект Application.
- •47. Глобальный объект Printer.
13.Массивы. Статические массивы. Операции с массивами, передача массивов как параметров. Динамические массивы.
Массивом- это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной информации(таблицы, списки..).
Объявление массива-массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных.
Имя: [нижний_индекс..верхний_индекс]
где:
имя-имямассива;
array-зарезервированное слово языкаDelphiобозначающее, что объявляемое имя является именем массива;
нижний_индекс и верхний_индекс-целые константы, определяющиедиапазон изменения индекса элементов массива и, неявно, количествоэлементов (размер) массива
тип- тип элементов массива.
Различают массивы статические и динамические.
Статический массив представляет собой массив, границы индексов и, соответственно, размеры которого задаются при объявлении.
Array[Имя массива]of<Тип элементов>;
Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов, а размер массива определяется при выполнении программы. Формат описания типа динамического массива:
Arrayof<Тип элементов>;
Во время выполнения программы размер динамического массива задается процедурой SetLength(var S; NewLength:Integer), которая для динамического массива S устанавливает новый размер, равный NewLength. Выполнять операции с динамическим массивом и его элементами можно только после задания размеров этого массива.
После задания размера динамического массива для определения его длины, а также минимального и максимального номеров элементов используются функции Length(), Low() и High() соответственно. Нумерация элементов динамического массива начинается с нуля.
Передача массива как параметра. Передача параметров в дельфи: Type Ta=array of something; Var a:Ta; Procedure Proc(a:Ta); - внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных Procedure Proc(var a:Ta); - внутри процедуры код работает именно с переменной «а» и её содержимым Procedure Proc(const a:Ta); - внутри процедуры запрещено изменять данные переменной «а» Procedure Proc(out a:Ta); - при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения.
Типичными операциями при работе с массивами являются:
вывод массива;
ввод массива;
поиск максимального или минимального элемента массива;
поиск заданного элемента массива;
сортировка массива.
14. Множества. Записи.
Множество представляет собой совокупность элементов, выбранных из заранее определенного набора значений. Формат описания множественного типа:
Setof<Тип элементов>;
Переменная множественного типа может содержать любое количество элементов своего множества— от нуля до максимального. Значения множественного типа заключаются в квадратные скобки. Пустое множество обозначается как[].
Операции над множествами:
Объединение множеств (+) - объединение неповторяющихся элементов первого и второго множества
Вычитание множеств (-) - Элементы первого множества, не пренадлежащие второму
Пересечение множеств (*) - Элементы, общие для обоих множеств
Эквивалентность (=) - True, если множества эквивалентны
Неэквивалентность (<>) - True, если множества неэквивалентны
Проверка вхождения (<=) - True, если первое множество входит во второе
Проверка включения (>=) - True, если первое множество включает второе
Кроме того, есть операцияin (проверка членства), которая определяет принадлежность выражения порядкового типа (первого операнда) множеству (второму операнду). Результат операции имеет тип boolean и значение True в случае, если значение принадлежит множеству.
Записи
Записи объединяют фиксированное число элементов данных других типов. Отдельные элементы записи имеют имена и называются полями. Имя поля должно быть уникальным в пределах записи. Различают фиксированные и вариантные записи.
Фиксированная запись состоит из конечного числа полей, ее объявление имеет формат:
Record
<Имя поля1>:<Тип поля1>;
...
<Имя поляN>:<Тип поляN>;
end;
Вариантная запись, как и фиксированная, имеет конечное число полей, однако предоставляет возможность по-разному интерпретировать области памяти, занимаемые полями. Все варианты записи располагаются в одном месте памяти и позволяют обращаться к ним по различным именам. Отметим, что в данном случае термин «вариантный» не имеет ничего общего с вариантным типом (variant). Формат объявления вариантной записи:
Record
case<Признак>:<Тип признака>of
<Вариант1>:(<Описание варианта1>);
<ВариантN>:(<Описание вариантаN>);
end;
Для обращения к конкретному полю необходимо указывать имя записи и имя поля, разделенные точкой, т. е. имя поля является составным. С полем можно выполнять все операции, которые допускаются для отдельной переменной этого же типа.