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

Кравчук(mathcad) / 2 семестр / MathCAD. Лабораторний практикум. 2010

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

Лабораторна робота №7. Обробка двовимірних масивів.

Виконання завдання "Обробка матриць"

Мета:

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

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

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

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

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

Структура програми-функції для обробки матриць

Програма-функція (ПФ), призначена для обробки матриць, обов'язково має наступні основні підрозділи.

1.Ініціалізація змінних. Змінним, які використовуються для зберігання шуканих характеристик матриці, надаються необхідні початкові значення.

2.Оператори для знаходження проміжних значень.

3.Зовнішній арифметичний цикл for. Призначений для перегляду всіх рядків або стовпчиків матриці. Має, як правило, блочну структуру з такими операторами:

1)оператори для знаходження проміжних значень;

2)Внутрішній арифметичний цикл for. Призначений для перегляду всіх стовпчиків або рядків матриці. Має, як правило, блочну структуру з такими операторами:

a)оператори для знаходження проміжних значень;

b)умовний оператор if, який вибирає елементи матриці, що задовольняють умові завдання; і має теж, як правило, блочну структуру, яка містить:

лічильник знайдених елементів k = k + 1;

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

формувач нового масиву зі знайдених елементів масиву, що обробляється;

c)оператори для знаходження проміжних значень;

3)оператори для знаходження проміжних або кінцевих значень.

4.Оператори для знаходження кінцевих значень.

5.Об'єкт результат.

110

Спеціальний текстовий режим вводу символів

уматематичну область

УMathCAD передбачена додаткова можливість покращення зовнішнього вигляду документа: вставка будь-яких символів в імена, у тому числі ще й символів операторів. Для цього необхідно:

1)почати введення імені з будь-якого дозволеного для імен символу;

2)

перейти

в спеціальний текстовий режим вводу комбінацією

клавіш

 

 

Ctrl

+

Shift

+

K

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

 

 

червоний;

 

3)

увести будь-які символи, наприклад, знак оператора додавання "+";

 

4)

вийти

зі спеціального текстового режиму вводу комбінацією

клавіш

 

 

Ctrl

+

Shift

+

K

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

синій.

Саме в такій спосіб були введені імена функцій FindM+Ξ і FindM*Ξ, та імена змінних M+Ξ і M*Ξ при виконанні завдань №13 та №14 у прикладах для полегшення читання лістингу. Наприклад, для

введення імені FindM*Ξ необхідно зробити наступне:

увести символи FindM;

натиснути Ctrl + Shift + K ;

натиснути клавішу * ;

натиснути Ctrl + Shift + K ;

увести велику грецьку літеру Ξ (ксі) з панелі інструментів Greek.

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

Умова. Задана квадратна матриця M розміром n × n, n = 3. Виконати наступні завдання за допомогою програм-функцій.

Виконання завдань. Спочатку вводимо початкові дані:

-установлюємо індексацію масивів з одиниці;

-задаємо розмір матриці;

-уводимо матрицю.

111

1.Знайти суму s модулів елементів матриці M.

2.Знайти добуток p модулів елементів матриці M.

Вхід

M, n

s = 0

i 1,n

j 1,n

s = s + |Mij|

Вихід s

Вхід

M, n

p = 1

i 1,n

j 1,n

p = p |Mij|

Вихід

p

3. Знайти відношення r кількостей додатних та від'ємних елементів у M.

Вхід

 

M, n

 

k = 0; q = 0

 

i 1,n

 

j 1,n

 

Mij>0

-

 

+

 

k = k + 1

 

Mij<0

-

 

+

 

q = q + 1

 

Вихід

 

k/q

 

Примітка. У завданні 3 у якості результату ПФ застосований арифметичний вираз k/q, значенням якого є шукана величина. Оскільки це останній рядок ПФ, то саме цю величину й буде повертати дана ПФ.

112

4. Обчислити кількість q та добуток d елементів, що не знаходяться на головній діагоналі M.

Вхід

 

M, n

 

q = 0; d = 1

 

i 1,n

 

j 1,n

 

i ≠ j

-

 

+

 

q = q + 1

 

d = d Mij

Вихід q, d

Примітка. У завданнях 3, 6 та далі застосований більш компактний матричний метод ініціалізації змінних: у перший рядок програм-функції вставлений шаблон матриці-рядка із двох стовпчиків, куди в якості елементів вставлені оператори ініціалізації шуканих змінних.

5. Зайти кількість k та суму s елементів, які задовольняють умові Mij > 3.

Вхід

 

M, n

 

