ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.04.2021

Просмотров: 591

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Глава 3. Параметры командной строки

Часто бывает удобно предусмотреть возможность передачи программе 
параметров при запуске. Параметры передаются в командной строке. 
Возможность передачи параметров улучшает взаимодействие с пользователем. 
Кроме того вы обеспечите возможность интеграции вашей программы с 
другими. Для того чтобы узнать количество переданных параметров 
используйте функцию ParamCount, которая не берет аргументов. Для того чтобы 
узнать значение конкретного параметра используйте функцию ParamStr. Она 
берет в качестве аргумента номер параметра.

Глава 4. Обработка ошибок

Исключения

Во время выполнения программы могут возникать ошибки. Их называют 
исключениями. Эта глава посвящена перехвату и обработки исключений.

Выброс исключений

Выбросом исключений называется информирование операционной системы о 
произошедшей ошибке. После этого операционная система выводит 
информацию об ошибке.

Для выброса исключений используется унарный оператор raise.

Формат оператора raise: raise исключение;

Список исключений можно посмотреть в официальной документации по Free 
Pascal и Lazarus.

Обработка и перехват исключений

Для обработки исключений существуют две конструкции: try...except и 
try...finally.

Формат конструкции try...except:

Try
Код, который может вызвать ошибки
Except
On тип исключения do Код, который обрабатывает исключение
end;

Если во время выполнения программы возникают ошибки, то выполнение кода  
вызвавшего ошибку приостанавливается и выполняется код обрабатывающий 
исключение.

31


background image

Формат конструкции try...finally:

Try
Код, который может вызвать ошибки
Finally
Код, который обрабатывает исключение
end;

Здесь вам не нужно указывать тип исключения. Если во время работы 
исключение не возникает, то  вначале выполняется код из секции Try,  а затем 
код из секции Finally. Если исключение произошло, то сразу выполняется  код 
из секции Finally. Код из секции Try игнорируется.

Глава 5. Модули

Разделение программы на модули

Используемые подпрограммы можно вынести в отдельный файл, который 
называют модулем. Такой подход облегчает модификацию программ и 
позволяет повторно использовать ранее написанный код.

Стандартный модуль System

Модуль System имеет отличие от остальных модулей. Он автоматически 
подключается к программе. Таким образом, для его подключения не нужно 
использовать ключевое слово uses.

Подключение модулей

Модуль необходимо подключить перед использованием.
Формат подключения модуля: uses имя;
Вместо имени модуля можно использовать список модулей. Список состоит из 
имен разделенных запятой.

Альтернативный вариант подключения модулей

В приведенном выше варианте подключение модулей компилятор 
самостоятельно ищет модули. Если вы хотите явно указать имя файла с 
модулем, то воспользуйтесь альтернативным вариантом подключения модулей.

Альтернативный формат подключения модуля: uses имя in 'файл';

Имя файла может быть полным, то есть содержать путь к файлу. В качестве 
файла укажите файл с исходным кодом модуля.

32


background image

Написание модулей

Вы можете сами написать модуль. Структура модуля следующая:

unit имя модуля;
interface
Раздел описаний
implementation
Раздел реализации
end.

Раздел описаний содержит объявления необходимых переменных и прототипы 
подпрограмм. Прототипы идут после объявления переменных. Прототипы 
подпрограмм отличаются от определений отсутствием тела. В разделе 
реализации находятся определения подпрограмм.

Зависимости

Если в вашем модуле используется другой модуль, то он подключается в начале 
раздела описаний. Рекурсивные зависимости недопустимы.

Секции инициализации и завершения

Эти секции не являются обязательными и могут быть пропущены.
Но если вы определили секцию инициализации, то вы обязаны дать 
определение секции завершения. Секция инициализации не может быть пустой. 
Она содержит код, выполняемый при первом обращении к модулю. Код из 
секции завершения выполняется при завершении работы программы. Секция 
инициализации идет сразу после раздела реализации.

За секцией инициализации  идет секция завершения.

Формат описания секции инициализации:

Initialization  
Код
end.

Формат описания секции завершения:

Finalization
Код
end.

33


background image

Часть 3. Объектно-ориентированное программирование

Глава 1. Принципы объектно-ориентированного программирова-

ния

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

Суть процедурного программирования состоит в разбивке исходной задачи на 
совокупность связанных подпрограмм. Этот прием называют функциональной 
декомпозицией. Термин «процедурное программирование» сейчас заменен 
термином «структурное программирование». Но смена названия не меняет суть. 
Структурное программирование было рассмотрено в первых двух частях книги.
В объектно-ориентированном программировании данные и подпрограммы их 
обрабатывающие объединяются в одну сущность называемую объектом. При 
этом обрабатываемые данные называют членами. Подпрограммы внутри 
объектов называют методами. Объединение данных и методов внутри объекта 
называют инкапсуляцией.

Взаимодействие объекта с другими частями программы можно ограничить при 
помощи спецификаторов доступа.

Порождения одного объекта от другого называют наследованием. Класс 
является основой  для создания объекта.

Глава 2.  Классы

Спецификаторы доступа

Спецификаторы доступа позволяют ограничить доступ к элементам класса. 
Список доступных спецификаторов дан в таблице ниже. 
Если спецификатор доступа не задан, то используется Public.

Спецификатор Описание
Private

Класс доступен только в модуле, который его описывает

Strict Private

Члены и методы доступны внутри класса

Protected

Элементы класса доступны в производном классе из другого модуля

Public

Ограничений нет.

Published

Аналогично Public, но запрещает массивы в качестве членов класса

34


background image

Описание класса

Синтаксис описания класса:

Type имя=class
Список элементов класса
end;

Описание класса дается в разделе объявлений перед объявлением используемых 
в программе переменных и констант.

Список элементов имеет следующий вид:

спецификатор доступа:
Объявления членов и прототипы методов

Вначале объявляются члены. Вслед за ними описываются  прототипы методов. 
Член объявляется как переменная. Прототип метода похож на определение 
подпрограммы, но у него отсутствует тело.

Определения методов

После описания прототипов методов необходимо дать их определение. 
Определения методов даются за пределами описания класса в разделе 
определений перед определением используемых подпрограмм.

Определения методов похожи на определения подпрограмм с небольшим 
отличием. После ключевого слова function или procedure идет имя класса. А 
затем после точки идет имя метода.

Доступ к членам и вызов методов

Каждый объект содержит собственную копию членов определенных в классе. 
Доступ к ним осуществляется так же как к полям экземпляра структуры.  

Вызов методов осуществляется следующей конструкцией:

объект.метод(список аргументов);

Конструкторы и деструкторы

В каждом классе должно быть два специальных метода: конструктор и 
деструктор. Конструктор вызывается при создании объекта. Деструктор 
вызывается при уничтожении объекта. Имена этих методов произвольны. 
Конструктор может принимать аргументы на вход. Деструктор их не имеет 
аргументов.

35