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

Билет 12(типы формальных параметров)

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

Параметры-переменные указываются в описании подпрограммы после зарезервированного слова var. Действие зарезервированного слова var имеет силу до ближайшей точки с запятой. При вызове подпрограммы на месте параметра-переменной в качестве фактического параметра указывается переменная того же типа. При использовании параметра-переменной в подпрограмму передается сама переменная. Это позволяет вернуть в точку вызова подпрограммы измененные значения внешних переменных, которые были указаны в качестве параметров. Иными словами, изменения значений параметров-переменных в теле подпрограммы приводит также к изменению значений внешних переменных, указанных в качестве параметров при вызове подпрограммы.

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

Билет 13 Процедурные типы

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

Для объявления процедурного типа используется заголовок процедуры (функции), в котором опускается ее имя, например:

type

Proc1 = procedure(a, b, с: Real; var d: Real);

Proc2 = procedure(var a, b);

РгосЗ = procedure;

Func1 = function: string;

Func2 = function(var s: string): Real;

Как видно из приведенных примеров, существует два процедурных типа: тип-процедура и тип-функция.

Процедурные типы данных.

- должны быть описаны в разделе описаний.

Type

Func=Function(a,b:integer-список формальных параметров):integer;

Var

F1,F2:Func;

Function Add(c,d:integer):integer;

Begin

Add:=c+d;

End;

Begin

F1:=Add;

Write (Add(1,2));

Write(F1(2,3));

End;

InLine диррективы

Interrupt

{$F+} {$F-}

Билет 14 Типы формальных параметров

Структура модуля

Логически обособленные группы процедур и функций чрезвычайно удобно объединять в специализированные библиотеки — модули. Для этого язык Delphi предлагает специальные средства и доступную каждому технологию. Приведем общую структуру программного модуля:

Заголовок модуля unit <имя модуля>;

Директивы компилятора {$<директивы>}

Интерфейсная часть interface

Подключение модулей uses <имя>, ..., <имя>;

Константы const ... ;

Типы данных type ... ;

Переменные var ... ;

Заголовки процедур procedure <имя> (<параметры>);

Заголовки функций function <имя> (<параметры>): <тип>;

Часть реализации implementation

Подключение модулей uses <имя>, ..., <имя>;

Константы const ... ;

Типы данных type ... ;

Переменные var ... ;

Реализация процедур procedure <имя>; begin ... end;

Реализация функций function <имя>; begin ... end;

Код инициализации initialization <операторы>

Код завершения finalization <операторы>

end.

После слова unit записывается имя модуля. Оно должно совпадать с именем файла, в котором находится исходный текст модуля. Например, если файл называется MathLib.pas, то модуль должен иметь имя MathLib. Заголовок модуля формируется автоматически при сохранении файла на диске, поэтому его не следует изменять вручную. Чтобы дать модулю другой заголовок, просто сохраните его на диске под другим именем.

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

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

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

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

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