Обозначение результата функции
Обозначение результата функции
Для понимания текстов функций rho, theta и distance в классе POINT необходимо еще одно соглашение.
Любой язык программирования, поддерживающий функции (подпрограммы, возвращающие результат) должен предусматривать нотацию, позволяющую установить в теле функции значение, возвращаемое в результате ее вызова. В качестве значения, возвращаемого функцией, в данной книге будет использоваться предопределенная сущность (entity) Result. (Полное определение сущности будет дано в конце этой лекции.)
Например, тело функции rho содержит следующее присваивание
Result := sqrt (x^2 + y^2)
Result - зарезервированное слово, которое может присутствовать только в теле функций. В функции, возвращающей результат типа T, Result рассматривается наряду с другими сущностями и ему может быть присвоено значение с помощью инструкций присваивания, как это показано выше.
При любом вызове функции в качестве результата будет возвращаться последнее присвоенное Result значение. Оно всегда определено благодаря правилам языка (они будут детально рассмотрены позже), требующим обязательной инициализации Result в начале каждой подпрограммы путем присваивания значения, предопределенного типом T. Для типа данных REAL инициализирующее значение равно нулю и следующая функция:
non_negative_value (x: REAL): REAL is
-- Возвращает значение аргумента при x>0; ноль при x<=0
do
if x > 0.0 then
Result := x
end
end
будет всегда возвращать вполне определенное значение (как указано в комментарии к заголовку), несмотря на то, что условная инструкция не содержит части else.
Дискуссия в конце данной лекции обсуждает логику использования соглашения Result в сопоставлении с другими приемами, такими как инструкции возврата. Хотя это соглашение касается всех языков программирования, оно является особенно важным при ОО-подходе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Элементы буквального результата
Элементы буквального результата Если элемент в теле шаблона не является инструкцией XSL или элементом расширения, процессор XSLT должен рассматривать его в качестве элемента буквального результата. Это означает, что элемент должен трактоваться буквально и копироваться в
Возврат результата потока
Возврат результата потока Выше отмечено, что вызов pthread_exit(), завершающий ожидаемый поток, может передать результат выполнения потока. То же действие может быть выполнено и оператором return потоковой функции, которая из прототипа ее определения должна возвращать значение
7. Программа на месяц до результата
7. Программа на месяц до результата Некий тренинг, который вы ведете лично. Четыре недели подряд обучаете вашего клиента, ведете его за руку до мастерства, задаете домашние задания, проверяете их. Это своего рода коучинговая программа. Возможно, в вашей сфере сработает
Обозначение узлов подсхемы
Обозначение узлов подсхемы Ситуация станет яснее, когда мы установим, что эти номера содержатся в подпрограмме и не являются номерами узлов основной схемы. Обратитесь к разделу «Использование подсхем при моделировании операционных усилителей» в главе 5 для подробного
Создание рельефа и обозначение границ участка
Создание рельефа и обозначение границ участка С помощью программы внесем в проект неровности местности и обозначим рельеф участка. Однако сначала для привязки объектов рельефа к местности определим и обозначим на плане границы участка.Создадим рельеф поверхности
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел "4.5.2. Функции Geometry" обсуждает несколько функций, которые создают новые конфигурации из
7. Когда требуется редактирование результата в fb2-редакторах
7. Когда требуется редактирование результата в fb2-редакторах 1. Когда вы хотите внести в полученный fb2 документ тэги и возможности, пока отсутствующие в конвертере (см. п.1.4.)2. Когда вы конвертировали документ с выключенной опцией «Обработка «проблемных» символов»: amp;, › и
7. Функции
7. Функции Мы рассмотрели, как объявлять переменные (глава 3), как писать выражения (глава 4) и инструкции (глава 5). Здесь мы покажем, как группировать эти компоненты в определения функций, чтобы облегчить их многократное использование внутри программы. Мы увидим, как
Литеральные элементы результата
Литеральные элементы результата Как мы уже видели из множества примеров, преобразования состоят не только из элементов языка XSLT. Например, в шаблоне<xsl:template match="b"> <В/></xsl:template>элемент B не принадлежит пространству имен XSLT и, следовательно, не считается
12.1.2. Сохранение выходного результата
12.1.2. Сохранение выходного результата Если нужно сохранить полученные результаты, следует переадресовать их в файл. В приведенном ниже примере выходной результат перенаправляется в файл с именем results.txt. В качестве входного используется файл oops.txt.$ tr -s "[a?z]" < oops.txt >
18.3.5. Проверка результата копирования файла
18.3.5. Проверка результата копирования файла А теперь осуществим проверку того, успешно ли прошло копирование файла. Если команда cp не скопировала файл myfile в файл myfile.bak, отображается сообщение об ошибке. Обратите внимание, что в сообщении об ошибке фигурирует команда `basename
История с астрономией, или процесс важнее результата Дмитрий Вибе
История с астрономией, или процесс важнее результата Дмитрий Вибе Опубликовано 01 декабря 2013 После одной из недавних лекций я услышал упрёк, что слишком много внимания уделил истории вопроса, из-за чего у меня меньше времени осталось на описание
Присваивание функции результата
Присваивание функции результата Присваивание функции результата является интересной языковой проблемой, обсуждение которой было начато ранее в данной лекции. Стоит изучить ее подробнее ввиду ее важности и для языков, не использующих ОО-подход.Рассмотрим функцию -