k = 0; s = 0

 

i 1,n

 

j 1,n

 

Mij>3

-

 

+

 

k = k + 1

 

s = s + Mij

Вихід k, s

113

6. Обчислити середнє арифметичне sai елементів, що знаходяться на інтервалі 0<Mij<5.

Вхід

 

M, n

 

k = 0; s = 0

 

i 1,n

 

j 1,n

 

0<Mij<5

-

 

+

 

k = k + 1

 

s = s + Mij

 

Вихід

 

s/k

 

7. Знайти середнє геометричне додатних елементів sgd.

Вхід

 

M, n

 

k = 0; p = 1

 

i 1,n

 

j 1,n

 

Mij>0

-

 

+

 

k = k + 1

 

p = p Mij

 

Вихід kp

114

8. Сформувати вектор uME із максимальних елементів рядків M.

Вхід

 

M, n

 

i 1,n

 

ME = Mi1

 

j 2,n

 

Mij>ME

-

+

 

ME = Mij

 

uMEi = ME

 

Вихід

 

uME

 

9. Згенерувати матрицю A розміром 3 × 3 із цілочисловими значеннями елементів на відрізку [-40, 40] за допомогою генератора випадкових чисел rnd(x).

Вхід n, a, b

i 1,n

j 1,n

w = (b – a + 1)

w = w rnd(1)

Aij = [w] + a

Вихід

A

115

10.У матриці А знайти середнє арифметичне парних елементів sap.

 

Вхід

 

 

 

 

 

 

 

A, n

 

 

 

 

 

 

k = 0; s = 0

 

 

 

 

 

i 1,n

 

 

 

 

 

 

 

j 1,n

 

 

 

 

 

 

r=

A

ij

A

ij

 

 

 

 

 

-

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r = 0

 

 

-

 

 

 

 

 

 

Вхід

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

A, n

 

 

k = k + 1

 

 

 

 

s = s + Aij

k = 0

 

 

 

 

 

 

 

 

 

 

 

 

i 1,n

 

 

 

Вихід

 

 

j 1,n

 

 

 

 

 

 

 

 

 

 

 

s/k

 

 

r= Aij

 

 

 

 

 

 

 

 

 

- Aij

 

 

 

 

 

 

 

2

 

2

 

11. Сформувати вектор v із непарних

 

 

 

 

 

 

додатних елементів матриці А.

 

 

 

 

 

 

 

 

 

r ≠ 0

 

-

 

 

 

 

 

 

Aij>0

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

k = k + 1

 

 

 

 

 

 

 

vk = Aij

 

 

 

 

 

 

 

Вихід

 

 

 

 

 

 

 

 

v

 

 

116

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

Вхід n

i 1,n

 

 

 

j 1,n

 

 

 

i+j=

-

 

 

n+1

 

 

 

+

 

 

 

Ξij = 1

Ξij = 0

Примітка. Ξ – велика грецька літера ксі.

Вихід

 

 

Вхід

Ξ

 

 

M, Ξ, n

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

i 1,n

 

 

 

j 1,n

 

 

 

s = 0

k 1,n

s = s + Mik Ξkj

M Ξij = s

Примітка.

 

 

 

 

Множення на Ξ

Вихід

обертає порядок

M Ξ

стовпчиків в M.

 

117

 

 

 

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

Вхід

M, Ξ, n

i 1,n

j 1,n

M+Ξij = Mij + Ξij

Вихід

M+Ξ

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

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

Початкові дані використовуємо такі самі, як у попередніх прикладах.

1.Знайти суму s модулів елементів матриці M.

2.Знайти добуток p модулів елементів матриці M.

3.Знайти відношення r кількостей додатних та від'ємних елементів у M.

4.Обчислити кількість q та добуток d елементів, що не знаходяться на головній діагоналі M.

118

5.Знайти кількість k та суму s елементів, які задовольняють умові Mij > 3.

6.Обчислити середнє арифметичне sai елементів, що знаходяться на інтервалі 0<Mij<5.

7.Знайти середнє геометричне додатних елементів sgd.

8.Сформувати вектор uME із максимальних елементів рядків M.

9. Згенерувати матрицю A розміром 3 × 3 із цілочисловими значеннями елементів на відрізку [-40, 40] за допомогою генератора випадкових чисел rnd(x).

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

10.В матриці А знайти середнє арифметичне парних елементів sap.

11.Сформувати вектор v із непарних додатних елементів матриці А.

Розв'язання цього завдання операторами та вбудованими функціями виходіть занадто громіздким, і тому ми його не наводимо.

119