lekcii (Лекции), страница 9

DJVU-файл lekcii (Лекции), страница 9 Информатика (112): Лекции - 1 семестрlekcii (Лекции) - DJVU, страница 9 (112) - СтудИзба2013-09-14СтудИзба

Описание файла

DJVU-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 9 - страница

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

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

В некоторых языках ~С>>С+-, РегЦ допускается описание функций с переменным числом параметров. Тело подпрограммы представляет собой блок и содержит описания локальных и глобальных объектов вместе с совокупностью инструкций, описывающих действия алгоритма. 3.4.2 Вызов функций и процедур. Формальные и фактические па- раметры Особенностью описания подпрограмм является наличие в заголовке так называемых формальных параметров, парамеп>рпзующис тело программы. Этим достигается универсальнОсть пОдпрОграммы пО сравнению с блОкОм. Формальнь>е парамст1>ь> являк>тся лО" кальными обьектами подпрограммы и поэтому они по существу лишь обозначают обьекты подпрограммы и им не отводится памяти при трансляции. Подобно всяким локальным объектам, память для формальных параметров выделяется только при входе в блок подпрограммы. При вызове подпрограммы на место формальных параметров подставляются фактические параметры, так что их значения или ссылки на них замещают формальные параметры в период данного вызова гюдпрограммы.

При другом вызове па место этих же формальных параметров могут подставляться другие фактические параметры, что и обеспечивает динамизм и универсальность подпрограмль В отличие от процедур подпрограммы-функции имеют один явный резулыат, как правило скалярный, явно присваиваемый имени функции. Обычно этот результат оставляется на ог>рсдслснном регистре соответствующего регистрового файла. Всскалярный параметр заменяется ссылкой на пего, которая все>уца скалярна; в Си и расширениях Паскаля тип рсзуль гата функции может быть структурным, Кроме того, признаком хорошего тона яв- ляется использование всех параметров функции как констант, так чтобы результат функции был ее единственным эффектом.

Обращение к функции происходит, как правило, без специальной инструкции вызова в выражении соответствующего типа. В соответствии с парадигмой императивных языков фон Е1еймановского типа вычисление выражения понуждает к выполи< нию все у казучтмые им <1тункции. Указат<..ль <1тункттии, т. е, имя функции с конкретным набором параметров, является таким же эл<льт<',нтом выражения, как константа, п<лреыенная, элемитт масснвтт.

3.4.3 Передача параметров Передача параметров является тем механизмом, с помощью которого устанавливается связь по данным между подпрограммой и внешней средой, из которой происходит обращение к подпрограмме. В современных языках программирования существует несколько способов передачи параметров, различающихся степенью и характером взаимосвязи по данным вызывающей и вызываемой п<тдпрограхлкл. Эти спос:обы разбивая>т на чстыре группы по характерным особенностям передачи, хотя в конкретных языках эти качества могут комбинироваться или отсутствовать в чисток< виде.

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

параметру подпрограммы с вызывающей программой прекращается и, в частности, вызванная подпрограмма лишается возможности несанкционированного доступа к оригинальному значению. Передача но значению может быть охарактеризована как геа<1-оп1у, или, в языках АДА и Р1,<ЯС~Е, квалификатором т.п у соответствующего параметра. В языках Алгол-60 и Алгол «тт (ттредшественттиках Паскаля) передача параметра по значению характеризуется описателем тта1пе, в т< тапа1 Ваатс ВуЧа1. В Паскале передача по значению производится неуказант<елл спецификатора т<аг у соответствующего формального параметра.

Для этого способа конечно же, очень подходят фактические ттараметры-константы. Рассмотрим пример аппроксимации синуса по формуле Тейлора. Всемирно-историческое значение этой формулы в том, что она сводит вычисление трансцендентных аналитически заданных функций к машиннореализуемым алгебраическим, давая экономное полиномиальное приближение (за линейное время, если ттрименить схему Гор<лера). Но эта простая всем известная формула не применяется в вычислениях из-за медленной сходимости ряда, и, как следствие, низкой точности. Вместо нее исполт зуются цепные дроби Вейерпгграсса и экономизованные чеоьппевскис приближения.

ргоягатп Яса1агВуЧа1<те(тири<, оп1рнт): т<аг рт, у, и: геа1; 1ппсФюп этпт(1' наг ~ х: геа1): геа1; Ьеп1п э1п1,: - х — х ~ х . х / 6 0 1 х * х * х * х * х,' 120 0: 1' х:= 2.718; 1 ъпСе1п('х - ', х):, епс1; 1' «)и1 / Ьеп1п р1: 3.11; у: яп$ (р1); х: э1п(р1) тугйе1п(у, ' ',х); епс1. В приведенном примере х передается по значению неуказанием уаг. Поэтому, если раскомментировать строку х: = 2.718;, то значение формального параметра х будет испорчено (в данном случае с л на е!), но испорченное значение не вернется в вызываюшую программу и там л останется равным )г, но если раскомментировать маг в заголовке программы, параметр х станет передаваться по ссылке, что приведет к немеллеш)ому изменению фактического параметра во время работы процедуры одновремешю с формальным параметроъь 3.4.3.2 Передача по результату Так же как и при передаче по значению, при передаче по результату формальный параметр получает память в области данных вызываемой подпрограммы в момент обращения и соответс'Гвую!ций парзметр используется Во всех вычгишсниях как локальная перехи!нная, ему.

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

Передача по результату обычно специфицируется указанием онг или гевп1с. В Паскале (Бейсике) такого описателя нет, но спецификатор наг (Вуйет) позволяет достичь эффекта возврата значения, правда нижеописываемым ссылочным путем. В чистом виде параметры-результаты присутствуют в Р1,~БС~1.. В Фортране переменные по умолчанию передаются комбинированным по значению-результату. Передача выражений и констант по результату бессмысленна и может быть синтаксически некорректной в строго типизированном языке. Передача массивов по значению или результату помимо удвоенного расхода памяти на формальные параметры требует копирования содержимого массива. Ввиду большого размера массива эта форма передачи параметров является неэффективной. Поэтому ее применение должно быть обосновано.

3.4.3.3 Передача по ссылке Этот способ называют так же передачей по адресу, передачей по простому имени, подстановкой параметров. При передаче параметров по ссылке подпрограмме передается адрес 185 об ьекта в вызывающей программе и все обращения к параметру в подпрограмме происходят по этому адресу, так что объект в вызывающей программе заменяет соответствующий формальный параметр, то есть пе производится передача самого значения и возврат результата,. При этом всякие присваивание значения внутри подпрограммы приводит к одноерел~енно,иу измененинэ значения объекта в вызывакяцей программе. При многозадачном или параллельном исполнении это может привести к совершенно другим результатам, нежели при передаче выпгеуквзанными способами.

При передаче по ссылке получается выигрыш во времени (значения не копируются) и в памяти (работа идет с оригинальным значением, которое не дублируется в подпрограмме), за исключением случаев, когда четырехбайтовая ссылка [в1хеоК[ъоЫ~) -- -- 4!) короче двухбайтового целого или однобайтной литеры. В Фортране массивы всегда передаются по ссылке, а переменные -- только если соответствующие формальные параметры заключены в слэши.

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