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

MathCAD. Лабораторний практикум. 2010

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

12.Сформувати побічно-діагональну одиничну матрицю Ξ розміром 3 × 3.

13.Знайти добуток матриці M на Ξ.

14.Знайти суму матриць M та Ξ.

Індивідуальні завдання для виконання лабораторної роботи

Умову індивідуального завдання "Обробка матриць" візьміть із навчального посібника Visual Basic 6.0 відповідно до власного варіанта, який такий самий як у 1 семестрі, тобто дорівнює номеру студента в списку групи за

1 семестр [1, с. 147].

Зразок виконання лабораторної роботи

Умова. Задана матриця An m (n = 4; m = 4)

 

0.45

4

8

11

 

 

4

2

3

4,6

 

A

 

 

 

1,8

3

5,9

11

 

 

 

 

 

 

12

1,5

6,7

0,1

 

 

 

 

У заданій матриці знайти:

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

2)знайти добуток додатних елементів кожного рядка матриці.

120

Порядок виконання роботи

1.Відкрийте документ MathCAD LR01_Прізвище.xmcd і запишіть його на жорсткий диск у папку D:\Мои документы\Викладач\Група\ під іменем

LR07_Прізвище.xmcd.

2.Відредагуйте першу текстову область: а) змініть номер лабораторної роботи з №1 на №6; б) замініть речення "Лінійний алгоритм" на "Обробка матриць". Іншу частину робочого листка можна очистити.

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

Початок

Введення n, m, А

MinEl = |A11|;

 

im = 1; jm = 1

 

i=1, n

 

j=1, m

 

i = j

i+j = n+1

 

+

|Aij|<MinEl

 

+

 

MinEl = |Ai,j|;

 

im = i; jm = j

 

Виведення MinEl, im, jm

1

Блок-схема

1

i=1, n

p = 1

j=1, m

Aij > 0

+

p = p Aij

vpi = p

Виведення vp

Кінець

4.Перекладіть алгоритм із мови блок-схем на вхідну мову MathCAD.

5.Лістинг виконання завдань зразка наведений на рис. 2.36.1-2.36.2.

121

Рис. 2.36.1. Лістинг виконання зразка ЛР з MathCAD №7

122

Рис. 2.36.2. Закінчення лістингу виконання зразка ЛР з MathCAD №7

6. Розглянемо дії операторів у ПФ MinModEl(A, n, m), яка шукає мінімальний за модулем елемент серед елементів, що розташовані на головній і побічній діагоналях (номер у списку - це номер рядка в ПФ):

1)ініціалізація змінної MinEl модулем першого елемента матриці, відповідно в номер рядка im та номер стовпчика jm заносимо одиниці; цей результат і поверне ПФ, якщо в матриці не знайдеться ще менший за модулем елемент;

2)заголовок арифметичного циклу для перегляду всіх рядків матриці A;

3)заголовок арифметичного циклу для перегляду всіх стовпців матриці A;

4)у змінну LV1 (логічний вираз 1) заносимо значення логічного виразу, який визначає, чи знаходиться елемент матриці на головній, або побічній діагоналі матриці;

5)у змінну LV2 (логічний вираз 2) заносимо значення логічного виразу,

123

який визначає, чи менше поточний елемент матриці за модулем того значення, що зберігає змінна MinEl;

6)умовний оператор if, який відбирає потрібний елемент матриці, якщо обидва логічні вирази LV1 та LV2 мають значення 1 (істина);

7)модуль знайденого елемента матриці заноситься в змінну MinEl;

8)номер рядка знайденого елемента матриці заноситься в змінну im;

9)номер стовпця знайденого елемента матриці заноситься в змінну jm;

10)результат роботи ПФ - матриця розміром 1 3, елементами якої є всі шукані величини.

7.Розглянемо дії операторів у ПФ MinModEl(A, n, m), яка шукає добуток додатних елементів матриці:

1)заголовок арифметичного циклу для перегляду всіх рядків матриці A;

2)ініціалізація добутку додатних елементів рядка одиницею;

3)заголовок арифметичного циклу для перегляду всіх стовпців матриці A;

4)умовний оператор if, який вибирає додатний елемент рядка, і заносить його в добуток;

5)заносимо добуток у відповідний елемент вектора добутків;

6)виводимо результат роботи ПФ - вектор добутків.

8.Перекладіть алгоритм розв'язання власних завдань із мови блок-схем на вхідну мову MathCAD, тобто напишіть програму виконання завдань.

9.Уведіть програму в робочий листок, налагодьте її, отримайте результати, і проаналізуйте їхню правильність.

10.Оформіть звіт про виконання лабораторної роботи за наступними пунктами: Назва роботи, Тема роботи, Варіант, Група, Прізвище; Умова варіанту, Результати розрахунків; Висновки: перелік засвоєних елементів вхідної мови MathCAD. При якій умові елемент стоїть на головній діагоналі?

11.Захистіть роботу у викладача, давши відповіді на контрольні запитання.

Контрольні запитання

1.Коли масив називається матрицею?

2.Як звернутися до елемента матриці?

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

4.Як переглянути всі елементи матриці?

5.При якій умови елемент знаходиться на головній діагоналі?

6.Яке співвідношення між індексами елемента на побічній діагоналі?

124

Лабораторна робота №8. Модульне програмування в одному документі.

Виконання завдання "Однорядкова функція користувача"

Мета:

набути навиків перекладу модульного алгоритму розв'язання задачі з мови блок-схем на вхідну мову MathCAD;

навчитися створювати однорядкові функції користувача для знаходження значень різних виразів;

виконати індивідуальне завдання "Однорядкова функція користувача".

Теоретичні відомості

Модульний алгоритм

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

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

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

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

У пакеті MathCAD є два способи МП.

1.МП у межах одного документа.

2.МП у декількох документах.

Модульне програмування в одному документі

Особливості цього способу такі:

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

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

Недоліки цього способу:

неможливість зручної розробки ПФ декількома розробниками;

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

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

125

Використання функцій користувача для МП

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

Для модульної алгоритмізації розв'язання подібних задач необхідно:

1)розбити задані вирази на частини, що мають спільну структуру;

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

3)у кожній функції формальні параметри позначити однаково: p1, p2, … pn, оскільки вони є локальними, то існують тільки всередині кожної функції;

4)для полегшення оперування функціями параметри в частинах виразу завжди нумерувати зліва направо;

5)сконструювати вирази за допомогою описаних функцій із передачею ним відповідних фактичних параметрів;

6)обчислити значення виразів;

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

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

Індивідуальні завдання для виконання лабораторної роботи

Умову індивідуального завдання "Модульне програмування в одному документі" візьміть із навчального посібника Visual Basic 6.0 відповідно до власного варіанта, який такий самий як у 1 семестрі, тобто дорівнює номеру студента в списку групи за 1 семестр [1, с. 151-155].

Зразок виконання лабораторної роботи

Умова. Використовуючи однорядкові функції користувача, обчислити:

,

де a = 2,34; b = 1,27; c = -0,64. Значення y, z, w округлити до 6 знаків після коми.

126

Порядок виконання роботи

1.Відкрийте документ MathCAD LR01_Прізвище.xmcd і запишіть його на жорсткий диск у папку D:\Мои документы\Викладач\Група\ під іменем

LR08_Прізвище.xmcd.

2.Відредагуйте першу текстову область: а) змініть номер лабораторної роботи з №1 на №8; б) замініть речення "Лінійний алгоритм" на " Модульне програмування

водному документі" " і в наступному рядку введіть текст: "Однорядкова функція користувача". Іншу частину робочого листка можна очистити.

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

4.Аналіз умови завдання зразка лабораторної роботи показує, що в кожному виразі повторюються дві структурні частини:

sin2 3

 

 

 

та ep1 ln

 

 

 

 

p12 p2

2

 

p2 p3

 

.

 

 

5.Від виразу до виразу змінюються тільки значення фактичних параметрів, що передаються до цих структурних частин крізь формальні параметри p1, p2 (для першої частини) та p1, p2, p3 (для другої частини).

6.Таким чином, для виконання завдань даної лабораторної роботи достатньо ввести тільки дві однорядкові функції користувача F1(p1, p2) та F1(p1, p2, p3).

127

7.Лістинг виконання завдань зразка лабораторної роботи з MathCAD №8 наведений на рис. 2.37. Тут усі нижні індекси є літеральними індексами

простих змінних, і тому набираються за допомогою клавіші (Крапка), якщо

мова вводу із клавіатури англійська, або клавіші (Крапка), якщо мова вводу із клавіатури українська.

Рис. 2.37.Лістинг виконання зразка ЛР з MathCAD №8

128

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

9.Оформіть звіт про виконання лабораторної роботи з наступними пунктами: Назва роботи, Тема роботи, Варіант, Група, Прізвище; Умова варіанта,

Результати розрахунків; Висновки: перелік засвоєних елементів вхідної мови

MathCAD.

10. Захистіть роботу у викладача, давши відповіді на контрольні запитання.

Контрольні запитання

1.Якій алгоритм називається модульним?

2.Що таке модуль?

3.Опишіть основні принципи модульного програмування.

4.Які способи модульного програмування Ви знаєте?

5.У чому полягають особливості МП в одному документі?

6.Наведіть недоліки МП в одному документі.

7.Як використовуються функції користувача для МП в одному документі?

8.За яких умов два різні вирази можна обрахувати за допомогою однієї функції користувача?

9.Що таке формальні параметри й для чого вони призначені?

10.У чому фактичні параметри відрізняються від формальних?

129

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]