Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Процедуры и функции, определенные пользователем
Процедура и функция пользователяначинаются с заголовков вида, соответственно: Procedure <имя процедуры> [(<параметры>)]; Function <имя функции> [(<параметры>)]: <тип результата>; Возвращаемое значение формируется одной из равнозначных команд: < имя функции >: = <значение> или Result: = <значение>. Предопределенная переменная Result может быть использована в качестве операнда (Result:=X+Y; Result:=Result*C). Для выхода из подпрограммы используется команда Exit. Параметры в заголовке указываются в виде списка объявлений переменных через запятую, и они могут быть структурированы (массивами, записями, множествами). Передача параметров производится по значению, по ссылке, в виде константы или как выходной параметр. Параметры, переданные по значению (параметры‑значения), не могут быть изменены процедурой, функцией, а параметры, переданные по ссылке, называются параметрами‑переменными и могут изменить свое значение в подпрограмме. Они описываются в заголовке процедуры, функции после слова Var. Параметры-константы описываются после слова Const. При попытке изменить значение аргумента в подпрограмме будет выдано компилятором сообщение об ошибке. Выходной параметр описывается после слова Out. Он похож на параметр‑переменную, но не требует исходного значения от аргумента, при этом память, занимаемая аргументом, очищается. Подпрограмма формирует значение этого аргумента. Не типизированный параметр не содержит указание типа, что означает возможность обработки подпрограммой аргумента любого типа. В этом случае в подпрограмме должны применяться операции приведения (преобразования) типов (п.1.2.9). Пример. Procedure P(Var X); Begin Real (X):=Real (X)+2.1; End; Для не типизированного параметра нельзя передавать в качестве аргумента число или не типизированную числовую константу. Обращение к процедуре или к функции имеет вид: <имя процедуры или функции > [(<список аргументов через запятую>)] Параметр с умалчиваемым значением задает значение, которое принимается при отсутствии аргумента в команде вызова подпрограммы. После объявления такого параметра в заголовке подпрограммы указывается знак равенства и константное выражение. Такие параметры должны быть последними в списке параметров, и, если один аргумент не указан, то не указываются и все оставшиеся.
Пример: Fuction Nalog (X: Double, Nds: Double=0.2, Imuh: Double=0.01): Double; ... N:=Nalog(V); //вызов функции с указанием только 1 аргумента вместо 3. // Ошибочным будет вызов функции вида: N:=Nalog(V,,0.02). Перегрузка подпрограмм. Если определить несколько одноименных подпрограмм с различным числом или типами параметров и в конце заголовков указать слово Overload, то компилятор автоматически вызовет ту подпрограмму, которая соответствует данным аргументам. Пример двух функции с различными типами параметров: Function Add (X, Y: Real): Real; Overload; Begin Result:=X+Y; End; Function Add (X, Y: Integer): Integer; Overload; Begin Result:=X+Y; End; A=Add (1.3,2.1); //вызов первой функции с вещественными параметрами A=Add (1,2); //вызов второй функции с целочисленными параметрами Правила использования параметров и аргументов: 1. Количество неумалчиваемых параметров и аргументов совпадает. 2. Длины строк могут не совпадать, если указана директива {$V‑}. 3. Если типы параметров и аргументов не совпадают, то обязательно указать типы параметров в заголовке. 4. В заголовке можно использовать и указатели. 5. Параметрами могут быть открытые массивы (п.1.1.4.1). 6. Параметры типов массивов, строк и записей должны быть предварительно определены через типы пользователя, например: Type Atype=Array [1..10] Of Real;//объявление типа массив из 10 вещ.чис. Intype=String[15]; Outtype=String[30]; //объявление типов строк Procedure S (A:Atype); //заголовок процедуры с параметром типа массив Function St (S:Intype):OutType;//строковая функция с параметром строки Пример программы возведения числа в степень:
|
|||||
Последнее изменение этой страницы: 2017-02-08; просмотров: 320; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.193.11.123 (0.005 с.) |