Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Правила написания подпрограммСодержание книги
Поиск на нашем сайте Структура подпрограммы представлена на рисунке 3.1.
Рисунок 3.1 – Структура подпрограммы Описание процедуры Заголовок процедуры выглядит следующим образом: Procedure <имя процедуры> (<список формальных параметров>); Имя процедуры должно удовлетворять общим требованиям языка к написанию имен. В списке формальных параметров перечисляются имена параметров, передаваемых в процедуру с указанием их типов. Список параметров не является обязательным. Пример заголовка процедуры: Procedure myProc (a, b: Real; var s: String); В приведенном выше примере процедуре передаются значения двух вещественных переменных «а» и «b», и адрес строки символов «s». Об этом свидетельствует префикс var перед именем строки. Передача адреса переменной в процедуру вместо ее значения приводит к тому, что если значение параметра s изменится в результате работы процедуры, то это изменение будет сохранено после завершения работы процедуры. Описательная часть процедуры может содержать описания типов, классов, переменных, констант и т.п. Обратите внимание, параметры, описанные в заголовке процедуры, в разделе описаний повторно не описывают. В разделе описаний процедуры могут быть описаны не только переменные, но и другие подпрограммы. Такие подпрограммы называются внутренними по отношению к процедуре, в которой они описаны. Сама процедура, по отношению к внутренним подпрограммам называется внешней. Раздел операторов процедуры содержит инструкции, которые будут выполняться при обращении к процедуре. Ниже, в качестве примера, дано описание процедуры, заголовок которой был приведен выше. Procedure myProc (a, b: Real; var s: String); var z:real; Begin z:=a+b; s:=floatToStr(z); end; В качестве параметров в эту процедуру передается два вещественных числа и адрес некоторой строки. В разделе описаний процедуры описана внутренняя переменная z, которая за пределами процедуры недоступна. Инструкции, записанные в теле процедуры, обеспечивают сложение чисел, переданных в качестве параметров. Полученный результат запоминается в переменной z. Затем сумма преобразуется в строку символов. После завершения процедуры значение строки, переданной в процедуру в качестве параметра, изменится. 3.1.1.2 Вызов процедуры Вызов процедуры состоит из имени процедуры, после которого в скобках перечисляются фактические параметры, передаваемые в процедуру. Примеры вызова процедур, которые уже встречались ранее, представлены ниже. Пример вызова процедуры ShowMessage, в которую передается один параметр в виде строки символов. ShowMessage(‘Не могу преобразовать исходные данные’); Пример вызова процедуры Append для строк компонента TMemo. Memo1.Lines.Append(‘Результаты расчетов’); Пример вызова процедуры Exit, без параметров. Exit; Процедура, заголовок которой приводился выше в виде примера, может быть использована так. … Var x,y: Real; str: String; Begin x:=1; y:=2;… myProc (2.345, x+y, str); showMessage(str); end; В этом примере обращение к нашей процедуре выделено жирным курсивом. В этом обращении формальному параметру «а» соответствует фактический параметр в виде числа 2.345, формальному параметру «b» соответствует число 3, полученное как результат вычисления выражения «x+y». Формальному параметру «s» соответствует адрес переменной «str». Следует заметить, что в качестве последнего фактического параметра мы можем передать только имя переменной (нельзя задавать константу или выражение), так как в заголовке процедуры, перед параметром «s» написано var. В результате вызова процедуры значение переменной «str» станет равным строке символов ‘5.345’. 3.1.1.3 Описание функции Описание функции по структуре такое же, как и описание процедуры, но вид заголовка несколько иной. Заголовок функции начинается словом function, а заканчивается описанием типа возвращаемого значения и выглядит следующим образом: Function <имя функции> (<список формальных параметров>): <тип возвращаемого значения>; Пример заголовка функции: Function myFunc (a, b: Real ): String; В этом примере функция myFunc возвращает стоку символов, а параметрами, которые передаются в процедуру, являются два вещественных числа. Еще одна особенность описания функции заключается в том, что в операторной части должен располагаться оператор присваивания, в котором специальной переменной result присваивается значение возвращаемого результата. Переменная result не требует описания. Ниже, в качестве примера, дано описание функции, заголовок которой был приведен выше. Function myFunc (a, b: Real): String; var z:real; Begin z:=a+b; Result:=floatToStr(z); end; В качестве параметров в эту функцию передается два вещественных числа. В разделе описаний процедуры описана внутренняя переменная z, которая за пределами процедуры недоступна.. Инструкции, записанные в теле процедуры, обеспечивают сложение чисел, переданных в качестве параметров. Результат сложения запоминается в переменной z. Полученная сумма преобразуется в строку символов, и результат преобразования присваивается специальной переменной result. Именно это значение и будет результатом выполнения функции. 3.1.1.4 Вызов функции Вызов функции состоит из имени функции, после которого в скобках перечисляются фактические параметры, передаваемых в функцию, то есть ничем не отличается от обращения к процедуре, но особенность обращения к функции состоит в том, что это обращение входит как операнд в выражение. Примеры обращений к функциям, которые уже встречались ранее, представлены ниже. Пример вызова функции StrToFloat. x:= strToFloat(Edit1.text); Пример вызова функций sin и sqrt. x:= a + sin(x) + sqrt(a+b); Обращение к функции, заголовок которой приводился выше в виде примера, может быть использовано так. … Var x,y: Real; str:String; Begin x:=1; y:=2;… str:= myFunc (2.345, x+y); showMessage(str); end; В этом примере обращение к нашей функции выделено жирным курсивом. Функция вернет строку символов, значение которой равно ‘5.345’ и это значение будет присвоено переменной str.
|
||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 335; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |