Програмування в програмі-функції алгоритмів, що розгалужуються

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

 

Приклад 1.3.Змінна y задається наступним виразом

 

y(х) =

 

Тут алгоритм обчислень містить дві галузі і вибір залежить від значення змінної x.

Для програмування алгоритмів, що розгалужуються, у MathCAD є умовна функція if і умовний оператор. Використовуючи ці конструкції можна "змінити" послідовне виконання операторів. У цих конструкціях можуть використовуватися наступні нові поняття.

Вираз відношень.Цей вираз використовується для порівняння двох арифметичних виразів між собою. Вираз відношень записуються у виді :

< вир. А > < знак відношення > < вир. У> ,

де як знак відношення виступають символи, наведені в таблиці 1. Якщо задане відношення виконується, то вираз відношення набуває значення рівне 1 ("істина"), у противному разі - 0 ( "неправда").

Таблиця 1

Знак відношень Символи, що вводяться
= [ Ctrl ] + [ = ]
< [ < ]
> [ > ]
[ Ctrl ] + [ 0 ]
[ Ctrl ] + [ 9 ]
[ Ctrl ] + [ 3 ]
 

Приклад 1.4. Обчислення виразу відношень

 

На відміну від мов програмування можна одразу в одному виразі перевіряти декілька умов шляхом додавання знаків відношень і арифметичних виразів. Цю можливість ілюструє наступний приклад.

Приклад 1.5.

 

Логічні операції.Визначено дві логічних операції, що ставляться між виразами відношень.

Логічна АБО операція . Позначається знаком + і записується у виді

< логіч.вир.1 > + < логіч.вир. 2>

Результат операції дорівнює 0, якщо обидва логічних вирази дорівнюють 0 і дорівнює 1 для всіх інших значень логічних виразів.

Логічна операція ТА. Вводиться знаком * ( у тексті це крапка ) і записується у виді

< логіч.вир.1 > . < логіч.вир. 2>

Результат дорівнює 1, якщо обидва логічних вирази дорівнюють 1 і дорівнює 0 для всіх інших значень логічних виразів ( порівняєте з логічним АБО оператором ).

Логічний вираз.Логічним виразом називається конструкція, складена з виразів відношень, знаків логічних операцій і круглих дужок. Значення логічного виразу обчислюється зліва направо з урахуванням відомого правила про пріорітет операцій. Список пріорітетів ( в порядку спадання ):

*круглі дужки ;

*логічна операція ТА;

*логічна операція АБО.

Задача 1.1. Поясніть порядок обчислення двох нижче наведених логічних виразів:

 

Рекомендація: для однозначного обчислення логічного виразу використовуйте круглі дужки.

 

Умовна функція if.Ця функція записується у виді (символи if вводяться з клавіатури) :

if ( < логіч. вираз. > , < ариф.вираз.1> , < ариф.вираз.2 > )

Правило обчислення умовної функції if : якщо логічний вираз дорівнює 1, то функція набуває значення рівне значенню арифметичного виразу 1 ; якщо логічне вираз дорівнює 0, то функція набуває значення рівне значенню арифметичного виразу 2.

Умовна функція використовується в арифметичних виразах, що стоять у правій частині локального оператора присвоєння.

Приклад 1.6.Реалізуємо алгоритм обчислення функції y(х) прикладу 1.3 у виді

Звернення до цієї програми-функції в тексті документа

 

Умовний оператор.Цей оператор використовується тільки в тілі програми-функції і для його введення необхідно клацнути на кнопці if панелі програмування чи клавіші [ } ]. На екрані з'являється конструкція з двома полями введення, зображена на наступному малюнку.

 

У поле 2 вводиться логічний вираз ( у найпростішому випадку це вираз відношення ). У поле 1 вводиться вираз ( як правило, арифметичний), значення якого використовується, якщо логічний вираз, що перевіряється, набуває значення 1.

Умовний оператор може знаходитися тільки всередині тіла програми-функції. Наприклад :

 
 


У полі 3 задається вираз, значення якого використовується, якщо логічний вираз дорівнює 0. Для введення в поле 3 необхідно :

· вкласти це поле в рамку, що виділяє;

· клацнути на кнопці “otherwise” панелі програмування;

· у полі, що залишилося, введіть відповідний вираз.

Приклад 1.7.Складемо програму-функцію, що обчислює функцію y(x), задану в прикладі 1.3. Для цього введемо опис наступної програми-функції:

Звернення до цієї програми-функції має вигляд

Таким чином, вираз, що стоїть перед словом otherwise виконується тільки в тому випадку, якщо не виконана задана перед цим умова.

У програмі можна використовувати декілька слідуючих один за одним умовних операторів з одним виразом перед словом otherwise.

Приклад 1.8.Складемо програму-функцію для обчислення змінної z по формулі

z( t ) =

У робочий документ введемо опис наступної програми-функції

 

Помітимо, що функція z(t) одержить значення ln(t) тільки тоді, коли не виконуються умови, що записані у двох рядках, які знаходяться вище.

Звернення до цієї програми - функції має вид



Якщо в поле 3 ввести оператор без слова otherwise, то цей оператор буде виконуватися завжди незалежно від виконання заданих вище умовних операторів.