Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
15.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
98.3 Кб
Скачать

15. Структура программ в d Pascal

Программы в D Pascal могут включать разделы определяющие константы и типы для использования в программе. Они также могут определять и использовать функции примерно в таким же способом, как и процедуры. Они могут обрабатывать файлы, которые созданы иными программами, или готовить файлы для других программ. Эти возможности создают удобство использования и являются вкладом в хороший стиль программирования документированием и локализацией значения программ.

Программы CF Pascal состоят из заголовка, объявления переменных, объявления процедур и тела программы. D Pascal богаче чем CF Pascal и содержит дополнительные возможности как внешние файлы, константы, типы и функции, и это отражает его структура программы. В D Pascal <заголовок программы> и <блок> могут содержать больше элементов, чем в CF Pascal. Синтаксис D Pascal следующий:

<программа> ::= <заголовок программы>; <блок>.

<заголовок программы> ::= PROGRAM <идентификатор> (<список идентификаторов>);

<список идентификаторов> ::= <список идентификаторов>, <идентификатор> |

<блок> ::= <раздел объявления констант><раздел объявления типов>

<раздел объявления переменных>

<раздел объявления процедур и функций><оператор BEGIN>

<раздел объявления переменных> ::= VAR <объявления переменных>; |

<объявления переменных> ::= <объявления переменных>, <объявление переменной>

| <объявление переменной>

<объявление переменной> ::= <список идентификаторов> : <обозначение типа>

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

15.1. Внешние файлы.

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

Файлы могут иметь время жизни, как и другие переменные в Паскале, которое определяется временем выполнения программы или временем жизни соответствующего блока, но они могут также продолжать существовать за пределами выполнения программы. Если файловая переменная появляется в заголовке программы, (с INPUT и OUTPUT), файл называется внешним. Содержимое внешнего файла может читаться и записываться Паскаль-программой, но файл может существовать до начала выполнения программы и оставаться после завершения выполнения. Например, в программе

PROGRAM FileProcess(INPUT, OUTPUT, ExtFile);

VAR

IntFile, ExtFile: TEXT;

BEGIN

END.

Содержимое файла ExtFile может существовать до выполнения FileProcess и оставаться после выполнения, а содержимое IntFile должно быть создано в FileProcess и будет уничтожено при завершении выполнения. Каждая Паскаль-машина имеет различные способы связывания внешних файлов с именами в файловой системе. Часто идентификатор задает используемое имя, но это может быть и не так из-за ограничений за пределами Паскаль-машины.

Внешние файлы могут иметь три разных варианта использования: ввод – предоставление данных программе извне, вывод – сохранение данных, подготовленных данной программой другим программам и изменение – предоставление данных программе для изменения с целью дальнейшего использования.

Например, файл может быть использован для накопления записей студентов, регистрирующихся на учебный курс. Предположим, стандартный входной файл INPUT содержит имена всех студентов зарегистрировавшихся сегодня, а Students содержит имена зарегистрировавшихся ранее студентов в алфавитном порядке. Следующий раздел проекта показывает, какие требуются обработки.

PROGRAM Register(INPUT, OUTPUT, Students);

{добавляет имена в INPUT в Students и сообщает

о дублировании имен в OUTPUT}

VAR

Students, Temp1, Temp2: TEXT;

BEGIN {Register}

{Копировать INPUT в Temp1}

{сортировать имена в Temp1}

{соединить Temp1 и Students в Temp2 –

если имя существует в обоих файлах,

послать в OUTPUT и не дублировать в Temp2}

{копировать Temp2 в Students}

END. {Register}

Temp1 и Temp2 – внутренние файлы, которые уничтожаются при завершении выполнения. Student изменяется и будет использован этой же программой позднее.

Внешние файлы D Pascal обеспечивают возможность создания, не просто одиночных программ, а программных систем, где программы обмениваются информацией через внешние файлы. Например, другая программа может распечатывать файл Students, скажем, как в следующем разделе проекта:

PROGRAM PrintRegistered(INPUT, OUTPUT, Students);

{печатает имена в Students в OUTPUT}

VAR

Students: TEXT;

BEGIN {PrintRegistered}

{Копировать и форматировать имена из Students в OUTPUT}

END. {PrintRegistered}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]