Дьяконов В. Maple 7 - Учебный курс (Дьяконов В. Maple 7 - Учебный курс.djvu), страница 11
Описание файла
DJVU-файл из архива "Дьяконов В. Maple 7 - Учебный курс.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 11 - страница
Основным признаком функции является возврат значения в ответ на обращение к ней по имени (идентификатору) с указаггиезг списка параметров функции. Например; > 2*юп11,): 1.682941970 э 2*ззп11); 2 ейп(1) Обратите внимание на особую роль десятичной точки — здесь она служит указанием к выполнению вычисления значения з)п(1.0) (или, что то же самое, з)п(1.)). А вот синус целочисленного аргумента 1 не вычисляется — считается, что вычисленное значение менее ценно, чем точное значение гйп(1).' ' В данном случае надо понимать, что Мар1е предпочнтает иметь с дело точнымн эиаченинмн функпнй, Логично, что точное значение си са от 1 эаписываетсн в видев)п(1). — П .ред.
Основы работы с Иер~е 7 в диалоговом режиме 55 Ради единства терминологии мы будем пользоваться расширительным понятием функции, относя к нему и те объекты, которые в некоторых языках программирования именуют процедурами или комаидамп. Например, слова р1о1 и р1о13б мы также будем называть функциями, которые возврапгают графики аргументов, Под командами же мы будем подразумевать прежде всего команды, содержащиеся в меню. Помимо функций в математических системах для записи математических выражешгй используются специальные знаки — операторы. К примеру, вычисление квадратного корпя часто записывается с помощью его сггсциальног о знака — ч.
Достаточно хорошо известны операторы сложения +, вычиташи —, умножения *, деления l и некоторые другие. Операторы обычно пспользуготсн с операндами в виде констант или переменных, например в записи 2*(3+4) числа 2, 3 и 4 — это операнды, а знаки * и + — операторы. Скобки используются для изменения порядка выполнения операцш). Так, без иих 2>3е4=10, тогда кнк 2*(3+4)=14, поскольку вначале вычисляется выраекепис в скобках. Пожалуй, самым распространенным оператором является оператор присваивания :". Он используется для залапия переменным конкретных значений, например: > х:-у; х:= и > у:-ю у;=г > ю=2: з:=2 >х; 2 > 2 Этот простой пример наглядно иллюстрирует эволгоцшо псрехгегиггвх и особукг роль оператора присваивания в системе Мар)е.
В частности, в этом примере переменные х, у и х взаимосвязаны с помощью операций присваивания. Поэтому задание значения 2 переменной х приводит к тому, гто и переменные у и х принимают то же значение. Другой распространенный оператор — оператор равенства - — используется для задания равенств и логических условий (например, а Ь), указания областей изменения переменных (например, 1 1..5 означает формирование диапазона изменения 4 от 1 до 5) и определения значений параметров в функциях и командах (например, со1ог=ЫасМ для задания черного цвета у линий графиков).
Операторы сами по себе результат не возвращают. Но оии, наряду с функциями и своими параметрами (операндамп), позволяют конструировать математические выражения, которые при их вычислении также возвращают результат. В силу этого математические выражения, содержащие операторы и операнды, могут бьвть параметрами функций. Выражения в Мар1е бывают очень простыми (например, имена переменных х и у или константы 1 и 2), а могут содержать ввногие тысячи знаков. С позиции канонов символьной математики квадратный корень из двух уже является основным результатом вычислений. Поэтому такая функция обычно не вычисляется в численном виде, а выводится в естественном виде с применением знака квадратного корня >(. Для вычисления в привычном виде (в виде десятичного числа с мантиссой и порядком) надо воспользоваться функцией 56 Урок Ц Первое знакомство с системой Мар(е 7 еча) Р(здг7(2)) — эта функция обеспечивает вычисление символьного выраже- ния, заданного ее параметром (числом 2).
Обработка и индикация ошибок Прп работе с системой Мар1е 7 надо строго придерживаться правил корректного ввода выражепцй и иных объектов Мар!е-языка, называемых сш>таксисом языка. Однако, как гласит русская пословица, пс ошибается только тот, кто ничего ие делает. Да>хе у опытиого пользователя возможны ошибки в ходе ввода выражеиий и задания алгоритмов вычислений. Алгоритмические, но синтаксически корректиыс ошибки часто могут це распозпаваться системой. Например, если в выражении а*збп(х) вы вместо аргумента х взяли аргумент Ь, то есть записали а*з>п(Ь), то такую ошибку Мар!е 7 рвспозиать ие может, пбо сиитаксически как а*з!п(х), так и а*зал(Ь) абсол>отио корректны.
Если вы перепутаете синус с косинусом и запишете а*сов(х), то такая ошибка также ие будет распознана, ПРИМЕЧАНИЕ Ошибки в записи выражений, описывающих те или иные алгоритмы вычислений, не нарушающие синтаксическую корректност~, системой Мар(е 7 не распознаются. Контроль за такиии ошибками целиком лежит на пользователе. Приведем еще одцц характерный пример ошибки, которук> Мар1е 7 ис может распозпать. Вводя выражение Х/У*7, мы можем предположить, что ато означает Х/(У*7). Одпако в Мар(е 7 приоритет операций дслеипя и умпожстшя одшшков.
Позтому Мар)е 7 вначале делит Х ва У, а затем полученный результат умножает ца 7: > Х/У*7: > з Х7 У О>цибки такого рода называют семаитпческпмп. Если бы мы ис проверилп вывод с помощью оператора вычисления предыдущего выра>кеппя (Ф), то эта ошибка осталась бы иераспозиапиой.
Выявление и устрапеипс семантических ошибок выполняется иа этзпе отладки вычислений и прогрзмм. ПРИМЕЧАНИЕ Используйте блокировку вычислений с помощью знака двоеточия только атом случае, когда еы абсолютно уверены в правильности записи выражения, Иначе вы можете не заметить вкравшейся в вычисления серьезной ошибки. В нашем примере мы получили бы верный результат, заключив выражение У*Х в круглые скобки. Как обычно, оии предиазиачеиы для задания явного приоритета выполнения операций — в нашем случае вначале будет вычислено выражсиис в скобках (Уе7), а затем уже Х будет поделено иа это выражение: > Х/(Уь7): Х У2 Основы работы с пар(е 7 в диалоговом режиме 57 Но вернемся к ситуации с синтаксическими ошибками, которые система Мар!с 7 распознает с помощью встроенного в нее синтаксического анализатора. Например, если вы задали неправильное пмя функц)(и, то это будет опознано синтаксическим анализатором и вычисления не будут выполн>)ться. Мар!е 7 просто повторит выражение в строке вывода: 5оп(1.0); 5оп( !.0) В этом примере вместо имени функцпи 5(п введено ошибочное пмя зоп.
Мар!е воспринимает его как некую введенную пользователем функциональную зависимость и потому просто повторяет запись и не выводит сообщение об ошибке. А вот другая ситуация — имя функции 5(п введено верно, но вместо дссятпчпой точки при задании вещественного числа 1.0 использована запятая; 5(П(1,0); Еггог, ((п 5(п) ехресбпд 1 эгдигпепй до( 2 В данном случае Мар!е 7 «знает», что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1,0) означает, что растяпа-пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. Этого синтаксический анализатор Мар!е 7 стерпеть уже не смог, и он отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет).
Неправые ошибку, и синус единицы будет благополучно вычислен: 5(П(1.0); .8414709848 А вот еще одна типичная ситуация — в последовательности выражений опущен знак-разделитель (двоеточие или тачка с запятой): > Х:=2: У:=3! 1:=4: Еггог, пй55(пд орега(ог ог ' Тут Мар!е 7 нс только реагирует на ошибку, но и пытается подсказать, что именно пропущено, Более того, маркер ввода в виде мигающей вертикальной черточки будет помо(цен на место ошибки и вы сможете тут же устранить ошибку, Правда, подсказки не всегда точны — в нашем случае явно пропущен разделитель в виде двоеточия, а Мар!е 7 сообщает о пропуске точки с запятой, Впрочем, откуда системе знать, хотим мы вывести результат операции т': 4 сразу (для этого нужен разделитель в виде точки с запятой) или откладываем на потом (с помощью символа двоеточия), Вот еще один пример характерной ошибки — три знака * подряд: > 2«"!*3*5(п(1.); Еггог, '*' ипехрес(ес( Здесь Мар)е 7 подсказы)шет, что один оператор * надо убрать — два знака * подряд означают вполне законный вариант оператора — возведение в степень.
При этом маркер ввода вновь указывает место ошибки, Проанализируйте следующие простые примеры: > 2« "3*5(п(1 ): б,7317б7858 58 Урок 1. Первое знакомство с системой Иар(е 7 > 2 3*в(п(1.0): 6,731767078 > 2"(3*в(о(1.0)): 5 7533г)2735 В э) он примере Мар1е 7 вначале вычисляет функцию синуса, затем производит возведение в степень и лишь потом операцию умножения. Впрочем, такой приоритет операппй принят практически во всех системах компьютерной математики и в языках программирования.