Главная » Просмотр файлов » 1611678431-0e68e83522cb9d960ac896aa5d90854d

1611678431-0e68e83522cb9d960ac896aa5d90854d (826635), страница 11

Файл №826635 1611678431-0e68e83522cb9d960ac896aa5d90854d (Билеты - Ответы) 11 страница1611678431-0e68e83522cb9d960ac896aa5d90854d (826635) страница 112021-01-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Обычно подпрограмма также имеет имя, по которому её можновызвать, хотя ряд языков программирования допускает использование и неименованныхподпрограмм. В языках высокого уровня описание подпрограммы обычно состоит по меньшеймере из двух частей: заголовка и тела. Заголовок подпрограммы описывает её имя и, возможно,параметры, то есть содержит информацию, необходимую для вызова подпрограммы. Тело —набор операторов, который будет выполнен всякий раз, когда подпрограмма будет вызвана.Вызов подпрограммы выполняется с помощью команды вызова, включающей в себя имяподпрограммы. В большинстве современных языков программирования команда вызовапредставляет собой просто имя вызываемой подпрограммы, за которым могут следоватьфактические параметры (см.

ниже).В следующем примере на языке Паскаль подпрограмма subprog вызывается из основнойпрограммы трижды:program SubProgExample;// Описание подпрограммы subprogprocedure subprog; // Заголовок, включающий имя подпрограммыbegin // начало тела подпрограммыWriteLn('Bye');end; // конец тела подпрограммыbeginWriteLn('Hello');subprog; // 1-й вызовsubprog; // 2-й вызовsubprog; // 3-й вызовend.Результатом выполнения такой программы станет вывод строки «Hello» и трёх строк «Bye».Некоторые языки программирования (например, Паскаль, Ада, Модула-2) допускают описаниевложенных подпрограмм, то есть помещение подпрограмм внутрь других подпрограмм.

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

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

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

Раздел описаний содержит те же подразделы,что и раздел описаний программы: описания констант, типов, меток, процедур,функций, перменных. Исполняемая часть содержит собственно операторыпроцедур.Формат описания процедуры имеет вид:procedure имя процедуры (формальные параметры);раздел описаний процедурыbeginисполняемая часть процедурыend;Формат описания функции:function имя функции (формальные параметры):тип результата;раздел описаний функцииbeginисполняемая часть функцииend;Формальные параметры в заголовке процедур и функций записываются в виде:var имя праметра: имя типаи отделяются друг от друга точкой с запятой.

Ключевое слово var можетотсутствовать (об этом далее). Если параметры однотипны, то их имена можноперечислять через запятую, указывая общее для них имя типа. При описаниипараметров можно использовать только стандартные имена типов, либо именатипов, определенные с помощью команды type.Список формальных параметровможет отсутствовать.Вызов процедуры производится оператором, имеющим следующий формат:имяпроцедуры(список фактических параметров);Список фактических параметров - это их перечисление через запятую. Привызове фактические параметры как бы подставляются вместо формальных,стоящих на тех же местах в заголовке. Таким образом происходит передачавходных параметров, затем выполняются операторы исполняемой частипроцедуры, после чего происходит возврат в вызывающий блок. Передачавыходных параметров происходит непосредственно во время работыисполняемой части.Вызов функции в Турбо Паскаль может производиться аналогичным способом,кроме того имеется возможность осуществить вызов внутри какого-либовыражения.

В частности имя функции может стоять в правой части оператораприсваивания, в разделе условий оператора if и т.д.Для передачи в вызывающий блок выходного значения функции в исполняемойчасти функции перед возвратом в вызывающий блок необходимо поместитьследующую команду:имя функции := результат;При вызове процедур и функций необходимо соблюдать следущие правила:количество фактических параметров должно совпадать с количествомформальных;соответствующие фактические и формальные параметры должнысовпадать по порядку следования и по типу.Заметим, что имена формальных и фактических параметров могут совпадать.Это не приводит к проблемам, так как соответствующие им переменные всеравно будут различны из-за того, что хранятся в разных областях памяти.

Крометого, все формальные параметры являются временными переменными - онисоздаются в момент вызова подпрограммы и уничтожаются в момент выхода изнее.Рассмотрим использование процедуры на примере программы поискамаксимума из двух целых чисел.var x,y,m,n: integer;procedure MaxNumber(a,b: integer; var max: integer);beginif a>b then max:=a else max:=b;end;beginwrite('Введите x,y ');readln(x,y);MaxNumber(x,y,m);MaxNumber(2,x+y,n);writeln('m=',m,'n=',n);end.Аналогичную задачу, но уже с использованием функций, можно решить так:var x,y,m,n: integer;function MaxNumber(a,b: integer): integer;var max: integer;beginif a>b then max:=a else max:=b;MaxNumber := max;end;beginwrite('Введите x,y ');readln(x,y);m := MaxNumber(x,y);n := MaxNumber(2,x+y);writeln('m=',m,'n=',n);end.Побочный эффектПобочным эффектом функции называется любое изменение функцией состояния программнойсреды, кроме возвращаемого значения: изменение значений глобальных переменных, выделениеи освобождение памяти, ввод-вывод и тому подобного.

Теоретически наиболее правильнымявляется использование функций, не имеющих побочного эффекта (то есть таких, в результатевызова которых возвращается вычисленное значение, и только). В функциональной парадигмепрограммирования любая программа представляет собой набор вложенных вызовов функций, невызывающих побочных эффектов. Наиболее известный язык программирования, реализующий этупарадигму — Лисп. В нём любая операция, любая конструкция языка, любое выражение,кроме константы, являются вызовами функций. Наиболее полно парадигма функциональногопрограммирования реализуется в языке Хаскелл.Побочные эффектывс, 10/31/2010 - 02:36 — techЕсли в теле процедуры (функции) используется некоторая нелокальная переменная,т.е.

такая переменная, которая описана в основной части программы, то могутнаблюдаться непредвиденные последствия.Пример. Пусть функция f(x) имеет такой вид:function f(x: real): real;beginv := v * x;f := sqrt(v) + xend;т.е. в процессе работы функция f изменяет некоторую нелокальную величину v.Рассмотрим теперь два выражения, которые вычисляются в программе: f(x) + v и v + f(x).Эти выражения дадут разные результаты, т.к. в первом случае к f(x) прибавляется ужеизмененное значение v (в процессе работы f), а во втором случае к первоначальномузначению v добавляется f(x).Вторая опасность заключается в неправильномпеременных в качестве формальных параметров.использованиипараметров-Пример.

Найти 5-й член последовательностиan + 1 = 3an – 2,a1 = 1.Опасно оформлять функцию в видеfunction f(var a, n: integer): integer;var i: integer;beginfor i := 1 to n doa := 3 * a – 2;f := aend;Так, если обратиться к этой функции оператором b := f(1, 5), будет «испорчена»константа 1, т.к. в ячейку памяти (первый фактический параметр), содержавшую ранееединицу, функция f поместит текущий член последовательности, и при дальнейшейработе программы вместо 1 будет использоваться значение a5. Такие ошибки бываеттрудно найти, поэтому полезно придерживаться следующего правила: в функциях неиспользовать параметры переменные.26.

Механизм параметров, ключевые и позиционные параметры, способы подстановкипараметровПара́ метр в программировании — принятый функцией аргумент. Термин «аргумент»подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в какомкачестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр,который определен в спецификации функции. Для усвоения разницы можно запомнить термин«параметризованная функция».Фактический или формальныйПо способу применения различают:фактический параметр — аргумент, используемый как значение (число, символ и т.

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

Тип файла
PDF-файл
Размер
19,07 Mb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

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