КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Параметры
ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ Хотя набор встроенных функций языка ПАСКАЛЬ достаточно широк, он вряд ли может удовлетворить требованиям каждого программиста. Поэтому пользователю предоставлена возможность самому реализовать нужные ему алгоритмы в виде функций и обращаться к ним из программ по мере необходимости. Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Формат. Function < имя> < (Формальные параметры)>:< тип результата > Пример. Function Prov (X, Y, T: integer): real; Function Zx: boolean; Имя функции - уникальный в пределах блока идентификатор. Возвращаемый результат может иметь любой скалярный тип, тип string и тип "указатель". Тело функции представляет собой локальный блок, по структуре аналогичный программе: Function <имя> {(Формальные параметры)>: <тип результата> <разделы описаний> begin <раздел операторов> end; В разделе операторов должен находиться по крайней мере один оператор, присваивающий идентификатору функции значение. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания. Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. Для иллюстрации использования функций рассмотрим подпрограмму, которая возводит в степень положительное или отрицательное число.
Program DewoFunction; Var Z: integer; К: real; Function Step (F: real; Exp: integer): real; Var С: integer; T: real; begin if Exp = 0 then Step:= 1 else begin T:= F; for С: = 2 to Abs(Exp) do T: - T * F; if Exp < О then Step:= 1 / T else Step: = T; end end; Begin wri teln (' Введите число:'); read (Z); writeln (Step(Z,3)); {вывод Z в 3-й степени} wri teln (Step(Z,4)); {вывод Z в 4-й степени} К: =1.4; wri teln (Step(K,4)) {вывод К в 4-й степени} End. Параметры могут иметь любой тип, включая структурированный. ПАСКАЛЬ поддерживает два различных метода передачи параметров: по значению и по ссылкам. Когда параметры передаются по значениям, формальный параметр является переменной, локальной в блоке. Фактический параметр может быть любым выражением того же типа, что и соответствующий ему формальный параметр. Такие параметры называются параметрами-значениями. Их главная отличительная черта – изменение формальных параметров не влечет за собой изменения фактических параметров. Приведем пример типичной записи параметров-значений в описании процедур и функций: Procedure Копе (А, В, С: integer; D: real); Function Docs (SI, S2: real; Flag: boolean): real; Тип параметров в секции формальных параметров должен быть указан в виде определенного ранее идентификатора типа. Так, запись Procedure Okl (I: array [l..12] of real); является ошибочной. Тип переменной следует определить ранее в разделе описания типов блока: Type Massiv = array [l..12] of real; Procedure Okl (I: Massiv); Когда параметр передается посредством ссылки, фактический параметр является переменной. Формальный параметр обозначает эту фактическую переменную в течение всего времени активизации блока. Параметры, переданные посредством ссылки, называются параметрами-переменными. Их характерный признак – любое изменение формального параметра означает изменение фактического параметра. Для описания параметров-переменных в секции формальных параметров служит зарезервированное слово Var. При использовании параметров-переменных формальные и фактические параметры должны совпадать по количеству и типу. Однако возможны два исключения: Формальные параметры без типа несовместимы ни с каким типом. Допустимо сочетание параметров-значений и параметров-переменных в одной секции формальных параметров: Procedure Prots (Var А, В, С: real; S: boolean); Такая запись означает, что А, В, С – параметры-переменные, а S – параметр-значение. Напомним, что если процедура должна возвратить в программу определенные результаты, они должны быть специфицированы как параметры-переменные, т. е. в сочетании со словом Var, в противном случае результаты не будут возвращены.
Дата добавления: 2015-05-10; Просмотров: 256; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |