Главная » Просмотр файлов » Дьяконов В. Maple 7 - Учебный курс

Дьяконов В. Maple 7 - Учебный курс (1185900), страница 39

Файл №1185900 Дьяконов В. Maple 7 - Учебный курс (Дьяконов В. Maple 7 - Учебный курс.djvu) 39 страницаДьяконов В. Maple 7 - Учебный курс (1185900) страница 392020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

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

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

При вызове процедуры выражением вида: пасе(Фактические паранетри) фактические параметры подставляются на место формальных. Несоответствие фактических параметров типу заданных переменных ведет к сообщению об ошибке й к отказу от выполнения процедуры. В качестве примера ниже приведена процедура вычисления модуля комплексного числа г — в данном случае это единственный параметр процедуры: > иоос:"ргос(г) > ека) т(ецгс(яе(г)"2+!и(к) 7)) > еос; «тот(с:= ргос(к) сттаИ(ес(г((%(ку>2+ 5(к)"2)) спг(ргос 264 Урок Т. Типовые средства программирования ПРИМЕЧАНИЕ После ввода заголовка процедуры подстрокой ввода полвляется сообщение: киагптпд, ргеюатше епб о( тира(». Оно указывает на то, что ввод листинга процедуры не закончен и должен быть продолжен до тек пор, пана не будет введено завершающее слово епб листинга процедуры.

Если после этого слова поставить символ точки с запятой, то листинг процедуры будет выведен на экран дисплея. Теперь для вычисления модуля достаточно задать обращение к процедуре вобс(2), указав вместо 2 конкретное комплексное число: > любо(3.+1*4.): 5.000000000 Нетрудно заметить, что при знаке; после завершающего слова епб текст процедуры повторяется в строке вывода (в общем случае в несколько ином виде). Если это повторение не нужно, после слова епб надо поставить знак двоеточия. Обратите также внимание на то, что для обозначения действительной н мнимой частей процедуры в ее тексте появились готические буквы.

Оператор возврата значения ЙЕТОкй Как отмечалось, процедуры, которые возвра)цают значение результата в ответ на обращение к ним, во многом тождественны функпням. Будем называть их процедурами-функциями. Обычно процедура возвращает значение последнего выражения в ее теле пли выражен)ш, намеченного к возврату специальным оператором йЕТОПМ: > побсагргос(а) > еча)Т(зцге(йе(а)"2+1п(г) 2)); > йЕТОЙМ(Ж) епб; )п п(ч((а)>2+ В(з) 2)); КЕТЕ)к)ч)(%) евс)ргос > воде(3.+1»4.): 5,000000000 Параметром оператора йЕТОПМ может быть любое выражение. В Мар)е не принято выделять процедуры-функции в какой-то отдельный класс. Действует правило — если не использован оператор йЕТОПМ, процедура возвращает значение последнего выражения в ее теле.

Для устранения выдачи значений выражений внутри процедуры-функции после них просто надо установить знак двоеточия. Статус переменных в процедурах и циклах Переменные, которые указываются в списке параметров (наприьтер, д в нашем случае), внутри процедуры являются локальными. Это означает, что изменение их значений происходит лишь в теле процедуры, то есть локально. За пределами тела процедуры эти переменные имеют то значение, которое у них было до использования процедуры.

Это хороизо поясняет следующий пример: > гевсвгега: 1; л: 1 Процедуры и процедуры-функции 265 > В(и)с: ргес(7) > еча11(ецгг(йе(7) 2+1В(7)"2)): > еие; тог(с;= ргос(7) ета!((ыр((%(7)"2 + 3(7)"2) ) епй ргос > воцс(3.>1*4.): 5.000000000 > 7; 1 Нетрудно заметить, что внутри процедуры 7 3 + 1*4, тогда как вне ее значение 7 = 1. Такнл! образом, имена переменных в списке параметров процедуры люгут совпадать с именами глобальных переменных, используемых за пределами процедуры, Переменные, которь(м впервые присваивается значение в процедуре, также относятся к локальнь(м, Кроме того, переменные, применяемые для организации циклов, являются локальными.

Все остальные переменные — глобальные. Объявления переменных локальными с помощью оператора 1оса1 Если в теле процедуры имеются операции присваивания для ранее определенных (глобальных) переменных, то изменение их значений в ходе выполнения процедуры создает так называемый побочный эффект. Он способен существенно изменить алгоритм решения сложных задач и, как правило, недопустим. Поэтому Мар1е-язык программирования имеет встроенные средства для исключения побочных эффектов. Встречая такие операции присваивания, Мар!е-язык корректирует текст процедуры и вставляет в нее объявление переменных локальными с помощью ключевого слова 1оса1 и выдает предупреждающую надпись о подобном применении: > ГЕ5(дГС:В: 0; т:=0 > васс; рюс(7) > в:-ека)Г(ейгс(йе(7)"2+1В(г)"2) ):йЕТцйй(в) > евй! ууагп)пй, 'т' 'в !тр(!С(цу еес(ате (осв! (о ргосееиге 'тоес' тоде:= ргос(7)!оса1 т; т:= еча(((зцг((%(7)'2+ 3(7)"2)); ЕЕТ()рл)(т) еп(1 ргос > вовс(3.+1*4.): 5.000000000 > В; 0 Обратите внимание на то, что в тело процедуры было автоматически вставлено определение 1оса) В, задающее локальный статус переменной В.

Оператором ргцпс можно вывести текст процедуры( > рг(пылки(С); рго„.(7) 10ФЙ т;,т: еУВЩВ(17((%(ву>2+3(7)~2))! 1(ЕТ(Ш((т) е)к(рп)с 266 урок т. типовые средства программирования Объявления переменных глобальными с помощью слова фоЬа! Говорят, что запретный плод сладок! Что бы ни говорили о нежелательности работы с глобальными переменными, бывает, что их применение желательно или даже необходимо. Чтобы сделать переменные внутри процедуры гпобальтгыми, достаточно объявить их с помощью ключевого слова 919Ьа1, после которого перечисляются идентификаторы переменных.

Следующий пример поясняет применение оператора 91оЬа! в процедуре: > а:-1;Ь: 1; и:=1 Ь:= 1 тдг !тиос!к,у) > 91оЬа1 а,Ь; > аг х"2:Ь; у 2; > ЯЕТОПМ(зцгг!а+Ы ): > еп0; гй;= ргос(я у) о1оЬв! а, !т; а:= х 2: ст:= у2; НЕТ[)тч)ч!(яс)п(а + гт) ) евс[ Ргос > Гд!3,4); 5 > [а,Ь1; (9, 163 В приЕ)ере переменным а и Ь вначале присвоены значения 1. Поскольку они в процедуре объявлены глобальными, то внутри процедуры они принимают новые значения х' и у'. В результате при выходе из процедуры они имеют уже новыс значения.

Это и есть побочный эффект при исполнении данной процедуры. Если пользователь не знает (или не помнит), что та или иная процедура имеет побочный эффект, то он рискует получить самые неожиданные (и неверные) результаты своих вЫчислений. ~ ПРИМЕЧАНИЕ Следует отметить, что нельзя делать глобальными переменные, указанные в списке параметров процедуры, поскольку они уще фактически объявлены локальнымн.

Такая попытка приведет к появлению сообщения об ошибке следующего вида «Еггог, агдищепС апб 9!оЬа! 'к' паче Сье заме паве». При зтои соответствующие переменные останутся локальныии. Функция вывода сообщений об ошибках ЕЙЙОЙ При профессиональной подготовке процедур пользователь должен предусмотреть их поведение при возможных ошибках, Например, если он готовит процедуру или функцию, вычисляющую квадратный корень из действительных чисел, то надо учесть, что такой корень нельзя извлекать из отрицательных чисел (будем, исключительно в учебных целях, считать, что комплексные числа в данном примере недопустимы), Процедуры и процедуры-функции 2б7 Для контроля за типом данных обычно используются различные функции оценки и тестирования. При выявлении ими ошибки, как правило, предусматривается вывод соответствующего сообщения.

Для этого используется функция ЕккОП: Еааоа(ехрг 1. ехрг 2....) где ехрг 1, ... — ряд выражений (возможно, пустой). Наиболее часто ЕйПОП выводит просто строковое сообщение об ошибке, например ЕййОП( зтгцпдз'). Полное сообщение об ошибке имеет вид; Еггог. (1п паве) а(г~пд Приведем пример процедуры, в которой предусмотрен вывод сообщения об ошибке при задании переменной х с 0: > Г: рюс (х) 11 х<0 Хьеп еггог "1пча114 ча>1аые х: 11, х е1ае х (1/2) епо 11 епе ргос 7";= ргос(х)1Ех< 0(Ьеп епог >(она!к(чаг)аЫе х; 901", хе!ае кцп(х) евс$1Г ел<аргос Г(3.): 1.732050808 > 1(-3.): Епог, ((п Г) (пча00 чапаЫе х: -3. > 1аеееггог; "(вча!Ы наг1аЫе х: >З!", -3. > 1аатехсер11оп; 7; >(пна!1а) чапаЫе х: а>а!", -3.

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

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

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

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