Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота1.doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
246.78 Кб
Скачать

Ранжируванні змінні та матриці

Масивами (arrays) називають упорядковані послідовності чисел, чи елементів масиву. Доступ до будь-якого елемента масиву можливий за його індексом, тобто номеру в послідовності чисел (в Прикладі 8 а — це масив, ai — його елемент). Застосування масивів надзвичайно ефективно в математичних розрахунках.

Приклад 8. Одновимірний масив (вектор)

a :=

а0 = 14

a1 = 1.4

а2 = 4.7

У Mathcad умовно виділяються два типи масивів:

  • вектори (одноіндексні масиви, Приклад 8), матриці (двохіндексні, Приклад 9) і тензори (багатоіндексні);

  • ранжируванні змінні (range variables) — вектори, елементи яких певним чином залежать від їхнього індексу.

Приклад 9. Двовимірний масив (матриця)

A :=

A0,0 = 0.1

A2,0 = 7

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

  • Введіть ім'я перемінної масиву (а).

  • Натисніть кнопку Subscript (Нижній індекс) зі значком хn на панелі Matrix (Матриця), або введіть [.

  • У з’явившийся праворуч знизу від імені масиву місцезаповнювач введіть бажаний індекс (0).

Якщо після цього ввести знак чисельного висновку, то праворуч від нього з'явиться значення нульового елемента вектора, як показано в другому рядку Прикладу 8.

Щоб одержати доступ до елемента багатоіндексного масиву (наприклад, елементу a1,0 матриці а з Прикладу 9):

  • Введіть ім'я перемінної масиву (а).

  • Перейдіть до введення нижнього індексу, ввівши [.

  • Введіть у місцезаповнювач індексу перший індекс (2), кому (,) і в з’явившийся після коми місцезаповнювач введіть другий індекс (0).

В результаті буде отриманий доступ до елемента, як показано в останньому рядку Прикладу 9.

Програмування

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

Принцип програмування в Mathcad

За допомогою елементів програмування можна визначати змінні і функції (як показано в Прикладі 10).

Приклад 10.

f (х) := │ "negative" if x<0

│ "positive" if x>0

│ "zero" otherwise

f(1) = "positive"

f(-1) = "negative"

f(0) ="zero"

Традиційне програмування, спрощений варіант якого застосований у Mathcad і здійснюється за допомогою панелі інструментів Programming (Програмування), має ряд істотних переваг, що в ряді випадків роблять документ більш простим :

  • можливість застосування циклів і умовних операторів;

  • простота створення функцій і змінних, потребуючих декількох простих кроків;

  • можливість створення функцій, що містять закритий для іншого документа код, включаючи переваги використання локальних змінних і обробку виняткових ситуацій.

Як видно з Приклада 10, програмний модуль позначається в Mathcad вертикальною рисою, праворуч від якої послідовно записуються оператори мови програмування. Щоб почати створення програмного модуля, треба (у випадку Приклада 10 після символу присвоювання) натиснути на панелі Programming (Програмування) кнопку Add Line (Додати лінію).

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

f (x) := │ "negative" if x< 0

│ if x > 0

│ │ "positive"

│ │ "big positive" if x > 1000

│ "zero" otherwise

f (1) = "positive"

f(105) = "big positive"

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

роботу кожного рядка коду цього Приклада.

  • Оскільки х=1, то умова х<0 не виконано, і в першому рядку нічого не відбувається.

  • Умова другого рядка х>0 виконано, тому виконуються обидві наступні рядки, об'єднані короткою вертикальною рисою в загальний фрагмент.

  • Функції f (х) привласнюється значення f (x)="positive".

  • Умова х>1000 не виконана, тому значення "big positive" не привласнюється f(x), вона так і залишається рівній рядку "positive".

  • Останній рядок не виконується, тому що одна з умов (х>о) виявилась істинним, і оператор otherwise (тобто, "інакше") не знадобився.

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

Локальне присвоювання (<─)

Мова програмування Mathcad не була б ефективною, якби не дозволяла створювати всередині програмних модулів локальні змінні, котрі "не видні" ззовні, з інших частин документа. Присвоювання в межах програм, на відміну від документів Mathcad, виконується за допомогою оператора Local Definition (Локальне присвоювання), що втавляется натисканням кнопки з зображенням стрілки (<—) на панелі Programming (Програмування).

Локальне присвоювання ілюструється Прикладом 12. Змінна z існує тільки всередині програми, виділеною вертикальною рисою. З інших місць документа одержати її значення неможливо. В цьому ж Прикладі ви бачите приклад застосування оператора циклу for.

Приклад 12

х := │ z ← 0

│ for i є 0..5

│ z ← z + i

х = 15