Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 89

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 89 страницаН. Джехани - Язык Ада (1988) (1160771) страница 892019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 89)

Сопоставления параметров вызова подпрограммы вычисляются в некотором порядке, не определенном в языке. Аналогично правила языка не определяют, в каком порядке значения параметров вида 1л ом( или ои( копируются обратна в соответствующих фактических параметрах (если это делается). П и шшы 373 64.1. СОПОСТАВЛЕНИЯ ПАРАМЕТРОВ Тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра. Фактический параметр, сопоставляемый с формальным параметром вида 1и, должен быть выражением; оно вычисляется до вызова.

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

Если фактический параметр имеет форму преобразования типа, то перед вызовом для параметра вида (п ои1 переменная преобразуется к заданному типу; после (нормального) окончания тела подпрограммы формальные параметры вида (п оф или ом( преобразуются обратно в тип переменнои.(Тип преобразования должен быть тем же, что и у формального параметра.) Для параметров скалярного и ссылочного типов проверяются следующие ограничения: ° Перед вызовом для параметра вида (п или (и ом( проверяется принадлежность фактического параметра подтипу формального параметра. ° После (нормального) окончания тела подпрограммы для параметра вида (п оц1 или ом( проверяется принадлежность значения формального параметра подтипу фактического параметра. В случае преобразования типа значение формального параметра преобразуется обратно и проверяется результат преобразования.

В каждом из вышеуказанных случаев выполнение программы ошибочно, если проверяемое значение неопределено. Для параметров других типов всех видов проверка осуществляется до вызова, как для скалярных и ссылочных типов; после возврата никаких проверок не делается.

Если результат хотя бы однои проверки отрицателен, то при вызове подпрограммы возбуждается исключение СОМЗТЯА1НТ ЕЯЯОЯ. Примечание. Если обозначение типа формального параметра задает ограниченный подтип, то для индексируемых типов и типов с дискриминантами достаточно проверки перед вызовом (проверка после возврата была бы избыточной), так как ни границы массива, ни дискриминанты не могут быть изменены.

Если зто обозначение типа задает неограниченный индексируемый тип, то формальный параметр ограничен границами соответствующего фактического параметра и никакой проверки не требуется (ни до вызова, ни после возврата, см. 3.6.1). Аналогично не требуется никакой проверки, если обозначение типа обозначает неограниченный тип с дискриминантами, так как формальный параметр ограничен точно так же, как соответствующий фактический параметр (см. 3.7Л). Ссылки: вид 6.1, вызов подпрограммы 6.4, выражение 4.4, вычисление 4.5, вычисление имени 4.1, граница массива 3.6, дискриминант 3.7.1, имя 4.1, индексируемый тип 3.6, исключение СОНЗТЯА1НТ ЕЯЯОЯ 11.1, неограниченный индексируемый тип 3.6, неограниченный тип с дискриминантами 3.7.1, неопределенное значение 3.2.1, обозначение типа 3.6.2, ограничение 3.3, ограниченный подтип 3.3, ошибочныи 1.6, переменная 3.2.1, пбдтип 3.3, преобразование типа 4.6, согласованный 6.3.1, сопоставление параметров 6.4, тип 3.3, фактический параметр6.4, формальный параметр 6.1.

6.4.2. ОПУЩЕННЫЕ ПАРАМЕТРЫ Если спецификация параметра включает выражение по умолчанию для параметра вида (п, то соответствующие вызовы подпрограммы не обязательно содержат сопоставления дпя такого параметра. Если в вызове сопоставление для таких параметров опускается, то оставшаяся часть вызова, следующая за начальными позиционными сопоставлениями, должна использовать только именованные сопоставления. Глава В 374 Для любого опущенного сопоставления параметров выражение по умолчанию вычисляет. ся до вызова, а значение результата используется как неявный фактический параметр.

Примеры процедур со значениями по умолчанию: рппгенпге АСТ1ЧАТЕ< РЯОСЕ58: Ь РЯОСЕ$5 МАМЕ: АЛЕВ: Ь РВОСЕЗЗ МАМЕ ы МО РЯОСЕЗЗ; тчл(т: ь ооялт<бм .= о.о; РВ<бй: Ь ВООЬЕАМ:= РАЬЗЕ); ргееедпге РА<В(ЬЕРТ, й<ОНТ: РЕЯЗОМ МАМЕ ."= пем РЕЯЗОМ); Примеры нх вызовов: АСТ<ЧАТЕ<Х); АСТ<ЧАТЕ(Х, АРТЕЯ > УЕ АСТ1ЧАТЕ(Х, ЧУА<т => 60.0, РЯ<ОВ > ТЯОЕ); Аст1чАте(х, т, 10.0, РАЕЗе!1 РА(Я; РА<й(ЬЕРТ > иепг РЕЯЗОМ, Я(6НТ => пеги РЕЯВОМ): Примечание. Если выражение по умолчанию используется для двух или более параметров в групповой спецификации параметров, то это выражение по умолчанию вычисляется один раз для каждого опущенного параметра.

Поэтому в примере два вызова процедуры РА1В эквивалентны. Ссылки: вид 6.1, вызов подпрограммы 6.4, выражение по умолчанию для формального параметра 6.1, вычисление 4.5, именованное сопоставление параметров 6.4, позиционное сонг> ставление параметров 6.4, спецификация параметра 6.1, фактический параметр 6.1.

6.5. ФУНКЦИИ Функция — это подпрограмма, которая возвращает значение (результат вызова функции). Спецификация функции начинается с зарезервированного слова Мпсбол, а параметры, если они есть, должны иметь вид 1л (указанный явно или неявно). Операторы тела функции (исклю. чая операторы программных модулей, вложенных в тело функции) должны содержать один или несколько операторов возврата, определяющих возвращаемое значение. Исключение РВОЭВАМ ЕййОй возбуждается, если выход из тела функции осуществляет. ся не через оператор возврата. Это исключение не возбуждается, если выполнение функции прекращается в результате исключения. Пример: (ппеепп ООТ РВОООСТ(ЬЕРТ. й(6НТ: ЧЕСТОВ! Ь(пгп ЯЕАЬ и ЗОМ; ВЕА1.:= 0.0; Ьеа1п СНЕСК(ЬЕРТййЗТ = й<6НТ'ВЯЗТ епл (.ЕРГ1АЗТ = й<ОНТ'(АЗТ); Ьг 3 <и 1.ЕРГЯАМОЕ Ьпр 5ОМ:= ЗОМ + ЬЕРТ(дгй<ОНТ(З)1 ° гп< Ьер; В ЗЦМ( епв ООТ РЯОООСТ; Ссылки: вид 6.1, возбуждение исключений 11, вызов функции 6.4, исключение 11, исключение РВОЭВАМ ЕВВОВ 11.1, оператор 5, оператор возврата 5.8, спецификация функции 6.1, тело функции 6.3, формальный параметр 6.1, функция 6.1.

6.6. ПРОФИЛЬ ТИПА ПАРАМЕТРОВ И РЕЗУЛЬТАТА. СОВМЕЩЕНИЕ ПОДПРОГРАММ Два раздела формальных параметров называются имеющими одинаковый профиль типа параметров тогда и только тогда, когда они имеют одинаковое число параметров, а в каждой позиции соответствующие параметры имеют один и тот же базовый тип. Подпрограмма или вход имеет одинаковый профиль типа параметров и результата с другой подпрограммой или П л мы входом тогда и только тогда, когда оба имеют одинаковый профиль типа параметров, и либо оба являются функциями с одним и тем же базовым типом результата, либо оба функциями не являются. Один и тот же идентификатор подпрограммы или знак операции может быть использован для нескольких спецификаций подпрограмм. В этом случае идентификатор или знак опе. рации называется совмещенным; подпрограммы, которые имеют этот идентификатор или знак операции, тоже называются совмещенными и, следовательно, могут совмещаться друг с дру.

гом. Как поясняется в разд. 8.3, если две подпрограммы совмещаются дрУг с другом, то одна иэ них может скрыть другую, только если обе подпрограммы имеют одинаковый профиль типа параметров и реэультатао (см. 8.3, где описаны другие требования, необходимые для скрытия). Вызов совмещенной подпрограммы неоднозначен (и поэтому неправилен), если ее имя, число сопоставлений параметров, типы и порядок фактических параметров, имена формальных параметров(при использовании именованных сопоставлений параметров] и тип результата (з(ля функций) не позволяют идентифицировать единственную (совмещенную) спецификацию подпрограммы. Примеры совмещенных подпрограмм: рзееаеате РОТС(: (ШТЕОЕй): Ртееекизе Р(ЛТК: 8Тйпчй)т рзееебезе 8ЕПТ!МТ: Сбьбй); ртаеызие ЕЕП8(ОНА(.: ыйн'П; Примеры вызовов: РОТ(26)з Р(ЗТ( по розарио штю(йи(тт пете ): 8ЕТ(ТЯФТ => йЕО)„' 8ЕТ(8(6ШАк > ЯЕО): 8ЕТХОзОЗГ(йЕО))т — 6ЕТ (НЕС) может быть неоднозначныи, так как — — может обозначать значение типа СОЬОй и типа Примечание.

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

Этих неоднозначностей мож. но избежать несколькими способами: использовать квалифицированные выражения для некоторых или для всех фактических параметров и результата, если он есть; имя такой подпро. граммы можно задавать более точно расширенным имвнем; наконец, такая подпрограмма может быть переименована.

Ссылки: агрегат 4.3, базовый тип 3.3, вид 6.1, вход 9.5, вызов функции 6.4, выражение по умолчанию для формального параметра 6.1, знак операции 6.1, идентификатор 2.3, имено. ванное сопоставление параметров 6.4, квалифицированное выражение 4.7, литерал 4.2, непра. вильный 1.6, описание переименования 8.5, пакет 7, параметр подпрограммы 6.2, подпрограмма 6, подтип 3.3, подтип результата 6.1, скрытие 8.3, совмещение 8.7, спецификация подл(и> граммы 6.1, тип 3.3, фактический параметр 6.4.1, формальный параметр 6.1, функция 6.5.

Характеристики

Тип файла
DJVU-файл
Размер
4,41 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее