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

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

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

91

Програма-функція формування з довільного вектора Z, що має m елементів, нового вектора, який складається з непарних елементів вектора Z:

Для формування вектора U звертаємося до програми-функції Vector:

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

Програма-функція обчислення суми елементів довільного вектора Z:

92

Для отримання суми елементів сформованого вектора U звертаємося до програми-функції Sum:

Суму елементів вектора U можна обчислити також так:

Пояснення до набору програми-функції Vector:

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

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

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

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

В поле ліворуч від символу надрукувати ім'я параметру циклу (i), а в поле

праворуч від символу ввести діапазон зміни параметру циклу 1..m.

В полі введення, яке залишилося, натиснемо кнопку . З'явиться два поля для введення операторів.

 

 

 

Z

i

 

 

В першому полі введення друкуємо L Zi

2 floor

 

.

 

 

 

 

 

2

В другому полі введення натиснемо кнопку на палітрі засобів програ-

мування. В праве поле оператора if введемо логічний вираз L1 (L дорівнює одиниці, якщо елемент непарний). В лівому полі натиснемо кнопку . З'явиться два поля для введення операторів.

В першому полі рахуємо кількість непарних елементів k k 1.

В другому полі формуємо вектор W із непарних елементів вектора Z:

Wk Zi.

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

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

Пояснення до набору програми-функції Sum:

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

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

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

93

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

В поле ліворуч від символу надрукувати ім'я параметру циклу ''i'', а в поле

праворуч від символу ввести діапазон зміни параметру циклу 1..m.

В полі введення, яке залишилося, обчислюємо суму непарних елементів

S S+Zi.

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

функцій не буде.

Приклад 2. Серед елементів масиву Z ={10; 3; 0; -5; 13; 8; -4; } визначити значення першого від'ємного елемента та його номер.

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

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

Програма-функція визначення номера першого від’ємного елемента будьякого вектора W:

Для визначення номера першого від’ємного елемента вектора Z звертаємось до програми-функції Rez:

Знаходимо значення першого від’ємного елемента:

94

Приклад 3. Задано масив X={3; 0; 7; 1; -4; 0; 2}. Сформувати масив Y, вилучивши з масиву X усі нульові елементи.

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

Програма-функція формування вектора з ненульових елементів довільного вектора Z:

Для формування вектора Y звертаємось до програми-функції Rez:

Приклад 4. Сформувати вектор С з елементів, що не лежать на головній діагоналі матриці А, та вектор D з елементів матриці А, які знаходяться на головній діагоналі та нижче її,

 

5

7

8

 

де

 

 

8

2

 

A 6

.

 

 

3

4

5

 

 

 

 

95

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

Програма-функція формування вектора, елементами якого є елементи довільної квадратної матриці Z, що не лежать на головній діагоналі:

Для формування вектора C звертаємось до програми-функції R1:

Програма-функція формування вектора D з елементів довільної квадратної матриці Z, які лежать на головній діагоналі та нижче її:

Для формування вектора D звертаємось до програми-функції R2:

96

Приклад 5.

1) Сформувати матрицю С={Ci,j} i 1,n ; j 1,n ; n 4,

 

Ci, j

(i j)

, i j

де

 

(i j)2 , i j

 

 

2)Сформувати вектор D з елементів матриці С, що задовольняють умові –

20 < Ci,j 4.

3)Сформувати вектор V, елементами якого є суми елементів стовпців заданої матриці С.

4)Сформувати нову матрицю B, вилучивши 2-й рядок з матриці С.

5)Сформувати нову матрицю Q, вилучивши 3-й стовпець з матриці B.

6)Упорядкувати елементи векторів V та D на зростання модулів елементів.

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

Формування матриці С:

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

97

Для формування вектора V звертаємось до програми-функції Form:

Програма-функція формування вектора з елементів довільної прямокутної матриці, які більше –20, але не перевищують 4.

Для формування вектора D звертаємось до програми-функції Form1:

Програма-функція формування нової матриці вилученням з довільної прямокутної матриці її i1-го рядка.

Для формування матриці B звертаємось до програми-функції VR:

98

Програма-функція формування нової матриці вилученням з довільної прямокутної матриці її j1-го стовпчика.

Для формування матриці Q звертаємось до програми-функції VS:

Програма-функція упорядкування довільного вектора за зростанням модулів його елементів.

Для упорядкування елементів векторів V та D за зростанням модулів їх елементів звертаємось до програми-функції Upor:

99

13. Модульне програмування в MathCAD

Загальна ідея модульного програмування полягає в наступному:

реалізація обчислювальних процесів у вигляді окремих програмних одиниць– модулів;

звернення до цих модулів в інших програмах iз передачею даних, необхідних

для обчислювального процесу.

Модульне програмування дозволяє зменшити обсяг текстів програм, зробити їх більш зрозумілими, прискорити написання і тестування програм, зменшити витрати на супровід (експлуатацію) програм.

Впровадження модульного програмування в пакеті MathCAD можна здійснити двома способами:

1)модульне програмування в межах одного документа MathCAD;

2)модульне програмування в декількох документах MathCAD.

13.1.Модульне програмування

водному документі

Цей спосіб характеризується тим, що:

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

опис локальних функцій, програм-функцій та звертання до них знаходяться в

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

неможливість розробки програм-функцій декількома розробниками;

неможливість "автономного" відлагодження програм-функцій та їх модифікації в процесі експлуатації програмного забезпечення;

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

13.1.1. Функція користувача

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

Формат функції користувача:

Ім’я функції (Список формальних параметрів) := А,

де Ім’я функції – довільний ідентифікатор; Список формальних параметрів

– це використані в виразі А змінні, які розділяються між собою комами; А – довільний арифметичний вираз.

100

Приклад.

f1(x) := 10 (1–cos(x)2) f2(x, y) := ln(x2+y2)

Звернення до функції користувача:

Ім’я функції (Список фактичних параметрів)

Фактичні параметри також розділяються комами. Кількість фактичних параметрів повинна відповідати кількості формальних параметрів.

Дія: Кожному формальному параметру ставиться у відповідність фактичний параметр. Обчислюється арифметичний вираз А і його значення передається в місце звернення.

Приклад.

Зауваження. Функція користувача є найпростішим випадком програми– функції.

13.1.2. Приклади розв’язання задач

Z

де

Приклад 1. Обчислити суму та добуток

n2

 

 

 

 

 

 

n2

fk (r,p) gk (p,r);

 

 

 

 

 

 

 

 

 

 

W

gk (r,p) fk (r,p)

 

 

 

 

 

 

 

 

 

 

 

 

k n

1

 

 

 

 

 

 

 

 

 

 

 

 

k n

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

, x y;

 

 

 

sin

xy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

x2 y2

 

 

 

 

 

 

 

 

 

 

k

,

fk (x,y)

 

 

 

 

 

 

 

 

 

 

 

 

 

;

gk

(x,y) 1

 

 

 

ln(1 k

 

xy

 

)

 

 

1 k2

 

 

 

 

 

 

 

2

 

 

 

, x y

 

 

 

 

 

k

 

xy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n1=3; n2=10; p=-1,1; r=0,7.

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

Функції користувача: