Читаем Информатика и информационные технологии полностью

После объявления процедурного, или функционального, типа его можно использовать для описания формальных параметров – имен процедур и функций. Кроме того, необходимо написать те реальные процедуры или функции, имена которых будут передаваться как фактические параметры.

7. Процедуры и функции в Pascal

Процедуры в Pascal

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

Procedure имя [(список формальных параметров)];

Для каждого формального параметра должен быть определен его тип. Группы параметров в описании процедуры разделяются точкой с запятой.

По структуре процедура почти полностью аналогична программе. Однако в блоке процедуре отсутствует раздел подключения модулей. Блок состоит из двух частей: описательной и исполнительной. В описательной части содержится описание элементов процедуры. А в исполнительной части указываются действия с доступными процедуре элементами программы (например, глобальные переменные и константы), позволяющие получить требуемый результат. Раздел инструкций процедуры отличается от раздела инструкций программы только тем, что после ключевого слова End, завершающего этот раздел, ставится точка с запятой, а не точка.

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

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

Функции в Pascal

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

Function имя [(список формальных параметров)]: тип возвращаемого результата;

В реализации Turbo Pascal 7.0 фирмы Borland возвращаемое функцией значение не может иметь составной тип. А язык Object Pascal, используемый в интегрированных средах разработки Borland Delphi, допускает любой тип возвращаемого результата, кроме файлового типа.

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

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

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

Если идентификатор функции используется при вызове функции внутри модуля – функции, то функция выполняется рекурсивно.

8. Опережающие описания и подключение подпрограмм. Директива

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

Описание процедуры, содержащее вместо блока операторов директиву forward, называется опережающим описанием. В каком-либо месте после этого описания с помощью определяющего описания процедура должна определяться. Определяющее описание – это описание, в котором используется тот же идентификатор процедуры, но опущен список формальных параметров, и в которое включен блок операторов. Описание forward и определяющее описание должны присутствовать в одной и той же части описания процедуры и функции. Между ними могут описываться другие процедуры и функции, которые могут обращаться к процедуре с опережающим описанием. Таким образом, возможна взаимная рекурсия.

Перейти на страницу:

Похожие книги

Забытое
Забытое

Захватывающая история Сиенны Престон продолжается во второй части головокружительной серии «Игра обмана».Семнадцатилетняя Сиенна не понаслышке знает о душевной боли и потерях. Но на этот раз всё по-другому: кто-то вмешался в воспоминания её возлюбленного, и теперь ей предстоит найти ответы.След ведёт её к сверкающим небоскрёбам и роскоши Рубекса, столицы Пасифики, где она проникает в правительственное Ведомство интеллекта и генетики. Но ответы получить не так-то просто, особенно когда её собственные воспоминания могут быть искажены. К счастью, рядом есть Зейн Райдер, готовый помочь ей сложить вместе кусочки головоломки. Его преданность и забота размывают границу между дружбой и чем-то большим.Когда Сиенна подбирается слишком близко к тёмным секретам Ведомства, её обвиняют в убийстве видного государственного деятеля, и ей приходится пуститься в бега. Как бы ни разрывалось сердце Сиенны в попытке понять, кого она любит, это всё вскоре перестаёт иметь значение — потому что единственное, что её сейчас ждёт, это смертный приговор.

Александр Степанович Грин , Кристин Смит , Марина Козикова , Марина Суржевская

Любовное фэнтези, любовно-фантастические романы / Проза / Классическая проза / Самиздат, сетевая литература / Технические науки / Любовно-фантастические романы
Портрет трещины
Портрет трещины

Разрушение… РњС‹ сталкиваемся с ним ежедневно, ежечасно. Р'РѕС' слабый стебель травы пророс СЃРєРІРѕР·ь асфальт и победно зеленеет. Как это призошло? Р'РѕС' совершенно неожиданно переломилась мощная металлическая конструкция, которой стоять Р±С‹ века… Почему? Р' чем причина катастроф и разрушений, происходящих в мире прочнейших материалов? Как ведет себя микроскопическая трещинка, откуда у нее такая сила и такое коварство? Как человек учится управлять этой страшной силой и обращать ее себе на пользу? На эти и многие другие РІРѕРїСЂРѕСЃС‹ отвечает автор. Непринужденная форма изложения, поэтические примеры, подтверждающие мысль автора, делают книгу интересной и познавательной. Книга предназначена для широкого круга читателей, для всех, кто хочет постичь одну из великих загадок РїСЂРёСЂРѕРґС‹. Р

Виктор Моисеевич Финкель

Физика / Технические науки / Образование и наука