Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кравчук(mathcad) / 2 семестр / MathCAD iнженерних розрахунках. Частина 1. 2002

.pdf
Скачиваний:
109
Добавлен:
29.02.2016
Размер:
4.96 Mб
Скачать

81

Приклад.

Функція f(x) приймає значення 1 при x > 0 та значення –1 в інших випадках.

12.1.5. Оператор break

Іноді необхідно достроково вийти з циклу або зупинити виконання про- грами-функції при досягненні деякої умови. для цього використовується оператор break, який викликає достроковий вихід із циклів (for, while). приклад використання оператора показано в параграфі 12.4.

12.1.6. Оператор continue

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

12.1.7. Оператор return

Оператор return перериває виконання програми-функції і повертає значення операнда, розташованого праворуч від оператора return. Найчастіше цей оператор використовується в умовних операторах. Приклад використання оператора показано в параграфі 12.2.

12.1.8. Виведення результатів

Змінні, значення яких одержується в результаті виконання програмифункції, є локальними, тобто одержані значення зберігаються тільки всередині програми-функції. Для передачі цих значень за межі програми-функції застосовуються вектор – стовпець або матриця.

Шаблон виведення результатів має дві форми:

 

x

 

 

 

 

y1,1

y1,2

...

y1, n

 

 

 

1

 

 

 

 

.

.

.

 

 

x2

 

 

.

 

1.

...

 

2.

 

y m ,1

y m ,2

...

y m ,n

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

 

 

 

 

 

де xj, yi,j (i 1, m ; j 1, n) – елементи виведення результатів .

Якщо список елементів має один елемент, то дужки можна не ставити. Список елементів виводу передається через ім’я програми-функції. При цьому ім’я програми-функції розглядається як одновимірний або двохвимірний масив,

82

елементами якого є елементи списку виводу. За замовчуванням нумерація елементів одновимірних масивів, рядків і стовпчиків матриці починається з нуля, тобто значення вбудованої змінної ORIGIN=0.

Приклад. Обчислити і вивести на екран значення a, b, z, w, використовуючи різні варіанти виводу.

w cos z a2

b2 ;

z 1,35 ln

a b

; a 15 ;

b sin1,2

Програми-функції:

 

 

 

 

I варіант

 

 

 

II варіант

 

Пояснення до набору двох варіантів виводу:

В полі першого вертикального стовпчика натисніть кнопку на палітрі

матричних і векторних операцій. З’явиться діалогове вікно Insert Matrix

(Вставить матрицу).

Для створення вектора - стовпця в поле Rows (рядки) введіть значення - "4", в поле Columns (стовпчики) - "1" і натисніть OK.

Для створення матриці, яка складається з одного рядка, в поле Rows (рядки) введіть значення - "1" , в поле Columns (стовпчики) - "4" і натисніть OK.

MathCAD утворить вектор або матрицю з порожніми полями для заповнення. В першому полі друкуємо "a", другому - "b", третьому - "z", четвертому - "w".

Результати обчислень:

83

12.2. Програмування з використанням умовного оператора та умовної функції

MathCAD (як і всі алгоритмічні мови) виконує оператори програми в порядку зліва направо, зверху вниз. Для зміни порядку виконання операторів ви-

користовують зокрема умовну функцію if та умовний оператор if.

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

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

Дія: якщо умова логічного виразу виконується, то функція приймає значення виразу 1; якщо умова логічного виразу не виконується, то функція приймає значення виразу 2.

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

Приклад 1. Скласти таблицю значень функцій f(x), y(x), z(x) на інтервалі

[-3, 3] із кроком 1, де f(x)=sin(x);

f(x),

f(x) 0

;

f(x),

f(x) 0

y(x)

f(x) 0

z(x)

f(x) 0

0,

 

f(x),

 

 

 

 

 

Реалізація завдання.

Таблиці результатів обчислень:

Приклад 2. Обчислити значення функції y(x) для x = –3; –2; –1; 0; 1; 2; 3.

 

2

,

x 0;

x

 

y(x)

 

 

 

 

 

 

 

 

 

x,

x 0.

 

84

Реалізація завдання.

Програма-функція:

Результати обчислень:

Умовний оператор if. Умовний оператор використовується тільки усередині тіла програми-функції і для його введення необхідно натиснути кнопку

на палітрі засобів програмування або натиснути клавіші [Shift] + [ ] ] . На екрані з'явиться конструкція з двома полями введення.

Формат умовного оператора має дві форми:

1.< вираз > if < логічний вираз> [ < вираз > otherwise]

2.if < логічний вираз>

вираз 1 вираз 2

. . . . .

вираз n-1

[ < вираз > otherwise ]

Вертикальна лінія у випадку 2 створюється за допомогою інструкції AddLine. Для цього необхідно клацнути в пустому полі ліворуч від оператора if кнопкою необхідне число разів.

Дія: Якщо умова логічного виразу виконується, то повертається значення виразу (виразів).

Зауваження. Інструкція у квадратних дужках [ < вираз > otherwise ] може бути відсутня. В умовному операторі if також може використовуватись оператор break (для дострокового виходу з блоку).

Приклад 3. Побудувати таблицю значень функції y(x), де аргумент x змінюється від x1 = – 2 до x2 = 3 із кроком x = 0, 5.

85

 

arcsin

x2

 

, якщоx 1;

 

 

2

 

 

1 x

 

 

 

 

 

 

ex

 

 

 

y(x)

 

 

,

 

 

якщоx 1;

