Програмування в програмі-функції алгоритмів, що розгалужуються
Нагадаємо, що в алгоритмах, що розгалужуються, є присутнім кілька галузей обчислювального процесу. Вибір конкретної галузі залежить від виконання (чи невиконання) заданих умов на значення змінних алгоритму.
Приклад 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, то цей оператор буде виконуватися завжди незалежно від виконання заданих вище умовних операторів.