
- •Подпрограммы-функции
- •Заголовок функции
- •Значения, возвращаемые из
- •Подпрограммы-процедуры
- •Заголовок процедуры:
- •Вызов подпрограммы
- •Параметры-значения
- •Параметры-константы
- •Параметры без типа
- •Рекурсивные подпрограммы
- •Процедурный тип
- •Объявление процедурного типа
- •Пример: нахождение таблиц умножения и
- •procedure printtable(operation: fun); var i, j: byte;
- •Основы объектно-ориентированного программирования
- •Класс включает :
- •Не для всех классов можно создать
- •Основные принципы ООП
- •Инкапсуляция
- •Принцип инкапсуляции предполагает
- •Наследование
- •Каждый потомок наследует характеристики
- •Один и тот же классможетбытьпотомком одних классов и предком других.
- •Исходный класс и все его потомки называются семейством этого класса.
- •Полиморфизм
- •Когда потребуетсявыполнитьдействиеименнос представителем конкретного класса, из всего множества одноименных подпрограмм будет
- •Структуракласса
- •Имя родительского класса указывается в том случае, если новый класс должен унаследовать все
- •Присваивание объектов
- •Например, в программе есть такое
- •Уровни инкапсуляции
- •published – элементы класса доступны в любом месте программы,
- •По умолчанию считается,чтовсеполякласса расположены в разделе private.
- •Поля
- •Для ограничениянепосредственногодоступа
- •Методы
- •При описании метода перед его именем должно указываться имя класса, но не переменной.
- •Во многих случаях возможности наследуемых методов достаточно полно реализованы в родительских классах и
- •В момент встречи программой этого слова вызовется одноименный метод ближайшего
- •Типы методов
- •Виртуальные и абстрактные методы
- •Не всякие одноименныеметодыявляются
- •Пример. Иерархия методов перемещаемых геометрических фигур.
- •Принципиальноеотличие:
- •Причем для каждогоклассасоздается только одна такая таблица – независимо от того, сколько объектов
- •VMT содержит:
- •Динамические методы
- •Конструкторыидеструкторы
- •Конструктор – предназначендля
- •Объявление конструктора:
- •Деструктор – предназначен для
- •Описание деструктора:
- •Замечание.
- •Свойства
- •При запросе значения свойства оно считывается
- •Физически после компиляции программы
- •Объявление свойства:
- •Эта часть имеет вид:
- •Часть read - представляет механизм для считывания (возвращения) значения свойства.
- •В части write - дается механизм задания значения свойства.
- •В случае отсутствия части write изменить значение этого свойства нельзя, то есть это
- •Уровень инкапсуляции свойства Поля класса располагаются в скрытой секции.
- •Пример
- •type
- •Операциисклассамииобъектами
- •Операция as - приведениетипа

Подпрограммы-функции
Функция предназначена для вычисления
некоторого
значения простого типа.
Вызов функции - подстановка имени
функции с перечнем аргументов в соответствующее выражение или
оператор - аналогично стандартным функциям.
1

Заголовок функции
Общий вид:
function идентификатор функции (список формальных параметров) : тип результата ;
Список формальных параметров может включать:
Параметры-значения, не изменяются в подпрограмме –
идентификатор: тип;
Параметры-переменные, могут изменяться в подпрограмме -
var идентификатор: тип; Тип задается только идентификатором.
2

Значения, возвращаемые из
подпрограммы-функции:
значения параметров-переменных;
значение самой функции.
В подпрограмме-функции необходимо
присвоить идентификатору функции или переменной result
то значение, которое должно быть
возвращено.
3

Подпрограммы-процедуры
Процедура предназначена для
вычисления различных значений любого типа и/или выполнения каких- либо действий.
Вызов процедуры - применение
оператора вызова процедуры
с указанием имени процедуры с перечнем аргументов - аналогично стандартным процедурам.
4

Заголовок процедуры:
procedure идентификатор процедуры(список формальных параметров);
Значения, возвращаемые из подпрограммы- процедуры:
значения параметров-переменных.
Кроме того, возможно изменение значений глобальных переменных.
Оператор вызова процедуры: идентификатор процедуры(список
фактических параметров) ;
5

Вызов подпрограммы
Фактические параметры
При вызове подпрограммы вместо
формальных параметров надо подставить фактические с учетом
соответствия типов и правила:
параметр-значение <-> выражение,
параметр-переменная<-> переменная
6

Параметры-значения
Передаются подпрограмме в виде копий значений
Тип параметра -значения может быть любым кроме файлового
Параметры-переменные
В подпрограмму передаются их адреса
Тип параметра -переменной может быть любым, в т.ч.
и файловым
Параметры-для вывода (out)
В подпрограмму передаются их адреса для вывода результата после выполнения подпрограммы.
Параметры можно не инициализировать
7

Параметры-константы
Параметры-константы не изменяются в подпрограмме
–
const идентификатор: тип;
Защита от изменения устанавливается при компиляции
В подпрограмму передаются их адреса (это экономит память)
Тип параметра -константы может быть любым кроме
файлового
Соответствующий фактический параметр м.б. выражением совместимого по присваиванию типа
8

Параметры без типа
Параметры-константы и параметры- переменные можно использовать без указания типа
const идентификатор;
Фактический параметр м.б. типизированной константой или переменной любого типа
За контроль типов отвечает программист
9

Рекурсивные подпрограммы
Подпрограммы можно неоднократно
вызывать из любой части программы.
Подпрограмма, вызывающая саму себя называется рекурсивной.
Последовательность самовызовов
обязательно должна быть конечной.
10