Главная » Просмотр файлов » Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании

Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 82

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

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

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

При выявлении ими ошибки, как правило, предусматривается вывод соответствующего сообщения. Для этого используется функция ЕЯЯОК: ЕВРОП(ехрг 1, ехрг 2, ...) где ехрг 1, ... — ряд выражений (возможно, пустой). Наиболее часто ЕКЯОЯ выводит просто строковое сообщение об ошибке, например ЕЯЯОЯ('в(ппдв'). Полное сообщение об ошибке имеет вид: Еггог, (1п паве) вггдпд, Приведем пример процедуры, в которой предусмотрен вывод сообщения об ошибке при задании переменной х < 0 (файл р5): > г:= ргос (х) ге х<0 гпеп еггог "1пча11<) чаггавзе х: «1", х е1ае х"(1/2) епг) гГ епо ргос; /': = ргос(х) 1( х < 0 (Ьеп еггог "(пча)Ы чапаЫе х: % 1", х е)ае х" (1/2) епд й" епд ргос > г(3.)с 1.732050808 > г(-3.); Еггог, (гп г) гпча11о чагсаЫе х: -3. 615 1О.З.

Процедуры и процедуры-функции > таатеттотг ")пчай() чапаЫе х: %1", -3 > Хаатехсерььоог Г, ")пча!1() чапаЫе х: %1", -3 Эта процедура вычисляет квадратный корень из числа х. При х < 0 выводится заданное сообщение об ошибке. Еще раз обращаем внимание читателя на учебный характер данного примера, поскольку вычисление квадратного корня (в том числе из комплексных и отрицательных действительных чисел) реализовано встроенной функцией вг)П.

10.3.9. Ключи е процедурах В объявление процедуры можно включить ключевые слова, вводимые словом орехова ореес) Иногда их называют раси(иряюи(ими ключами. Предусмотрены следующие ключи: аггочч — определят процедуру-оператор в нотации ->; Ьц)1()п — определяет функцию как встроенную; са11 ех(егпа) — задает обращение к внешним программным модулям; соруп9Ы вЂ” защищает процедуру от копирования.

)папе — определяет процедуру как подчиненную (возможно не для всех процедур — см. справку). 1оас)еп)еп)Ьег)Чапе — загружает нужный для определений процедуры модуль (см. также опцию цп!оа() и детали в справке); орега!ог — объявляет процедуру — функциональный оператор;вув(еп) — определяет процедуру как системную, геп)еп)Ьег — определяет таблицу памяти лля процедуры; (гасе — задает трассировку процедуры; цп1оас)еп)еп)Ьег)Чап)е — выгружает нужный для определений процедуры модуль (см. опцию !оа()). 10.3.10. Ключ гегпеп)Ьег Ключ геп)еп)Ьег обеспечивает занесение результатов обращений к процедуре в таблицу памяти, которая используется при исполнении процедуры.

Функция ор позволяет вывести таблицу (файл рб): > т:=ртос(х) орттооа тееевьетг х"3 еос): > г(2) г > т(3) ю 27 > ор(4,еча1(Г) ); !аЫе(]2 = 8, 3 = 27]) 616 Глава 10. Типовые средства нрогуамзнарования Ключ геп)егпЬег особенно полезен при реализации итерационных процедур. К примеру, в приведенной ниже процедуре (без использования ключа гегпегпЬег) время вычисления и-го числа Фибоначчи растет пропорционально квадрату и: > Гз=ргос(п) 1Г п<2 С)зеп п е1ае Г(п-1)+Г(п-2) Гь епз3( ,Г: = ргос(и) !Г и < 2 !Ьеп и е(ве Ци — 1) + Г(и — 2) епд 1( епд ргос > Сьве (Г(30) ); 4.891 > Г(30] з 832040 Вычисление г(30) по этой процедуре на ПК с процессором Реп(!цп) 4 НТ 2,6 ГГц в системе Мар1е 9.5 время вычисления составляет менее 5 с — см.

