Программирование и решение задач в пакете MathCAD

       

Программирование разветвляющихся алгоритмов в подпрограмме-функции


Напомним, что в разветвляющихся алгоритмах присутствует несколько ветвей вычислительного процесса. Выбор конкретной ветви зависит от выполнения (или не выполнения) заданных условий на значения переменных алгоритма.

Для программирования разветвляющихся алгоритмов в подпрограмме-функции Mathcad можно использовать условную функцию и условный оператор if. Используя эти конструкции, можно «изменить» последовательное выполнение операторов. Условная функция if была рассмотрена в п. 3.2, поэтому перейдем к изучению условного оператора if.

Условный оператор. Этот оператор используется только в теле П-Ф и для его ввода необходимо щелкнуть на кнопке if  палитры программирование. На экране появляется конструкция с  двумя  полями ввода, изображенная на рис. 5.2.1.

                                                

 

Рис. 5.2.1.  Структура условного оператора  if

В поле 2 вводится логическое выражение УСЛ (в простейшем случае это выражение отношений). В поле 1 вводится конструкция  ВЫР1 (как правило, арифметическое выражение),  которая выполняется, если проверяемое логическое выражение  принимает значение 1. Если УСЛ = 0, то ВЫР1 не выполняется. Это соответствует условной структуре, называемой  ЕСЛИ – ТО.

Для получения условной структуры ЕСЛИ – ТО – ИНАЧЕ используется оператор otherwise, вводимый с палитры ПРОГРАММИРОВАНИЕ, в поле которого размещается конструкция ВЫР2, которая выполняется, если проверяемое логическое выражение  принимает значение  0 (см. рис. 5.2.2). Оператор otherwise непосредственно следует после условного оператора if.



                                       

           

Рис. 5.2.2. Реализация структуры  ЕСЛИ – ТО – ИНАЧЕ

                                      

Для ввода ВЫР2  в поле оператора   otherwise необходимо:

·      выделить поле, стоящее после оператора if;

·      щелкнуть на кнопке otherwise палитры программированиЕ;

·      в  появившееся поле оператора   otherwise ввести необходимую конструкцию ВЫР2.


 
            Пример 5.2.1. Составим описание П-Ф, вычисляющей функцию y(x), заданную в примере 3.2.1. Описание и вызов П-Ф приведены на рис. 5.2.3. ¨
                        

Рис. 5.2.3. Реализация разветвляющегося алгоритма примера 3.2.1
Таким образом, конструкция, стоящая перед словом otherwise выполняется только в том случае, если не выполнено заданное перед этим условие. В программе можно использовать несколько следующих друг за другом  условных операторов с одним  оператором otherwise.
Пример 5.2.2. Составим описание П-Ф для вычисления переменной  z(t)  по формуле
                            z(t) =

Описание  П-Ф  и ее вызов приведены на рис. 5.2.4.
                                    
                          

Рис. 5.2.4. Реализация разветвляющегося алгоритма примера 5.2.2
Из описания видно, что функция z(t) получит значение ln(t) только тогда, когда не выполняются условия, записанные в двух вышестоящих строках тела П-Ф.
  
Внимание! Если в строке 3 ввести просто ln(t), то это выражение  будет вычисляться всегда вне зависимости от выполнения заданных выше условных операторов.
Задание 5.2.1. Составьте описания П-Ф, реализующих следующие разветвляющиеся алгоритмы:
 
А. y =
   Б.

где  
.  
   
Рассмотрим использование условного оператора  if  при программировании более сложных разветвляющихся алгоритмов. Выделим следующие  варианты.
Вариант 1. При выполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD.
В этом случае необходимо выделить  поле 1 условного оператора (см. рис. 5.2.2), щелкнуть на кнопке Add line палитры ПРОГРАММИРОВАНИЕ нужное число раз и заполнить появившиеся поля (рис. 5.2.5).
                    
                           


            Рис. 5.2.5. Вариант 1 реализации  условного оператора
            Вариант 2. При невыполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD.


В этом случае необходимо выделить  поле  оператора otherwise, щелкнуть на кнопке Add line палитры ПРОГРАММИРОВАНИЕ нужное число раз и заполнить появившиеся поля (рис. 5.2.6).
                   
Рис. 5.2.6. Вариант 2  реализации  условного оператора
Пример 5.2.3. Составьте описание П-Ф, вычисляющей значения двух полиномов x(t), y(t) нулевой или первой степени. Порядок полиномов задается переменной n. Если n < 0
или n > 1, то значения полиномов равны 0. Описание П-Ф приведено на рис. 5.2.7. Обратите внимание, что коэффициенты полиномов передаются через массивы a, b, а в полях условных операторов находятся не арифметические выражения, а локальные операторы присваивания.  ¨
            

Рис. 5.2.7. Реализация алгоритма примера 5.2.3
Пример 5.2.4. Даны два числа x, y. Составить описание П-Ф, которая переменной x присваивает максимальное значение из этих двух чисел, а y – минимальное. Описание приведено на рис. 5.2.8. Выходным параметром является массив v, нулевой элемент которого содержит новое значение x, а первый элемент – новое значение  y. Вызов этой П-Ф показан на рис. 5.2.9.  ¨
            

Рис. 5.2.8. Реализация алгоритма примера 5.2.4

Рис. 5.2.9. Вызов подпрограммы-функции arrangement
Задание 5.2.2. Даны три числа a, b, c. Составить П-Ф, реализующую следующий алгоритм. Если
, то все числа заменить их квадратами, если
, то каждое число заменить максимальным значением из этих трех чисел, в противном случае — сменить знаки у чисел.
Задание 5.2.3. Координаты точки на плоскости задаются двумя числами x, y. Составить П-Ф, вычисляющую номер четверти на плоскости, в которую попала точка.
Задание 5.2.4. Длина сторон треугольника задается числами  a, b, c. Составить П-Ф, вычисляющую значение целой переменной n по следующему правилу: n = 3, если три стороны равны; n = 2, если любые две  стороны равны; n = 1, если все три стороны имеют разную длину.

Содержание раздела