Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012-2013 Вопросы к экзамену П бак 1 семестр.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
724.74 Кб
Скачать

27.Создание модулей.

Модули предназначены для разбиения текста программы на несколько файлов. В модулях описываются переменные, константы, типы, классы, процедуры и функции. Для того чтобы эти объекты можно было использовать в вызывающем модуле (которым может быть и основная программа), следует указать имя файла модуля (без расширения .pas) в разделе uses вызывающего модуля. Файл модуля (.pas) или откомпилированный файл модуля (.pcu) должен находиться либо в том же каталоге, что и основная программа, либо в подкаталоге Lib системного каталога программы PascalABC.NET.

Модуль имеет следующую структуру:

unit имя модуля;

interface

раздел интерфейса

implementation

раздел реализации

initialization

раздел инициализации

finalization

раздел финализации

end.

Имеется также упрощенный синтаксис модулей без разделов интерфейса и реализации.

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

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

Раздел интерфейса включает объявление всех имен, которые экспортируются данным модулем в другие модули (при подключении его в разделе uses). Это могут быть константы, переменные, процедуры, функции, классы, интерфейсы. Реализация методов классов может быть дана прямо в разделе интерфейса, но это не рекомендуется.

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

Раздел инициализации и раздел финализации представляют собой последовательность операторов, разделяемых символом ;. Операторы из раздела инициализации модуля выполняются до начала основной программы, операторы из раздела финализации модуля - после окончания основной программы. Порядок выполнения разделов инициализации и разделов финализации подключенных модулей непредсказуем. Как раздел инициализации, так и раздел финализации могут отсутствовать.

Циклические ссылки между модулями

Циклические ссылки модулей в интерфейсных частях запрещены. Например, следующая ситуация ошибочна:

unit A; interface uses B; implementation end. unit B; interface uses A; implementation end.

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

u nit A; interface implementation uses B; end. unit B; interface uses A; implementation end.

28.Сортировки массивов. Пузырьковая сортировка.

Задача сортировки

Задача сорт заключаются в упорядочении элементов массива.

Пузырьковая сортировка

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

T:= истина

Цикл пока t: истина

T:ложь

Цикл пока для j=1,2,…n

T:=истина

Цикл пока t:

T:=ложь

Цикл для j:=1,2,…n;

Если a[j]>a[j+1];

……………………….

Паскаль

A:array [1..n];

T:boolean;

T:=true;

While t do

T:=false;

For j:=1 to n do

If A[j]>a[j+1] then

T:=a[j];

A[j]=a[j+1];

A[j+1]:=k;

T:=true;

End;

End;

End.