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

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

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

n

1. Знайти суму елементів вектора v: s v . i 1 i

n

2. Знайти добуток елементів вектора v: p i 1vi

Вхід v, n

s = 0

Вхід v, n

p = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1,n

 

 

 

 

 

i

1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s = s + vi

 

 

 

 

p = p vi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вихід

Вихід

s

p

3. Обчислити довжину вектора v: d= n vi2 .

i=1

4. Підрахувати k - кількість додатних елементів вектора v.

Вхід v, n

d = 0

i 1,n

d = d + vi2

d=d

Вхід v, n

k = 0

 

i 1,n

 

vi>0

-

 

+

 

k = k + 1

 

Вихід

Вихід

d

k

1 k

5. Знайти середнє арифметичне парних елементів вектора v: sa=k i=1vi .

k

6. Знайти середнє геометричне додатних елементів вектора v: sg=k v . i=1 i

100

Вхід

 

 

v, n

 

 

k = 0; s = 0

i 1,n

 

 

v

i -

v

 

r =

 

i

 

2

 

2

 

r = 0

 

-

 

 

+

 

 

 

 

k = k + 1

 

s = s + vi

 

s = s/k

 

Вихід s

Вхід v, n

k = 0; p =1

 

i 1,n

 

vi>0

-

 

+

 

k = k + 1

 

p = p vi

 

p=kp

Вихід k

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

7. Підрахувати even - кількість позитивних парних елементів вектора v.

101

 

Вхід

 

 

 

 

v, n

 

 

 

 

k = 0

 

 

 

i 1,n

 

 

 

r =

v

i -

v

i

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

-

vi>0 r = 0

+

 

 

 

 

 

 

k = k + 1

 

Вихід

 

 

 

 

 

k

 

 

 

 

8. Скільки непарних елементів вектора v стоять на парних місцях?

Вхід v, n

 

k = 0

 

 

 

 

i 1,n

 

 

 

r =

v

i -

v

i

 

 

 

 

 

 

2

 

2

 

i i t = 2 - 2

-

r≠0 t=0

+

k = k + 1

Вихід k

9. Знайти кількість k та суму s елементів, які задовольняють умовіvi > -10.

Вхід v, n, a

k = 0; s = 0

 

i 1,n

 

vi>a

-

 

+

 

k = k + 1

 

s = s + vi

 

Вихід k, s

102

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

Вхід

 

 

v, n

 

 

m = 0

 

i 1,n

 

 

v

i -

v

 

r =

 

i

 

2

 

2

 

r ≠ 0

 

-

 

 

+

 

 

 

 

m = m + 1

um = vi

 

Вихід

 

m, u

 

 

11.Знайти максимальний елемент вектора v.

12.Додати до вектора u скаляр p = 5.

Вхід

 

u, m

 

z = u1

 

i 2,m

 

ui>z

-

 

+

 

z = ui

 

Вихід

 

z

 

Вхід

u, m, p

i 1,m

ui = ui + p

Вихід u

103

13. Створити вектор w із просортованих за спаданням модулів елементів u.

Вхід

u, m

i m-1,1

j 1,i

-

|uj|<|uj+1|

+

x = uj

uj = uj+1

uj+1 = x

Вихід

u

14.Скласти вектори u і w.

15.Знайти скалярний добуток векторів u і v.

Вхід

u, w, m

i 1,m

uwi = ui + wi

Вихід uw

Вхід u, w, m

s = 0

i 1,m

s = s + ui wi

Вихід s

104

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

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

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

n

1. Знайти суму елементів вектора v: s v . i 1 i

n

2. Знайти добуток елементів вектора v: p i 1vi

 

 

 

 

 

3.

 

n

2 .

Обчислити довжину вектора v: d= v

 

 

i=1

i

 

 

 

 

4.

Підрахувати k - кількість додатних елементів вектора v.

1 k

5. Знайти середнє арифметичне парних елементів вектора v: sa=k i=1vi .

k

6. Знайти середнє геометричне додатних елементів вектора v: sg=k v . i=1 i

7.Підрахувати кількість позитивних парних елементів вектора v.

8.Скільки непарних елементів вектора v стоять на парних місцях?

105

9.Знайти кількість k та суму s елементів, які задовольняють умовіvi > -10.

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

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

11.Знайти максимальний елемент вектора v.

12.Додати до вектора u скаляр p = 5.

13.Створити вектор w із просортованих за спаданням модулів елементів u.

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

виходіть занадто громіздким, і тому ми його не наводимо.

14.Скласти вектори u і w.

15.Знайти скалярний добуток векторів u і v.

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

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

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

Умова. Згенерувати й вивести на екран одновимірний масив x = {xi}

(i 1,n ;n 20 ) у діапазоні цілих чисел [20; 90 ]. Сформувати масив z із парних елементів масиву x, які задовольняють умові xi > 50. Упорядкувати елементи масиву z за зростанням значень елементів.

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

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

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

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

106

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

Початок

Введення-

виведення

n, xmin, xmed, xmax

i = 1, n

xi=[xmax-xmin+1) rnd(1)]+xmin

Виведення

xi

i = 1, n

d x2i x2i

d=0

xi>a

 

+

 

k = k + 1

 

zk = xi

Виведення

zk

 

Блок-схема

 

n = 20; xmin = 20 ; xmed = 50; xmax = 90

 

1

 

i=1, k-1

 

j=1, k-i

 

 

zj > zj+1

 

+

 

w = zj;

 

zj = zj+1;

 

zj+1 = w

 

i = 1, k

 

Виведення

 

zi

1

Кінець

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

107

5. Лістинг виконання завдань зразка лабораторної роботи з MathCAD №6 наведений на рис. 2.35.

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

108

6. Розглянемо дії операторів у ПФ Form_z(x, n), яка формує вектор z:

1) - ініціалізація нулем лічильника шуканих елементів вектора x; 2) - арифметичний цикл перегляду всіх елементів вектора x;

3) - умовний оператор if, який відбирає серед парних елементів вектора x такі, що більше 50;

4) - лічильник знайдених елементів вектора x;

5) - формування елементів вектора z;

6)z - результат роботи даної ПФ, тобто сформований вектор z.

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

8.Оскільки у Visual Basic та MathCAD генерація випадкових чисел здійснюється по-різному, то згенеровані початкові вектори виходять неоднаковими, тому порівнювати результати виконання завдань даної лабораторної роботи у двох системах програмування слід тільки якісно.

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

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

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

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

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

2.Що таке розмір та розмірність масиву?

3.Коли масив називається вектором?

4.Як звернутися до i-го елемента вектора?

5.Чим принципово відрізняються функції rnd(x) і runif(m, a, b)?

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

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

8.Запишіть оператор-лічильник і поясніть як він працює.

9.Чим відрізняються суматор та мультиплікатор?

10.Як знайти середнє арифметичне та середнє геометричне елементів вектора?

11.Який оператор допомагає визначити парність елемента вектора?

12.Що таке довжина вектора?

13.Як обчислюється скалярний добуток двох векторів?

14.Як обчислюється сума вектора й скаляра?

15.Як додаються два вектори?

109