контроль этого времени с помощью функции бизе (результат в секундах). Стоит добавить в процедуру ключ геп)еп)Ьег, и время вычислений резко уменьшится: > геасагсз > ге з=ргос (и) оротопа гевевьетз ьг п<2 сдеп п е1ае ге (п-1) +ге (п"2) г1 еп<) з > Ге (30) з 832040 > Спае(те(30)); О.

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

С помощью функции еча((папзе) можно проверить, является ли функция с именем пегие встроенной: > еча1((уре) з ргосо орбоп Ьнзугзи, 274 епд ргос > еча1 (р<1пс) ) ргосО орйоп ЬшИи, 235 епд ргос Числа в теле процедур указывают системные номера функций.

Следует отметить, что в новой версии Мар!е 9 они существенно отличаются от принятых в предшествующих версиях (даже Мар!е 8). 10.3.11. Ключ вув1егп Этот ключ придает процедуре статус системной. У таких процедур таблица памяти может быть удалена. У обычных процедур таблица памяти не удаляется и входит в так называемый «мусорный ящик» (8агЬайе со11ес(ог).

617 10.3. Процедуры и процедуры-функции 10.3.12. Ключи орега1ог и аггове Эга пара ключей задает процедуре статус оператора в «стрелочной» нотации (->). Это достаточно пояснить следующими примерами: > о:=ргос(х,у) орг1оп орегагог, аггон: х-асгг(у) ела[ о:=(х,у) -~ х — ~у > о(4,2); 4-~Г2 > о[4,2.); 2.585786438 10.3.13. Ключ 1гасе Ключ (гасе задает вывод отладочной информации: > о:=ргос(х,у) орсьоп Ггасе, аггон; х-ас[гс(у) епс[; о: = Ргос(х, у) орбоп [гасе, иге[я«; х -зцг[(у) епд Ргос > о(4,2.); (-> епсег о, агав = 4, 2.

2.585786438 <- ехьс о (пон ас Гор 1ече1) = 2.585788438) 2.585786438 10.3.14. Ключ соруг)0$)1 Этот ключ защищает тело процедуры от просмотра. Это поясняют следующие два примера: > о:=ргос (х, у] х-асгс (у) епс[г о: = Ргос(х, у) х — зцП(у) епд ргос > оо:-ргос(х, у) орсьоп Соруг1оасг х-асгс [у) еп<)г оо:= ргос(х,у) ... епд Ргос > оо[4,2.); 2.585786438 Нетрудно заметить, что во втором примере тело процедуры уже не просматривается.

Для отмены защиты от просмотра можно использовать оператор Иег(все(нег[)овергосс2). 10.3.15. Общая форма задания процедуры Выше мы рассмотрели основные частные формы задания процедур. Все они могут быть объединены в общую форму задания процедуры: паве:=ргос(<аговес>) 4 объявление процедуры 1оса1<паеч>; $ объявление локальных переменных О1оьа1<паея>( объявление глобальных переменных савв<овес> $ объявление структур цае ... 1п ... епо' цае 618 Глава Ш Типовые средства программирования орс1олв<пвед>) бевсттрс1оп<зстьпдвед>; <всасед> епа) (или епс)с) 4 объявление расширяющих ключей 4 объявление комментарий 4 выражения — тело процедуры $ объявление конца процедуры 10.4. Средства отладки программ 10.4.1.

Средства контроля и отладки процедур Для контроля и опыадки процедур прежде всего надо уметь вывести их текст. Для этого, что уже отмечалось, служит команда рттвс(паве]; где пате — имя процедуры. Перед тем как использовать ее, надо также исполнить команду > тпсетеасе(четЬовертос=2,ртессурт1пс=1,четв1оп)) 1, 3, с1аввтс иотхвьеес 1всеттасе, мар1е 9.50, и1вбонв, )сод 9 2004 Вц116 10 1б3356 Ее смысл детально будет пояснен ниже. Пока же отметим, что эта команда обеспечивает полный вывод текста процедур библиотеки.

Встроенные в ядро процедуры, написанные не на Мар(е-языке, в полном тексте не представляются. Поясним это следующими примерами: > ртьпС (еча1Г) с ртос() орс1ов Ьц11ств, тевеп1Ьет; 171 епб ртос > рттпС(ет1) с ртос(хсса1деЬтаас) 1оса1 Ве х, 1в х, зт, в1, хт, хь; ортьоп 'Соруттдае (с) 1994 Ьу СЬе цп1нетвтту от Иатет1оо. )(11 ттдЬСв тезетчеб.'с тв Патдз <> 1 СЬЕП ЕттОт ЯЕХрЕСС1пд 1 атдцВЕВС, дОС $1", Латдз е1те Суре(х, 'совр1ех(с1оас)') СЬеп еча1Т('етГ'(х)) е11Т х = 0 СЬев 0 е1те суре(х, '1вт1п1су') сьеп 1т суре(х, 'сх 1ветвтсу') савв ппбе1твеб + цпбесепеб*1 е1т1 Суре(х, 'цпбееспеб') СЬеп МцветьсТоо1в:-ТЬтоицпбегтпеб(х] е1те Суре(ае(х), 'твт1п1Су'] СЬел Сору51дп(1, Ке(х)) е1>Т суре(х, '1вадтлату') Спев х е1ве Спе1л1Су + Свт1в1су*1 епс) тт е1те суре(х, 'цпс)ее>пес]') СЬев Ицвет1сТоо1вс-тптоицлбеттвеб(х, 'ртеветне' = 'ахея') е1тт аувЬо11с/атдл (х) = -1 СЬеп -ете(-х) е1ве 'ете' (х] евс) тт ело ртоо Эта форма охватывает все описанные выше частные формы и позволяет готовить самые сложные и надежно работающие процедуры.

Читателям-программистам стоит детально изучить по справке возможности этой формы задания процедур, а также возможности конструкции цве ... ]и ... епс) цзе. 10.4. Средсюиаа оииадки программ Здесь вначале выполнен вывод сокращенного листинга встроенной в ядро процедуры еча1(, а затем выведен полный листинг процедуры вычисления функции ошибок ег(. Эта функция имеет довольно короткую процедуру — многие важные функции и операторы задаются гораздо более сложными и большимн процедурами. Их просмотр очень полезен читателям, которые занимаются программированием — листинги процедур на языке Мар(е являются наглядными примерами профессионально выполненных программ. Но вернемся к функции )и1е)1асе. Она служит для управления выводом и задается в виде 1исаггасе 1 аг91, аг92, ...

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

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

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

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