Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Обращение к процедурам (вызов процедур)Содержание книги
Поиск на нашем сайте
Обращение к процедуре является оператором процедуры и имеет вид:
Количество фактических параметров должно равняться количеству формальных параметров. Формальные параметры-значения должны быть совместимы по присваиванию с соответствующими им фактическими параметрами. Последние представляют собой выражения, значения которых присваиваются формальным параметрам при вызове процедуры. Фактический параметр, соответствующий формальному параметру-переменной, представляет собой переменную, тип которой тождественен типу формального параметра. Фактические параметры в списке разделяются запятыми. Пример 2. Программа, предназначенная для решения квадратного уравнения вида {Здесь должно быть описание процедуры sqr_equation примера 1} var p, q, x1, x2: real; roots_are: boolean; begin writeln(‘Введите p и q ’); read(p, q); sqr_equation(p+q, p-q, 1, x1, x2, roots_are); if roots_are then writeln(‘x1=’, x1,’ x2=’, x2) else writeln('корней нет') end. Если параметр должен быть доступен подпрограмме для чтения, то он может быть описан и как параметр-переменная, и как параметр-значение, но использование параметров-значений простых типов имеет преимущества: 1) менее жесткое ограничение на типы - требуется только совместимость по присваиванию, а не тождественность; 2) фактический параметр является выражением, необязательно переменной; 3) информация не может быть испорчена через этот параметр, то есть даже если этот параметр является переменной, то его значение при выходе из подпрограммы остается тем же, что и при входе; 4) параметры-значения в теле подпрограммы можно использовать как локальные переменные. Во время обращения к подпрограммам с фактических параметров-значений снимаются копии, они помещаются в некоторую область памяти, называемую стеком, и подпрограмма работает с этими копиями. К параметрам-переменным и параметрам-константам подпрограмма обращается по адресам, в стек помещаются адреса параметров. Поэтому, если подпрограмме нужен только для чтения параметр структурированного типа, занимающий большой объем памяти, то рекомендуется его передавать как параметр-константу. Все изменения параметров-переменных в теле подпрограммы сохраняются при возвращении в вызывающую программу.
Функции Функция - это подпрограмма, в результате выполнения которой происходит вычисление значения скалярного или строкового типа. Заголовок функции имеет вид
В разделе операторов описания функции должен быть хотя бы один оператор присваивания:
Значение последнего выражения, присвоенного имени функции, будет возвращено в точку вызова функции. Но использовать имя функции в качестве переменной, которой присвоено значение, недопустимо.
|
||||||||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 223; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |