
- •Понятие рекурсии. Примеры рекурсивных функций.
- •Модуль в Турбо Паскале представляет собой отдельно хранимую и независимо компилируемую программную единицу.
- •Модуль crt содержит процедуры и функции, обеспечивающие управление текстовым режимом работы экрана.
- •Цель структурного программирования - повышение надежности программ, обеспечение сопровождения и модификации, облегчение и ускорение разработки.
- •Разработка программы ведётся пошагово, методом «сверху вниз» (низходящее)
- •Модульное программирование
- •Объектный подход в программировании: объект, свойство объекта, метод обработки, событие, класс. Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.
- •Var имя_объекта : класса_объекта;
Объектный подход в программировании: объект, свойство объекта, метод обработки, событие, класс. Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.
Среда программирования DELPHI в отличие от среды разработки Турбо Паскаль реализует концепцию объектно-ориентированного программирования (ООП). Идея ООП состоит в стремлении связать сами данные в обрабатывающими эти данные процедурами в единое целое, называемое объектом.
Наиболее важным понятием ООП является класс. В языке ObjectPascal классы – это специальные типы данных, содержащие в своем составе такие элементы как поля, методы и свойства.
Класс, как и любой другой тип, служит для создания экземпляров этого класса, которые называются объектами (аналогично переменные определенного типа).
Важно, что для различных элементов класса можно устанавливать разные области видимости, для чего в описании класса используются отдельные разделы.
Все классы расположены на определенном уровне иерархии и образуются дерево классов.
Новый класс, порожденный родительским классом, наследует поля, методы и свойства класс-родителя и кроме того может быть дополнен своими полями, методами и свойствами (описаниями).
Объекты, как экземпляры класса, объявляются в программе в разделе var (как переменные).
Var имя_объекта : класса_объекта;
Для обращения к конкретному элементу объекта (полю, методу или свойству), указывается имя объекта и имя элемента, разделенные точной «.».
Элементы класса (поля, методы и свойства)
Поля класса аналогичны полям записи, служат для хранения информации об объекте.
Полями называется содержащиеся в классе данные. Поля могут быть любого типа, в том числе и другим классом.
При создании новых классов класс-потомок наследует поля класса-родителя., т.е. чем ниже по иерархии находится какой-либо класс, тем больше у него полей.
Изменение значений полей обычно выполняется с помощью методов и свойств объектов, однако, разрешается обращаться и к полям напрямую.
Методы представляют собой подпрограммы (процедуры, функции), являющиеся элементом класса.
Описание меода похоже на описание обычной подпрограммы.
Interface
Type
TForm1 = class(TForm)
..
Procedure Button1Click(..);
Implementation
..
Procedure TForm1.Button1Click()
Begin …end;
В состав любого класса входят 2 специальных метода, предназначенных для создания и удаление объектов – конструкторы и деструкторы.
В качестве имён конструкторов и деструкторов в базовом классе TObject и многих других классах используется имена CREATE() и DESTROY() (такие вот методы).
Прежде, чем обратиться к элементам объекта, его (объекта) нужно создать с помощью конструктора, который помимо ряда других действий, выделит память для нового объекта, задает нулевые значения для числовых полей.
Свойства реализуют механизм доступа к полям. Обычно, каждому свойству соответствует поле и два метода (подпрограммы), обеспечивающих доступ к этому полю (при чтении из этого поля, при записи в него).
При обращении к свойству автоматически подключается метод, в который помимо основной функции могут быть записаны специфические действия.
События представляют собой специальное свойство процедурного типа, предназначенное для обеспечения реакции на те или иные действия.
Присваивание значения этому свойству(событию) означает указание метода (процедуры), вызываемого при наступлении данного события. Соответствующие методы называются обработчиками событий.
Все преимущества ООП в больше степени проявляются при разработке сложных программ.
ООП основана на 3х важнейших принципах:
Инкапсуляция
Наследование
Полиморфизм
Инкапсуляция – это объединение в единое целое (в класс) данных (т.е. полей класса), алгоритмов обработки этих данных (методов) и свойств (т.е. специал. механизмов, регулирующих доступ к полям)
В одном месте программы объединение всего.
Инкапсуляция изолирует класс от отдельных частей программы, что повышает надежность разрабатываемых программ.
В результате класс несет в себе законченную функциональность.
Следствием инкапсуляции является легкость обмена готовым частей программы.
Например:
Класс TForm содержит (инкапсулирует в себе) всё необходимое для создания Windows-окна (экранной формы).
Класс TTimer обеспечивает полноценную работы программы с таймером и т.д.
Наследование – процесс порождения новых классов от существующих классов – родителей, при этом потомок автоматически наследует от родителя все поля, методы и свойства и может дополнять их новыми.
В классе TObject объявлены свойства visible, caption и др; они доступны практически всем объектам (потомкам).
Таким образом, принцип наследования обеспечивает поэтапную разработку крупных программных продуктов, приводит к созданию ветвящегося дерева классов.
Полиморфизм – свойства родственных классов решать схожие по смыслу задачи разными способами. Все действия класса определяются набором входящих в него методов.
Сущность полиморфизма заключается в том, что методы различных родственных классов могут иметь одинаковые имена, но различное содержание (разные входящие операторы, разные действия метода).
Это достигается переопределением (перекрытием) родительского метода в классе-потомке.
В результате, родитель и потомок ведут себя по-разному, при этом обращение к одноименным методам различных объектов аналогично.