4

 

 

 

x cosx,

 

якщоx 1.

Реалізація завдання.

Введемо початкові дані:

Програма-функція:

y(x)

if x 1

q x2

1 x2

asin(q)

ex if x 1 4

x cos(x) otherwise

Пояснення до набору програми:

1.Друкуємо y(x) :=. Вертикальну лінію проводимо за допомогою інструкції AddLine. Натискаємо її двічі. З'явиться вертикальний стовпчик з трьома полями для введення операторів програми-функції.

2.У верхньому полі введення натискаємо кнопку на палітрі засобів про-

грамування. У праве поле оператора if введемо логічний вираз x<1. В лівому полі натиснемо кнопку . З'явиться два поля для введення операторів. В

 

q

x 2

перше поле введемо значення допоміжної змінної

 

 

1 x2 , а в друге – asin(q)

(значення, яке буде мати вираз y(x), якщо умова логічного виразу x<1 виконується).

3. У середньому полі введення операторів натискаємо кнопку , яка знаходиться на палітрі засобів програмування. У праве поле оператора if введемо

86

логічний вираз x 1, а в ліве поле – e x (значення, яке буде мати вираз y(x),

4

якщо умова логічного виразу x 1 виконується). В умовних операторах використовуємо жирний знак рівняння, розташований на палітрі логічних операцій. 4. В полі, що залишилось, натиснемо кнопку . У ліве поле введемо x cos(x) (значення, яке буде мати вираз y(x), якщо умова логічних виразів x=1 і x<1 не виконується).

Результати обчислень:

Приклад 4. Обчислити значення функції f(x) lnx sinx tgx на проміжку

x

[-3; 3] з кроком 1. У випадку коли х=0 видати повідомлення ”Функція невизначена”.

Реалізація завдання.

Програма-функція:

Результати обчислень:

87

Приклад 5. Знайти корені квадратного рівняння ax2+bx+c=0 для різних значень a, b, c. У випадку коли дискримінант квадратного рівняння менше нуля (D<0) видати повідомлення ”Рівняння не має дійсних коренів”.

Реалізація завдання.

Програма-функція:

Розглянемо роботу програми-функції Korni для різних значень коефіцієн-

тів a, b, c.

Варіант 1

Варіант 2

Варіант 3

88

12.3. Програмування з використанням оператора циклу while

Для організації циклів, які повинні завершитися при виконанні деякої умови, де число повторень виконання послідовності операторів заздалегідь невідоме, доцільно використовувати цикл типу while (доки). Серія операторів виконується в циклі доки умова справджується. Якщо умова не справджується, відбувається вихід із циклу. У випадку, коли програма-функція складена неправильно і зациклилася (цикл виконується нескінченно), то її можна зупинити, натиснувши клавішу [Esc].

Формат оператора циклу while:

while < логічний вираз > оператор 1 оператор 2

. . . . .

оператор n

Приклад. Обчислити наближене значення суми ряду

 

 

 

 

S(t) hk (t),

де hk (t) 2 k sin(kt ab) з точністю

10 5 для значень

k 1

 

 

 

параметру t 0,5; 4,5

із кроком t 0,5, де

a 0,7; b 2,5.

Обчислювати суму ряду S(t)слід до того часу, доки величина R hk (t)

перевищує . Передбачити при k > k0 переривання обчислень на випадок, якщо виконання умови (R < ) не відбудеться при просумованих k членів ряду, де k0 – обмежувач числа просумованих членів ряду. Точність розрахунків справджується, як тільки величина R стане менше за .

Реалізація завдання.

Введемо початкові дані:

89

Програма-функція:

Пояснення до набору програми:

1.Друкуємо Rez(t):= та натискаємо чотири рази кнопку . З'явиться вертикальний стовпчик з полями введення.

2.Задаємо початкові значення змінних (S, k, R), які входять до циклу. Ця частина програми виконується один раз.

3.Для запису циклу типу while необхідно:

На палітрі засобів програмування натиснути кнопку . З'явиться оператор while з двома полями для введення.

В верхньому полі введення надрукувати умову виконання циклу (логічний вираз).

В нижньому полі натиснути три рази кнопку . З'являться чотири поля введення для запису в них операторів, що визначають параметри k, h, S, R у тілі циклу.

4. Для одержання значень натисніть в полі першого вертикального стовпчика

кнопку на палітрі матричних і векторних операцій. З’явиться діалогове вікно Insert Matrix (Вставить матрицу). В поле Rows (рядки) введіть значення - "3", в поле Columns (стовпчики) - "1" і натисніть OK. Mathcad утворить вектор з порожніми полями для заповнення. В першому полі друкуємо "S", другому - "R", третьому - "k".

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

90

Результати обчислень:

12.4. Програмування з використанням оператора циклу for

Для організації циклів, де число повторень виконання послідовності операторів заздалегідь відоме, доцільно використовувати цикл типу for. Число повторень визначається параметром циклу. Параметр циклу не визначено за межами програми. Кількість повторень в циклі на проміжку [x1, x2] з кроком x

обчислюється за формулою n x2 x1 1.

x

Формат оператора циклу for:

for < параметр циклу> <діапазон зміни параметру циклу>

оператор 1 оператор 2

. . . . .

оператор n

Приклад 1. Дано вектор Y ={13; –4; 9; 6; 5; 4; –2; 1}. Сформувати вектор U із непарних елементів вектора Y. Обчислити суму і кількість елементів масиву

U.

Реалізація завдання.

Введення початкових даних: