Завдання та порядок виконання. 2.1 Вивчити навчальний матеріал та підготувати відповіді на контрольні питання.
2.1 Вивчити навчальний матеріал та підготувати відповіді на контрольні питання.
2.2 Скласти схему алгоритму рішення задачі за варіантом завдання.
3 Контрольні питання
3.1 Дайте визначення масиву.
3.2 Які характеристики мають масиви?
3.3 Опишіть особливості алгоритмів введення і виведення елементів масиву.
3.4 Опишіть реалізацію накопичення суми і добутку скінченого числа елементів масиву.
3.5 Як організувати рахунок кількості елементів?
3.6 Як організувати процес формування нових масивів у процесі розв’язання задач?
3.7 Як організувати знаходження найбільшого і найменшого елементів масиву?
3.8 Як організувати процес упорядкування елементів масиву?
3.9 У чому особливість організації циклу при обробці масивів?
4 Зміст звіту
4.1. Номер роботи, її назва, визначення мети.
4.2. Короткі відповіді на контрольні запитання.
4.3. Алгоритм, короткий його опис, програма і результати обчислень для свого варіанта завдання.
4.4 Висновки по роботі.
5 Навчальний матеріал
Масив - це впорядкований набір однорідних елементів, що мають ім’я, для зберігання яких наділяється послідовно розташоване поле пам'яті. Масив характеризується ідентифікатором (ім'я), числом вимірів (індекси) і числом змінних у кожному вимірі (верхня межа кожного індексу). Існують одновимірні масиви (вектори, лінійні таблиці), двовимірні масиви (матриці, прямокутні таблиці), а також багатовимірні масиви.
Введення - виведення елементів масиву виконується поелементно. Можливі два способи.
Спосіб 1. Безпосереднє введення-виведення елементів масиву, яке позначається на блок-схемі алгоритму при введенні значень елементів блоками “введення” або “процес” та при виведенні блоком “виведення”.
Такий спосіб доцільно застосовувати, коли масиви мають малі розміри.
Спосіб 2. При великих розмірах масивів, що оброблюються, оператори введення-виведення розміщують усередині циклічної ділянки програми і при кожному виконанні циклу здійснюється введення-виведення одного елемента.
При складанні циклічних програм обробки масивів доцільно сполучати операції введення і безпосередньо обробки масивів, що дозволяє в ряді випадків скоротити обсяг програми.
Приклад 1: Вивести на друк елементи цілочисельного масиву N=[n1, n2, n3,... , n50], які кратні трьом. Сполучимо операції введення поточного значення елемента масиву і його опрацювання.
|
Рисунок 1 Алгоритм визначення елементів масиву, кратних 3.
Якщо ж потрібно запам'ятати всі значення результатів у пам'яті, то необхідно виділити масив для результатів, і обчислити результат як змінну з індексом.
Приклад 2: Переписати підряд у масив Y додатні елементи масиву (x1, x2, x3,... , x20), а в масив Z - від’ємні.
Особливість рішення полягає в тому, що елементи, які записуються в масиви Z і Y, повинні розташовуватися підряд без пропусків. Це призведе до того, що індекси змінних yk та zj набудуть значень, відмінні від значень індексів змінної xi. Тому в циклі необхідно змінювати значення k та j кожний раз перед записом відповідного елементу x, тобто необхідно використати спосіб організації циклу з кількома параметрами, які одночасно змінюються (рис. 2.).
Знаходження суми зводиться до її накопичення у вигляді значення змінної в циклі, в який вводяться відповідні додатки. При цьому наступний додаток yi додається до суми попередніх додатків zi-1, тобто в циклі послідовно обчислюються всі проміжні суми:
z1 = z0 + y1 = y1
z2 = z1 + y2 = (y1) + y2
..............................
zi = zi-1 + yi = (y1 + y2)+yi
..............................
zn = zn-1 + yn
zn =
Обчислення добутку зводиться до його накопичення в циклі у вигляді значення змінної. Аналогічно накопиченню суми в циклі обчислюються послідовно всі проміжні добутки:
z1 = z0 * y1 = y1
z2 = z1* y2 = (y1) * y2
.............................
zi = zi-1 * yi = (y1 * y2)*yi
..............................
zn = zn-1 * y n
zn =
Якщо не потрібно зберігати у пам’яті комп’ютера додатки і проміжні добутки, вони представляються простими змінними; і тоді рекурентна формула для накопичення добутку має вигляд:
z = z * y.
де y - множник; z - проміжний добуток.
Перед циклом за початкове значення добутку, як правило, приймається одиниця: z0 = 1.
Приклад 3: Скласти алгоритм обчислення математичного сподівання mx випадкової величини x, використовуючи розрахункову формулу
mx =
для початкових даних: n = 5; рi = {0.3; 0.25; 0.2; 0.1; 0.15};
xi = {90; 80; 120; 95; 110}.
Початковими даними для обчислення є проста змінна N та два масиви: P і X. Результат обчислення збережемо у простій змінній S. Для накопичення суми організується цикл, параметром якого є індекс I, який змінюється від 1 до N. (рис.3.)
Приклад 4: Скласти алгоритм обчислення середнього геометричного додатних елементів масиву. Схема алгоритму наведена на рис.4.
Знаходження найбільшого та (або) найменшого з множень значень виконується у циклі шляхом порівняння деякого поточного значення з найбільшим (найменшим) з усіх попередніх.
Якщо поточне значення більше від найбільшого (МАХ) з усіх попередніх, то МАХ присвоюється значення поточного. У протилежному випадку зберігається попереднє значення. Процес можна описати наступною залежністю:
yi, якщо yi>ymax
ymax =
ymax, якщо yi £ ymax
Після закінчення циклу значення ymax буде найбільшим з усіх розглянутих значень yi.
Аналогічним чином знаходиться найменше (MIN) серед набору елементів, із використанням залежності:
yi, якщо yi<ymin
ymin =
ymin, якщо yi ³ ymin
При знаходженні найбільшого (МАХ) та (або) найменшого (MIN) елемента масиву за початкове значення найбільшого та найменшого у цьому випадку слід брати значення першого елемента масиву, а в циклі, пошук найбільшого та найменшого елементу виконувати, починаючи з другого елементу масиву.
Приклад 5: Скласти алгоритм знаходження найбільшого та найменшого елемента масиву (х1, х2, ….хk) та їх порядкових номерів.
Особливість пошуку полягає в тому, що необхідно знаходити номер найбільшого та найменшого елемента. Прийнявши за початкове значення і максимальний і мінімальний елемент, запам’ятаємо їх номери іmax = 1 і іmin= 1. У циклі при виконанні умов xi>xmax та хi<хmin присвоюють, відповідно, xmax=xі, іmax = і та хmin=хi , іmin = і (рис. 5.)
6 Варіанти індивідуальних завдань
Розробити схему алгоритму обробки одновимірного масиву відповідно до заданого варіанта.
1. Обчислити суму і кількість елементів, більших нуля і менших нуля, масиву X(10).
2. Скласти програму для запису підряд у масив М додатних, а в масив Н - від’ємних елементів масиву (х1, х2, …, х10).
3. Обчислити відношення максимального елемента до середнього арифметичного елементів масиву А(12).
4. Визначити максимальний елемент масиву В(15) і переставити його місцем з кінцевим елементом масиву.
5. Скласти програму для обчислення добутку і кількості додатних елементів масиву Х(10).
6. Визначити мінімальний елемент масиву С(10) і переставити його місцем з першим елементом масиву.
7. Знайти максимальний і мінімальний елементи масиву Н(12) і поміняти їх місцями.
8. Розташувати в масиві Р спочатку додатні, а потім від’ємні елементи масиву А(15).
9. Визначити суму і кількість елементів масиву Н(15), кратних трьом.
10. Обчислити значення функції:
H = ,
де хi - елементи масиву (х1, х2,…,х20).
11. Обчислити середнє геометричне додатних елементів масиву Х(15) і записати його на місце від’ємних елементів цього масиву.
12. Існує масив, який містить n елементів. Розмістити елементи масиву в зростаючому порядку їх значень.
13. Запишіть +1 замість максимального елемента масиву А(15) та -1 – замість мінімального елемента масиву.
14. Визначити номер і величину найменшого з додатних елементів і найбільшого з від’ємних елементів масиву Х(14).
15. Обчислити значення функції.
Zi = )
де хi задані масивом (х1, х2,…,х20). Результати запам'ятати в масиві Н.
16. Розташувати на початку масиву Х(15) його додатні елементи, а потім упорядкувати їх.
17. Для масиву X(10), що має додатні і від’ємні елементи, обчислити суму елементів, що стоять на парних місцях.
18. Для масиву X(15), що має додатні і від’ємні елементи, обчислити середнє арифметичне додатних елементів.
19. Для масиву X(15), що має додатні і від’ємні елементи, обчислити суму елементів, що стоять на непарних місцях.
20. Визначити суму і кількість елементів масиву Н(15), кратних п’яти.
21. Записати в масив Y від’ємні елементи масиву X(20), що мають парні індекси.
22. Обчислити і запам'ятати zi = , де XI та YI - елементи масивів, складених із 15 елементів.
23. Задано масив X(16). Потрібно: записати в масив Y номера елементів xi, що задовольняють умові 0 £ xi £ 5.
24.Записати в масив Z елементи масиву Y(12), що мають парні індекси, а в масив X – непарні індекси.
25. Обчислити суми додатних і від’ємних значень функції:
z = cos(nx+a) * sin(nx-a), де n = 1,2,...10
26. Масив М містить N числових значень. Згрупувати всі ненульові значення на початку масиву.
27. Масив М(50) містить тільки 0 та 1. Визначити число нулів і одиниць у масиві. Переставте 0 та 1 місцями
28. Обчислити відношення добутку парних і суми непарних елементів масиву Х(20).
29. Масив М містить n числових значень, упорядкованих за зростанням, причому деякі з них повторюються декілька разів. Необхідно залишити тільки по одному з повторюваних значень і запам'ятати число повторень кожного значення в іншому масиві Т.
30. Для масиву X(20), що має додатні і від’ємні елементи, обчислити середнє геометричне додатних елементів і середнє арифметичне від’ємних елементів.
31. Для масиву X(20), що має додатні і від’ємні елементи, обчислити кількість нульових елементів.
32. Упорядкувати елементи масиву Х(20) за спаданням.
РОБОТА №13
ПРОЕКТУВАННЯ АЛГОРИТМІВ ОБРОБКИ ДВОВИМІРНИХ МАСИВІВ
1 Мета роботи
Вивчення методики проектування алгоритмів обробки двовимірних масивів, організації їх введення і виведення, знаходження суми, добутку скінченого числа елементів двовимірних масивів, обчислення координат положення елементів.