36525

Параметры - переменные, параметры-значения.Механизм передачи в подпрограмму и из нее

Доклад

Информатика, кибернетика и программирование

Список формальных параметров необязателен и может отсутствовать. Если же он есть то в нем должны быть перечислены имена формальных параметров и их типы например: Procedure SB: Rel; b: Integer; с: Chr; Как видно из примера параметры в списке отделяются друг от друга точками с запятой. Несколько следующих подряд однотипных параметров можно объединять в подсписки например вместо Function F: Rel; b: Rel: Rel; можно написать проще: Function Fb: Rel: Rel; Операторы тела подпрограммы рассматривают список формальных параметров как...

Русский

2013-09-22

28.5 KB

0 чел.

Параметры - переменные, параметры-значения.Механизм передачи в подпрограмму и из нее.

Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например:

Procedure SB(a: Real; b: Integer; с: Char);

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

Function F(a: Real; b: Real): Real;

можно написать проще:

Function F(a,b: Real): Real;

Операторы тела подпрограммы рассматривают список формальных параметров как своеобразное расширение раздела описаний:

все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы

Механизм замены формальных параметров на фактические позволяет нужным образом настроить алгоритм, реализованный в подпрограмме. Object Pascal следит за тем, чтобы количество и типы формальных параметров строго соответствовали количеству и типам фактических параметров в момент обращения к подпрограмме. Смысл используемых фактических параметров зависит от того, в каком порядке они перечислены при вызове подпрограммы. В нашем примере первый по порядку фактический параметр будет возводиться в степень, задаваемую вторым параметром, а не наоборот. Любой из формальных параметров подпрограммы может быть либо параметром-значением, либо параметром-переменной, либо, наконец, параметром-константой.

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

Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память (стек) и передается подпрограмме. Важно учесть, что даже если в качестве фактического параметра указано простейшее выражение в виде переменной или константы, все равно подпрограмме будет передана лишь копия переменной (константы).

Если параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия (фактически в этом случае подпрограмме передается адрес переменной). Изменение параметра-переменной приводит к изменению фактического параметра в вызывающей программе.

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

Итак, параметры-переменные используются как средство связи алгоритма, реализованного в подпрограмме, с внешним миром: с помощью этих параметров подпрограмма может передавать результаты своей работы вызывающей программе.


 

А также другие работы, которые могут Вас заинтересовать

12512. Өрістік транзистор негізіндегі кең жолақты күшейткіштің резисторлы каскадын зерттеу 34.34 KB
  Лабораториялық жұмыс Тақырыбы: Өрістік транзистор негізіндегі кең жолақты күшейткіштің резисторлы каскадын зерттеу. Жұмыстың мақсаты: Жалпы бастау бойынша жалғанған өрістік транзистор негізіндегі кең жолақты күшейткіш каскады элементтерінің схема көрсеткіштеріне...
12513. Изучение движения тела под действием силы тяжести и силы упругости 245.24 KB
  Практическая работа № 9 Тема работы: Изучение движения тела под действием силы тяжести и силы упругости Тема для изучения: Закон сохранения механической энергии для системы тел в которой действуют потенциальные силы. Цель: сравнить максимальное изменение потен
12514. Программно-целевое планирование и его использование в сфере услуг 50 KB
  Программно-целевое планирование – это один из видов планирования, в основе которого лежит ориентация деятельности на достижение поставленных целей. По сути, любой метод планирования направлен на достижение каких-либо конкретных целей. Но в данном случае в основе самого процесса планирования лежит определение и постановка целей и лишь затем подбираются пути их достижения.
12515. ИССЛЕДОВАНИЕ ЧАСТОТНО УПРАВЛЯЕМОГО ЭЛЕКТРОПРИВОДА С АВТОНОМНЫМ ИНВЕРТОРОМ 3.21 MB
  ИССЛЕДОВАНИЕ ЧАСТОТНО УПРАВЛЯЕМОГО ЭЛЕКТРОПРИВОДА С АВТОНОМНЫМ ИНВЕРТОРОМ Методические указания к учебноисследовательской лабораторной работе по курсу Автоматизированный электропривод для студентов горнонефтяного факультета специальности 180400 ЭАПУ Лаборат
12516. ИЗМЕРЕНИЕ И АНАЛИЗ ОБЩИХ ВИБРАЦИЙ 370.5 KB
  ИЗМЕРЕНИЕ И АНАЛИЗ ОБЩИХ ВИБРАЦИЙ Цель работы: 1 закрепить основные теоретические положения о вибрации как об опасном и вредном производственном факторе; 2 научиться оценивать вибрации на рабочих местах и определять эффективность виброизоляции.
12517. Измерение и уменьшение производственного шума 315.5 KB
  Измерение и уменьшение производственного шума: Методические указания к лабораторной работе по дисциплине Безопасность жизнедеятельности / Ю. Н. Хмельницкий Л. Я. Уфимцева Б. В. Мусаткина О. В. Игнатов Е. Н. Рыжкова; Омский гос. унт путей сообщения. Омск 2007. 32 с. В метод...
12518. ПОВЕРХНОСТНОЕ НАТЯЖЕНИЕ ЖИДКОСТЕЙ 123.5 KB
  Тема: ПОВЕРХНОСТНОЕ НАТЯЖЕНИЕ ЖИДКОСТЕЙ Цель: Изучение поверхностного натяжения жидкостей и определение коэффициента поверхностного натяжения. Теория. Рассмотрим силы действующие на молекулы одна из котор...
12519. ИЗМЕРЕНИЕ ТЕПЛОЕМКОСТИ ТЕЛ 101 KB
  Тема: ИЗМЕРЕНИЕ ТЕПЛОЕМКОСТИ ТЕЛ Цель: измерить теплоемкость стаканов и удельные теплоемкости латунного и дюралевого цилиндров Оборудование и принадлежности: установка для проведения измерений. ОПИСАНИЕ УСТАНОВКИ Внешний вид уст...
12520. Установка виртуального сервера и создание базы данных 923.21 KB
  Лабораторная работа № 2 Установка виртуального сервера и создание базы данных. Цель работы: рассмотреть процесс инсталляции ПО необходимого для работы PHP и MySQL. Теоретические сведения Для того чтобы начать работу с платформой PHP5/MySQL необходимо предварительно уст