Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тексти_лекцій_Програмування_ MathCAD.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
261 Кб
Скачать
☆

1.2. Програмування в середовищі Mathcad

Ранні версії Mathcad не мають засобів звичайного програмування. Тим часом, у ряді випадків, коли потрібно скомпонувати ряд різнохарактерних операцій в єдиний програмний блок, вони просто необхідні, оскільки ранжирувані змінні Mathcad не забезпечують повноцінної заміни циклів. У Mathcad 2000 мінімально необхідні засоби програмування включені в систему.

Аж до появи останніх версій системи Mathcad можливості програмування в них були украй обмежені. Фактично система Mathcad допускала побудову лише лінійних програм, реалізовуючи функціональне програмування, в основі якого лежить поняття функції. Функція If і ранжирувані змінні в окремих випадках могли замінити умовні вирази і цикли, але з істотними обмеженнями. Була відсутня можливість завдання завершених програмних модулів.

Можливість створення програмних блоків (модулів).

Засоби програмування зосереджені на палітрі програмних елементів:

,

я ка викликається спеціальною кнопкою на математичній панелі інструментів:

Програмний блок в тексті документа виділяється жирною вертикальною межею, що перетворює його на самостійний модуль.

Модуль може поводитися як безіменна функція без параметрів, але що повертає результат. Крім того, програмний модуль може виконувати роль тіла функції користувача з ім'ям і параметрами.

Інструкції програмних блоків Огляд інструкцій

Набір інструкцій для створення програмних модулів вельми обмежений і містить наступні елементи:

  • Add Line – створює і при необхідності подовжує жирну вертикальну лінію, праворуч від якої в місцях введення задається запис програмного блоку:

;

  • - символ локального привласнення (у тілі модуля):

;

В кінці блоку необхідно вказати ім’я змінної, значення якої необхідно вивести. В наведеному прикладі це змінна b, яка отримала значення 9.

  • if - умовна інструкція. Дозволяє будувати умовні вирази. Вона задається у вигляді:

<Вираз> if <Умова>.

Якщо Умова виконується, то повертається значення Виразу.

Шаблон інструкції:

.

Умова створюється за допомогою логічних операцій і знаків операцій порівяння, які можна віднайти на палітрі:

Яка викликається кнопкою математичної палітри

( - логічне «АБО»,  - логічне «І»,  - логічне «НЄ»)

Приклад.

В наведеному прикладі змінній а присвоєно значення 2 поза програмним блоком. В першій інструкції if Умова полягає в перевірці, чи попадає значення змінної а в проміжок [0; 1]. Оскільки Умова не виконується, то вираз b а ігнорується і не виконується. Управління передається другій умовній інструкції, яка перевіряє Умову -1  а < 0. Вона також не виконується, тому ігнорується вираз b -а і управління передається третій умовній інструкції, в якій Умова а > 1 виконується, а отже вираз b а2 спрацьовує і змінній b присвоюється значення 4.

Якщо в інструкції if необхідно щоб Вираз містив декілька дій, а не одну, як було розглянуто, то необхідно змінити структуру інструкції.

Для цього після того як інструкція буде вставлена в програмний блок

і курсор знаходитиметься на місці Виразу, необхідно вставити інструкцію Add Line, після чого інструкція if набуде виду:

Приклад

Інструкції if можуть бути вкладені одна в одну.

  • otherwise - інструкція іншого вибору (зазвичай застосовується з if). Шаблон інструкції має вид:

і будується у вигляді

<Вираз> otherwize

Якщо Умова інструкції if не виконується, то її вираз ігнорується і виконується умова інструкції otherwize.

Приклад.

Представлені можливі варіанти застосування інструкції if в парі з інструкцією otherwize.

.

  • for – інструкція формування циклу з фіксованим числом повторень, так званих арифметичних циклів, коли наперед відоме число повторень. Вона записується у вигляді:

for <Змінна> Nmin . . Nmax

Цей запис означає, що вираз, поміщений в розташоване нижче місце введення, виконуватиметься для значень Змінної від Nmin до Nmax з кроком +1. Вираз, який повторюватиметься називається тілом циклу.

Змінну лічильника можна використовувати у виконуваному виразі.

Приклад.

де змінна і (лічильник циклу), тобто 5 раз. Причому кожного разу змінна s буде збільшувати своє значення на 1. Даний приклад вираховує суму натуральних чисел від 1 до 5.

  • while – інструкція формування циклу, що діє до тих пір, поки виконується деяка Умова. Використовується для організації так званих ітераційних циклів, коли наперед невідоме число повторень (вихід із циклу визначається Умовою). Інструкція записується у вигляді:

while <Умова>

Виконуваний в циклі вираз (тіло циклу) записується в розташоване нижче місце введення:

.

Тіло циклу повторюватиме своє виконання до тих пір, поки Умова виконуватиметься. Як тільки Умова не виконається цикл зупиняє роботу і управляння передається наступній інструкції.

Приклад.

Підрахувати суму перших додатних елементів вектора.

Пояснення до прикладу.

Вектор V задамо до програмного блоку. А в програмному блоці організуємо обрахування вказаної суми його елементів. Для цього введемо змінну s для накоплювання суми і спочатку її обнулимо. Також введемо змінну і, яка буде використовуватись для звернення до елементів вектора V (відігравати номер елемента вектора). Алгоритм задачі передбачає перебір елементів вектора і порівняння їх з нулем. Якщо черговий елемент вектора більший нуля, то ми його добавляємо до суми. Як тільки зустрінеться перший елемент, який не більший нуля, то цикл повинен закінчити роботу. Очевидно, що ми маємо справу з ітераційним циклом, тобто наперед ми не знаємо скільки елементів нам потрібно перевірити. Тому для організації циклу застосовуємо інструкцію while.

Інструкція s s + Vi виконується таким чином:

До попереднього значення s добавляється значення Vi і отримана сума присвоюється змінній s, тобто кожного разу змінна s збільшує своє значення на величину додатного елементу вектора Vi.

В тілі циклу також присутня ще одна інструкція і  і + 1, згідно якої кожного разу збільшується на 1 номер елементі вектора V.

  • Break – інструкція переривання. Викликає переривання виконання програми всякий раз, як вона зустрічається. Найчастіше ця інструкція використовується спільно з умовною інструкцією if і інструкціями while і for, забезпечуючи перехід в кінець тіла циклу.

Приклади використання програмних модулів.

  1. Заданий вектор А, що складається з 10 елементів. Обчислити суму всіх додатніх елементів вектора.

  1. Обчислити факторіал числа n (n!).

У даному прикладі використана функція користувача Fact, описана у вигляді програмного модуля.

  1. Сформувати послідовність випадкових чисел рівномірно розподіленої випадкової величини на відрізку [0;1], сума яких не перевищує числа 5.