В какой части программы описываются подпрограммы в языке паскаль между заголовками

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

Главным вопросом, который следует решить при проектировании подпрограмм, является вопрос о способе передачи данных между подпрограммой и программой. В любом алгоритмическом языке существует два основных способа передачи данных: через список параметров подпрограммы и через глобальные переменные (общие области, внешние имена). Первый способ дает возможность подстановки, т. е. передачи в подпрограмму при каждом обращении к ней новых данных программы. В список параметров подпрограммы включаются переменные, значения которых должны быть переданы из программы в подпрограмму и из подпрограммы в программу (т.е. «вход» и «выход»[15] подпрограммы).

Подпрограммы в Pascal

Во всех алгоритмических языках при использовании подпрограмм выделяются два момента: описание подпрограмм и обращение к ним (вызов). Под описанием подпрограммы понимается оформление её алгоритма особым образом, так чтобы любая программа (или подпрограмма) могла его активизировать и выполнить над своими данными. Под обращением к подпрограмме понимается активизация подпрограммы; программа передает управление подпрограмме и пересылает ей данные, подпрограмма выполняет свой алгоритм и возвращает управление программе. При описании подпрограммы в списке параметров записываются формальные параметры, которые используются только в подпрограмме и при обращении к ней заменяются фактическими параметрами, т. е. соответствующими данными программы[16]. Фактические параметры должны соответствовать формальным по количеству, порядку перечисления и типу.

Читайте также:
Что такое программа гармония

Существует два способа замены формальных параметров на фактические:» по ссылке»[17] (call-by-reference) и «по значению» (call-by-value). Передача параметра «по ссылке» означает передачу в подпрограмму адреса фактического параметра. При этом любое изменение формального параметра внутри подпрограммы есть изменение соответствующего фактического параметра.

Поэтому константы и выражения нельзя передавать «по ссылке» — они могут измениться, «испортиться». Передача параметров «по значению» означает пересылку значения фактического параметра в ячейку, соответствующую формальному параметру, при обращении к подпрограмме. Это обеспечивает сохранность величины фактического параметра. Изменение формального параметра внутри подпрограммы никак не отражается на значении фактического.

Вывод: «по значению» нельзя передавать переменные-результаты подпрограммы; их следует передавать «по ссылке «. Если фактическое значение может быть константой или выражением, то следует использовать замену «по значению».

Информатика. Язык Pascal: Процедуры и функции в Pascal. Центр онлайн-обучения «Фоксфорд»

Заметим, что при передаче «по ссылке», как правило, экономится память, так как формальные параметры не копируют фактические; по этой причине массивы обычно передаются «по ссылке». При передаче «по значению» обычно экономится время работы подпрограммы (за счет отсутствия переадресации при обращении к формальным параметрам).

В большинстве алгоритмических языков имеется два вида подпрограмм: подпрограммы общего назначения (в паскале они называются процедурами) и функции. Функции следует использовать, если подпрограмма имеет одно выходное значение (или одно основное выходное значение); классическими примерами функций во всех алгоритмических языках являются стандартные математические функции: синус, косинус, абсолютная величина и т. д. Имя функции является не только именем ее алгоритма, но и именем результата; это имя можно использовать в выражениях (как sin, cos, abs, и т. д.) Говорят, что функция через свое имя возвращает единственный (или основной) результат.

Читайте также:
Как в 1с отразить поступление программы 1с

Процедуры в Паскале

Как всегда при изучении подпрограмм, рассмотрим два вопроса: описание процедур и обращение к ним.

Описание процедур

Описание процедуры состоит из заголовка и блока (тела) процедуры:

Пример 3 < Сокращение дроби ></p>
<p>procedure sokr(var c, d: integer); var r: integer;

Пример 3 < Вычитание двух дробей ></p>
<p>procedure raz(a, b, c, d: integer; var

Пример 3 < Деление двух дробей ></p>
<p>procedure del(a, b, c, d: integer; var

Пример 3 write(

58 6. Рекурсивные процедуры и функции

59 В общем случае рекурсией называется ситуация, когда какой-то алгоритм вызывает себя прямо или

60 Таким образом, любая рекурсия обязательно должна содержать два условия: 1) Вычисление результата через

Механизм работы рекурсии 61 Чтобы понять, как будет выполняться эта программа, вспомним, что на

Пример 4 62 Широко известно рекурсивное определение факториала: Решение. В первой строке определения явно

Пример 4 program task 4; var n : integer; < исходное значение ></p>
<p>function

Источник: present5.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru