Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
екзамен Алгортми і стр даних.docx
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
88.29 Кб
Скачать

16. Особливості угод про зв"язки в мові Pascal.

Модули подключаются к главной программе и к другим модулям с помощью следующей конструкции языка: uses список - модулей; Список модулей представляет собой список названий модулей, перечисленных через запятую. Он может включать как модули, созданные разработчиком для текущей программы, так и стандартные, входящие в поставку Delphi 5. Все указанные модули должны существовать. Например:

uses SysUtils, Forms, MyUnit;

В некоторых случаях местонахождение исходного текста модуля требуется задавать явно. Подобная потребность возникает в следующих случаях: - модуль расположен в отдельном каталоге, и в настройках Delphi 5 этот каталог не указан; - модули из разных каталогов имеют одинаковые имена. Для решения этих проблем в операторе uses после названия соответствующего модуля указывается ключевое слово in, а за ним в одинарных кавычках приводится путь к исходному тесту данного модуля:

uses Windows, MyUnit in 'c:\projects\games\dune5\MyUnit.pas', Main;

17. Органцізація передачі результатів підпрограм і функцій.

Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом. Функция main передает управление операционной системе. Формат оператора:

return [выражение] ;

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

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

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

Пример:

int sum (int a, int b) { return (a+b); }

Функция sum имеет два формальных параметра a и b типа int, и возвращает значение типа int, о чем говорит описатель, стоящий перед именем функции. Возвращаемое оператором return значение равно сумме фактических параметров.

Пример:

void prov (int a, double b) { double c; if (a<3) return; else if (b>10) return; else { c=a+b; if ((2*c-b)==11) return; } }

Оператор return немедленно прекращает выполнение операторов в теле функции и передаёт управление в точку возврата. Поскольку вызов функции является выражением, точка возврата имеет значение. Это значение определяется значением выражения, которое обычно располагается непосредственно за оператором возврата return. Тип возвращаемого значения должен соответствовать типу, который указывается спецификатором определения в объявлении и определении функции.

Если в качестве спецификатора объявления в определении и объявлении функции используется ключевое слово void, оператор return в теле этой функции используется без выражения. В этом случае выражение вызова функции оказывается выражением типа void, а значение выражения вызова в точке возврата оказывается неопределённым. Такое выражение не может входить в состав выражений более сложной структуры в качестве операнда выражения, поскольку значение всего выражения оказывается неопределённым.

Выражение с неопределённым значением (выражение вызова функции типа void) может выступать лишь в качестве выражения-оператора. Главное - это не забыть поставить в конце этого выражения разделитель ';', который и превращает это выражение в оператор.