Дьяконов В. Maple 7 - Учебный курс (1185900), страница 38
Текст из файла (страница 38)
Па рис. 7П представлены примеры задания двух функций пользователя от двух переменных и построение их графиков с помогдьк) функции р!оСЗ(). ~ Задание функций пользователя двух переменных и построение их графиков Г > Уз (Х,У) ->-ООЯ (Х*У) гт(ХЕУЬЗ) Г Рис. 7.1. Примеры задания функций попьзоеателя двух переменных с построением их графиков ВНИМАНИЕ При задании функций пользоеателя рекомендуется просмотреть их графики е нужном диапазоне изменения аргументое. К сожалению, наглядными яепяются только графики функций одной и двух переменных. Импликативные функции Другой важный класс функций, которые нередко приходится задават)ь — импликативные функции, в которых связь между переменными задана неявно, в виде какого-либо выражения. Самый характерный пример такой функции — это выражение для задания окружности радиуса г: х' + у' - г'.
Функции пользователя 257 Ъ Итак, импликативные функции записываются как уравнения. Соответственно их можно решать с помощью функции зо1че, Следующие примеры иллюстрируют задание уравнения окружности в общем и в частном (численном) виде: » Рвртт х"2+у 2 и"2; ссл)с);=х +у = и » вцЬв(х а,терт); а+уыс з з во1че(2): (а=у-у + г,у =у, с =и), (у=у, с=ц а= ч' у + г ! » терт): х 2»у"2 25: глсруУ:= хз + у' = 25 » вцЬ5(х"4,(ирт)); 16+уз = 25 » во1че(1'); 3, -3 Для графической визуализации импликативных функций служит функция 1ир1)с(1р1о1 пакета р!огз.
11а рис. 7.2 представлено задание двух нмпликативных функций п построение их графиков. Рис. 2.2. Задание двух имппикагиеных функций и построенйе их графиков 258 Урок Т. Типовые средства программирования В данном случае задано построение двух эллипсов.
Верхний — это окружность, сплюснутая по вертикали, а второй — наклонный эллипс. Условные выражения Для подготовки разветвляющихся программ в Марте-язв)к программироваттия включен оператор 1Т, позволяющий создавать следующуто конструкцию; 11 <Условие сравнения> тпеп <Злененты> )е)11 <Условие сравнения> слеп <Злененты>) )е)ве <Злененты>/ 11; В вертикальных чертах ( ~ указаны необязательные элементы двиной конструкции. Следутощих два вида условных выражений чаше всего используются иа практике: О 11 <Условие> Феп <Элеиенты 1> 11 — если Условие вытюлияется, то исполняются Элеиенты 1, иначе ничего ие выполняется; О 11 <Условие> 1)тел <Элененты 1> е)ве <Элененты 2> Л вЂ” если Условие выполияется, то исполняются Элеиенты 1, иначе псполияются Элементы 2.
В задании условий используются любые логические конструкции со знаками сравнения («, 55 », -, -, <>) и логические операторы ап6, ог и пес, конструкции с которыми возвращают логические значения сгые и Та)зе. Рассмотрим следующий простой пример: >х: 5: > 11 х<0 степ ргтп11 Иедат1че ) 11: №дацче > х:-1: > 11 х<0 слеп рг1пт('Иедаттче') 11: В этом примере анализируется значение х. Если оцо отрицательно, то с помощью функции вывода ргт па иа экран выводится сообщение «Хейастче >.
Л вот если х иеотрицательио, то ие выводится никакого сообщения. В другом примере если х пеотрицательно, то выводится сообщение «Роз)1)че»: > х:-.5: > 11 х<0 1)еп рг1п11'Неда11че') е)ве ргтп11 Роыттче') 11; Феда)тра >х: 1: > тт х<0 тлел ргтп11'Иеда11че') е)ве рг1пт( Ров1мче ) 11: Роаглче Приведем еще один пример, показывающий особую форму задания конструкции 1Т-1)теп-е)ае-Р1: > хт--5: > '11' 1х«0, ргтп11'Иедастче').Ргтп11'Ровтттче'» г №яагт'че Циклы Гог и иг))йе 259 ( >х:1: > '1Г (х<0, рг(ит('Иерас1че'),рг1лс('Ров111че') В Ров(Г(че В этой конструкции вида '11 '(Условие.
Выражение). Выраиение2) если Условие выполнятся, то будет исполнено Выракение1, в противном случае будет исполнено Выраяение2. Ввиду компактности записи, такая форма условного выражения нередко бывает предпочтительна, хотя она и л(енее наглядна. На рис. 7.3 представлено применение данной конструкции для моделирования трех типов сигналов. Рис.
7.3. Прниенение конструкции с функцией И дня нодеяировання сигналов К сожалению, функции на базе конструкции 17 не всегда корректно обрабатываются функциями символьной математики. Поэтому надо тщательно контролировать полученные в этом случае результаты. Циклы Фог и аййе Зачастую необходимо циклическое повторение выполнения выражения заданное число раз или до тех пор, пока выполняется определенное условие.
Мар1е 7 имеет обобщенную конструкцию цикла, которая, задается следующим образом: 260 Урок 7. Типовые средства программирования )тог <паве>( )тгоа <ехрг)>( )Со <ехргз>( )ЬУ <ехрг2>) (иМ)е <ехрга>( О) <лгатевепт лепоепсе> о): Здесь паве — имя управляющей переменной цикла, ехрг1, ехрг2 и ехргЗ вЂ” выражения, задающие начальное значение, конечное значение и шаг изменения перелгенной паве, ехрг4 — выражение, задающее условие, пока цикл (набор объектов между словами г(о и (х)) будет въшолняться. В ходе выполнения цикла управляющая переменная меняется от значения ехрг1 до значения ехрг2 с шагом, заданным ехргЗ.
Если блок Ьу <ехрг2> отсутствует, то управляющая переменная будет меняться с шагом +1 при ехрг1<ехрг2. Это наглядно поясняет следующий пример: > Гог 1 ггов 1 Со 5 ао рг1пт(1) ос: 1 2 3 4 В нем выводятся значения переменной 1 в ходе выполнения никла. Нетрудно заметить, что она и впрямь лтеняется от значения 1 до значения 5 с шагом +1. Следующий пример показывает, что границы изменения управляющей переменной можно задать арифметическими выражениями: > тог 1 тгои 7/(2+5) то 2+3 Со рг(пт(1) оо; 1 2 3 4 5 Л еще один пример показывает задание г(икла, у которого переменная цикла меняется от значения 1 до 10 с шагол) 2: > Гог 1 тгои 1 то 10 ЬУ 2 Со Рг1пт(1) од: 1 3 5 7 9 В этом случае выводятся нечетные числа от 1 до 9.
Шаг люжет быть и отрица- тельным: > 1ог 1 Ггсм 9 Со 1 ЬУ .2 до рг1пв(1) оо; 9 7 5 3 1 Циклы(ог и ваде 261 Следует отметить, что если ехрг1>ехрг2 задать заведомо невыполнимое условие, например, ехрг1>ехрг2 и положительное значение шага, то цикл выполняться не будет. Цикл можно прервать с помощью дополнительного блока ИИ(]е «ехрг4>. Цикл с таким блоком выполняется до конца или до тех пор, пока условие ехрг4 истинно. > Гог 1 Ггов 1 1о 10 Ьу 2 иМ)е 1<6 оо рг(пт(() оо; 1 3 5 Таким образом, конструкция цикла в Мар]е-языке программирования вобрала в себя основные конструкции циклов гог и ИМ)е. Есть еще одна, более специфическая конструкция цикла: [Гог <лаве>) )!и <ехрг1>) )иии)е <ехр 2>) Оо <е(а(евел( ееооелсе> оо: Здесь ехрг1 задает список значений, которые будет принимать управляющая переменная паве.
Цикл будет выполняться, пока не будет исчерпан список и пока выполняется условие, заданное выражением ехрг2. Следующий пример иллюстрирует сказанное: > Гог ( (и [1,2,5.-1,7.12] ео рг(ит(() огд 1 2 5 -1 7 12 > Гог ( (л [1,2,5.-1.7,12] ии()е 1>0 оо рг(л((() оо; В цикле этого вида управляющая переменная может меняться произвольно. Циклы могут быть вложенными, Это иллюстрирует следующий пример, создающий единичную матрицу на базе заданного массива М: > И; аггау(1..3,1..3); И:=а у[1..3,1..3,[ )) > Гог 1 Ео 3 ео Гог 3 Ео 3 Оо И[(,З]: О;(Г ( 5 Еьеи И[(,5]: 1 Г(: оо оо; > еуа)в(И): 262 Урок Т. Типовые средства программирования Этот пример имеет не более чем познавательное значение, поскольку для создания такой матрицы Мар!е 7 имеет функцию 16епс1су, с помощью которой функция аггау позволяет сразу создать единичную матрицу: > аггау(1..3.1..3.1оепт)ту): В заключение отметим, что возможна упрощенная частная конструкция цикла типа ып1) е: ищ)е ехрг Оо атасаее оо: Здесь выражения вСаСвец выполняются, пока выполняется логическое условие ехрг.
Пример такого цикла: > п: ); и:= 1 > ивт)е гм)6 Оо п;-2*п ое; л:= 2 л:=4 и:=8 л:= 1б В этом примере идет удвоение числа л с начальным значением и =1 до тех пор, пока значение л меньше 16. Операторы пропуска и прерывания Иногда бывает нужным пропустить определенное значение переменной никла. Для этого используется оператор пехс (следующий).
Приведенный ниже пример иллюстрирует применение оператора пехс в составе выражения те-21 для исключения вывода значения 1- -2. > Гог 1 )п 11.2.3,.2.4) оо 11 1 .2 Сьеп пехт е) ве рг1пты) 11 оо; 1 2 3 4 Другой оператор — ))геа)с — прерывает выполнение фрагмента программы (или цикла). Его действие поясняет слегка модифицированный предшествующий пример: > гаг 1 1п 11,2,3..2,4) Оо 11 1-.2 Свел Ьгеах е)ве ргтпе(1) 11 ое: 1 2 3 Процедуры и процедуры-функции 263 В данном случае при значении т = — 2 произошло полное прекращение выполнения цикла. Поэтому следующее значение 4 переменной т присвоено не было и это значение на печать не попало. Любой из операторов ццтт, гуопе или есор обеспечивает также прерывание выполнения текущей программы (в частности, цикла), но при этом окно текущего документа закрывается.