You are on page 1of 8

Лабораторна робота №6 (методичні вказівки)

з дисципліни «Алгоритмізація та програмування»


Тема: "Реалізація алгоритмів обробки одновимірних масивів на мові С ++"

МЕТА РОБОТИ

Вивчити теоретичний матеріал з основ представлення одновимірних і


масивів на мові С ++ і реалізувати оголошення, введення з консолі, обробку і
виведення в консоль одновимірних масивів на мові C ++ в середовищі Visual
Studio.

ПОСТАНОВКА ЗАДАЧІ

Завдання 1. Вирішити завдання на аналіз і виведення елементів


одновимірного масиву. Введення і виведення даних здійснити в командному
вікні. Варіанти завдань представлені в табл.1.
Завдання 2. Вирішити завдання на перетворення одновимірного масиву
відповідно до свого варіанту завдання (див. табл.2), Розмір масиву і його
елементи ввести з консолі. Вивести перетворений масив у консоль.

Введення, виведення, обробку масивів реалізувати окремими функціями з


параметрами. Кожне завдання описати окремою функцією без параметрів. У
функції main () організувати багаторазовий вибір одного з двох завдань.
Рекомендації до виконання завдань 1-2.
Умова виду «дан масив розміру N» означає, що спочатку вводиться
фактичний розмір масиву (ціле число N), а потім - всі його елементи. Якщо в
завданні явно не вказується, які значення може приймати розмір вихідного
масиву, то передбачається, що розмір може змінюватися в межах від 2 до 50.
Порядковий номер початкового елемента масиву в постановці завдання
вважається рівним 1. Якщо не вказано іншого, тип елементів – дійсний.
Якщо в завданні, пов'язаному зі створенням (перетворенням) масиву, не
описаний результуючий набір даних, то передбачається, що цим набором є
створений (перетворений) масив, і необхідно вивести в строку всі його
елементи в порядку зростання їх індексів.
При виконанні завдань на перетворення масиву не слід використовувати
допоміжні масиви.
2
У звіті повинні бути вхідні і вихідні дані для кожного завдання, лістинг
коду програми та скріншот екрану виконання. Код повинен містити
КОМЕНТАРІ !!!Крім того, в звіті повинні бути представлені чотири блок-
схеми: для завдання 1 в цілому, функції аналізу масиву, завдання 2 в цілому і для
функції, що реалізує перетворення масиву.
Приклад вирішення завдання Array. Дан цілочисельний масив розміру N.
Вивести всі що містяться в даному масиві парні числа в порядку зменшення їх
індексів, а також їх кількість K.:
Вхідні дані:
1) максимальний розмір масиву N = 20, ціле, константа;
2) кількість елементів sz, ціле, 2..N
2) цілочисельний масив my_array розміром N з sz елементами.
Вихідні дані:
1) парні значення елементів масиву в порядку зменшення їх індексів;
2) кількість парних чисел K, ціле.
Код рішення задачі на С ++:
const int N = 20;//максимальне кількість елементів
// функція введення масиву
void get_mas(int in_mas [], int & in_n) {
do
{
cout << "Enter count of elements (2-20): ";
cin >> in_n;
}
while (In_n <2 || in_n>N);// перевірка коректності вход.данних
cout << "Enter elements: " << endl;
for (int i = 0; i < in_n; i ++)
cin >> in_mas [i];
}
// функція виведення масиву
int show_mas_even(const int out_mas [N], const int n) {
int ev_count =0;
cout << endl << "Even array elements: " << endl;
for (int i = n-1; i > = 0; i--)
if (! (оut_mas [i]%2)) {
cout << out_mas [i] << " ";
ev_count ++;
}
cout << endl;
return ev_count;
}
// функція завдання Array 9
void task() {
int my_array [N];// оголошення масиву
int sz; // реальне кількість елементів
get_mas(My_array, sz);// виклик функції введення
// ... виклик функції введення інших змінних, наприклад: int K = get ();
int K = show_mas_even(My_array, sz);// виклик функції виведення
cout << "Even elements count: " << K <<endl;// вивід кількості
}
3
Таблиця 1 - Аналіз і висновок елементів одновимірних масивів
Array1. Дано ціле число N (> 0). Сформувати і вивести цілочисельний масив розміру N,
що містить N перших додатних непарних чисел: 1, 3, 5, ....
Array2. Дано ціле число N (> 0). Сформувати і вивести цілочисельний масив розміру N,
що містить ступеня двійки від першої до N-ї: 2, 4, 8, 16, ....
Array3. Дано ціле число N (> 1), а також перший член A і різниця D арифметичної
прогресії. Сформувати і вивести масив розміру N, що містить N перших членів
даної прогресії: A, A + D, A + 2 · D, A + 3 · D, ....
Array4. Дано ціле число N (> 1), а також перший член A і знаменник D геометричній
прогресії. Сформувати і вивести масив розміру N, що містить N перших членів
даної прогресії: A, A · D, A · D2, A · D3, ....
Array5. Дано ціле число N (> 2). Сформувати і вивести цілочисельний масив розміру N,
що містить N перших елементів послідовності чисел Фібоначчі FK:
F1 = 1, F2 = 1, FK = FK-2 + FK-1, K = 3, 4, ....
Array6. Дано цілі числа N (> 2), A і B. Сформувати і вивести цілочисельний масив
розміру N, перший елемент якого дорівнює A, другий дорівнює B, а кожний
наступний елемент дорівнює сумі всіх попередніх.
Array7. Дан масив розміру N. Вивести його елементи в зворотному порядку.
Array8. Дан цілочисельний масив розміру N. Вивести всі що містяться в даному масиві
непарні числа в порядку зростання їх індексів, а також їх кількість K.
Array9. Дан цілочисельний масив розміру N. Вивести всі що містяться в даному масиві
парні числа в порядку зменшення їх індексів, а також їх кількість K.
Array10. Дан цілочисельний масив розміру N. Вивести спочатку всі що містяться в
даному масиві парні числа в порядку зростання їх індексів, а потім - всі непарні
числа в порядку зменшення їх індексів.
Array11. Дано масив A розміру N і ціле число K (1 ≤ K ≤ N). Вивести елементи масиву з
порядковими номерами, кратними K: AK, A2 · K, A3 · K, .... Умовний оператор
не використовувати.
Array12. Дано масив A розміру N (N - парне число). Вивести його елементи з парними
номерами в порядку зростання номерів: A2, A4, A6, ..., AN. Умовний оператор не
використовувати.
Array13. Дано масив A розміру N (N - непарне число). Вивести його елементи з
непарними номерами в порядку зменшення номерів: AN, AN-2, AN-4, ..., A1.
Умовний оператор не використовувати.
Array14. Дано масив A розміру N. Вивести спочатку його елементи з парними номерами
(в порядку зростання номерів), а потім - елементи з непарними номерами
(також в порядку зростання номерів): A2, A4, A6, ..., A1, A3, A5, ... . Умовний
оператор не використовувати.
Array15. Дано масив A розміру N. Вивести спочатку його елементи з непарними
номерами в порядку зростання номерів, а потім - елементи з парними номерами
в порядку зменшення номерів: A1, A3, A5, ..., A6, A4, A2. Умовний оператор не
використовувати.
Array16. Дано масив A розміру N. Вивести його елементи в наступному порядку: A 1, AN,
A2, AN-1, A3, AN-2, ....
4
Array17. Дано масив A розміру N. Вивести його елементи в наступному порядку: A 1, A2,
AN, AN-1, A3, A4, AN-2, AN-3, ....
Array18. Дано масив A ненульових цілих чисел розміру 10. Вивести значення першого з
тих його елементів AK, які задовольняють нерівності AK <A10. Якщо таких
елементів немає, то вивести 0.
Array19. Дан цілочисельний масив A розміру 10. Вивести порядковий номер останнього
з тих його елементів AK, які задовольняють подвійному нерівності
A1 <AK <A10. Якщо таких елементів немає, то вивести 0.
Array20. Дан масив розміру N і цілі числа K і L (1 ≤ K ≤ L ≤ N). Знайти суму елементів
масиву з номерами від K до L включно.
Array21. Дан масив розміру N і цілі числа K і L (1 ≤ K ≤ L ≤ N). Знайти середнє
арифметичне елементів масиву з номерами від K до L включно.
Array22. Дан масив розміру N і цілі числа K і L (1 <K ≤ L ≤ N). Знайти суму всіх
елементів масиву, крім елементів з номерами від K до L включно.
Array23. Дан масив розміру N і цілі числа K і L (1 <K ≤ L ≤ N). Знайти середнє
арифметичне всіх елементів масиву, крім елементів з номерами від K до L
включно.
Array24. Дан цілочисельний масив розміру N, що не містить однакових чисел.
Перевірити, чи утворюють його елементи арифметичну прогресію (див.
Завдання Array3). Якщо утворюють, то вивести різницю прогресії, якщо немає -
вивести 0.
Array25. Дан масив ненульових цілих чисел розміру N. Перевірити, чи утворюють його
елементи геометричну прогресію (див. завдання Array4). Якщо утворюють, то
вивести знаменник прогресії, якщо ні - вивести 0.
Array26. Дан цілочисельний масив розміру N. Перевірити, чергуються в ньому парні і
непарні числа. Якщо чергуються, то вивести 0, якщо немає, то вивести
порядковий номер першого елемента, що порушує закономірність.
Array27. Дан масив ненульових цілих чисел розміру N. Перевірити, чергуються в ньому
додатні і негативні числа. Якщо чергуються, то вивести 0, якщо немає, то
вивести порядковий номер першого елемента, що порушує закономірність.
Array28. Дано масив A розміру N. Знайти мінімальний елемент з його елементів з
парними номерами: A2, A4, A6, ....
Array29. Дано масив A розміру N. Знайти максимальний елемент з його елементів з
непарними номерами: A1, A3, A5, ....
Array30. Дан масив розміру N. Знайти номери тих елементів масиву, які більше свого
правого сусіда, і кількість таких елементів. Знайдені номера виводити в
порядку їх зростання.
Array31. Дан масив розміру N. Знайти номери тих елементів масиву, які більше свого
лівого сусіда, і кількість таких елементів. Знайдені номера виводити в порядку
їх зменшення.
Array32. Дан масив розміру N. Знайти номер його першого локального мінімуму
(локальний мінімум - це елемент, який менше будь-якого зі своїх сусідів).
Array33. Дан масив розміру N. Знайти номер його останнього локального максимуму
(локальний максимум - це елемент, який більше будь-якого зі своїх сусідів).
Array34. Дан масив розміру N. Знайти максимальний з його локальних мінімумів
(визначення локального мінімуму дано в завданні Array32).
5
Array35. Дан масив розміру N. Знайти мінімальний з його локальних максимумів
(визначення локального максимуму дано в завданні Array33).
Array36. Дан масив розміру N. Знайти максимальний з його елементів, які не є ні
локальним мінімумом, ні локальним максимумом (визначення локального
мінімуму і локального максимуму дані в завданнях Array32 і Array33). Якщо
таких елементів в масиві немає, то вивести 0 (як дійсне число).
Array37. Дан масив розміру N. Знайти кількість ділянок, на яких його елементи
зростають.
Array38. Дан масив розміру N. Знайти кількість ділянок, на яких його елементи
зменшуються.
Array39. Дан масив розміру N. Знайти кількість його проміжків монотонності (тобто
Ділянок, на яких його елементи зростають або зменшуються).
Array40. Дано число R і масив A розміру N. Знайти елемент масиву, який найбільш
близький до числа R (тобто такий елемент AK, для якого величина | AK - R | є
мінімальною).
Array41. Дан масив розміру N. Знайти два сусідні елементи, сума яких максимальна, і
вивести ці елементи в порядку зростання їх індексів.
Array42. Дано число R і масив розміру N. Знайти два сусідні елементи масиву, сума яких
найбільш близька до числа R, і вивести ці елементи в порядку зростання їх
індексів (визначення найбільш близьких чисел дано в завданні Array40).
Array43. Дан цілочисельний масив розміру N, всі елементи якого впорядковані (по
зростанню або по спадаючій). Знайти кількість різних елементів в даному
масиві.
Array44. Дан цілочисельний масив розміру N, що містить рівно два однакових елемента.
Знайти номери однакових елементів і вивести ці номери в порядку зростання.
Array45. Дан масив розміру N. Знайти номери двох найближчих елементів з цього
масиву (тобто Елементів з найменшим модулем різниці) і вивести ці номери в
порядку зростання.
Array46. Дано число R і масив розміру N. Знайти два різних елемента масиву, сума яких
найбільш близька до числа R, і вивести ці елементи в порядку зростання їх
індексів (визначення найбільш близьких чисел дано в завданні Array40).
Array47. Дан цілочисельний масив розміру N. Знайти кількість різних елементів в
даному масиві.
Array48. Дан цілочисельний масив розміру N. Знайти максимальну кількість його
однакових елементів.
Array49. Дан цілочисельний масив розміру N. Якщо він є перестановкою, тобто містить
всі числа від 1 до N, то вивести 0; в іншому випадку вивести номер першого
неприпустимого елемента.
Array50. Дан цілочисельний масив A розміру N, який є перестановкою (визначення
перестановки дано в завданні Array49). Знайти кількість інверсій в даній
перестановці, тобто таких пар елементів AI і AJ, в яких більша кількість
знаходиться зліва від меншого: AI> AJ при I <J.
6
Таблиця 2 - Перетворення одновимірних масивів
Array65. Дано масив A розміру N і ціле число K (1 ≤ K ≤ N). Перетворити масив,
збільшивши кожен його елемент на початкове значення елемента AK.
Array66. Дан цілочисельний масив розміру N. Збільшити всі парні числа, що містяться в
масиві, на початкове значення першого парного числа. Якщо парні числа в
масиві відсутні, то залишити масив без змін.
Array67. Дан цілочисельний масив розміру N. Збільшити всі непарні числа, що містяться
в масиві, на початкове значення останнього непарного числа. Якщо непарні
числа в масиві відсутні, то залишити масив без змін.
Array68. Дан масив розміру N. Поміняти місцями його мінімальний і максимальний
елементи.
Array69. Дан масив розміру N (N - парне число). Поміняти місцями його перший
елемент з другим, третій - з четвертим і т. Д.
Array70. Дан масив розміру N (N - парне число). Поміняти місцями першу і другу
половини масиву.
Array71 . Дан масив розміру N. Поміняти порядок його елементів на зворотний.
Array72. Дано масив A розміру N і цілі числа K і L (1 ≤ K <L ≤ N). Переставити в
зворотному порядку елементи масиву, розташовані між елементами AK і AL,
включаючи ці елементи.
Array73. Дано масив A розміру N і цілі числа K і L (1 ≤ K <L ≤ N). Переставити в
зворотному порядку елементи масиву, розташовані між елементами AK і AL,
не включаючи ці елементи.
Array74. Дан масив розміру N. Обнулити елементи масиву, розташовані між його
мінімальним і максимальним елементами (не включаючи мінімальний і
максимальний елементи).
Array75. Дан масив розміру N. Переставити в зворотному порядку елементи масиву,
розташовані між його мінімальним і максимальним елементами, включаючи
мінімальний і максимальний елементи.
Array76. Дан масив розміру N. Обнулити всі його локальні максимуми (тобто числа,
більші за своїх сусідів).
Array77. Дан масив розміру N. Звести в квадрат всі його локальні мінімуми (тобто числа,
менші своїх сусідів).
Array78. Дан масив розміру N. Замінити кожен елемент масиву на середнє арифметичне
цього елемента і його сусідів.
Array79. Дан масив розміру N. Здійснити зрушення елементів масиву вправо на одну
позицію (при цьому A1 перейде в A2, A2 - в A3, ..., AN-1 - в AN, a початкове
значення останнього елемента буде втрачено). Перший елемент отриманого
масиву покласти рівним 0.
Array80. Дан масив розміру N. Здійснити зрушення елементів масиву вліво на одну
позицію (при цьому AN перейде в AN-1, AN-1 - в AN-2, ..., A2 - в A1, a початкове
значення першого елемента буде втрачено). Останній елемент отриманого
масиву покласти рівним 0.
Array81. Дан масив розміру N і ціле число K (1 ≤ K <N). Здійснити зрушення елементів
масиву вправо на K позицій (при цьому A1 перейде в AK + 1, A2 - в AK + 2, ..., AN-K
- в AN, а початкове значення K останніх елементів буде втрачено). Перші K
елементів отриманого масиву покласти рівними 0.
7
Array82. Дан масив розміру N і ціле число K (1 ≤ K <N). Здійснити зрушення елементів
масиву вліво на K позицій (при цьому AN перейде в AN-K, AN-1 - в AN-K-1, ..., AK
+ 1 - в A1, а початкове значення K перших елементів буде втрачено). Останні K
елементів отриманого масиву покласти рівними 0.
Array83. Дан масив розміру N. Здійснити циклічний зсув елементів масиву вправо на
одну позицію (при цьому A1 перейде в A2, A2 - в A3, ..., AN - в A1).
Array84. Дан масив розміру N. Здійснити циклічний зсув елементів масиву вліво на одну
позицію (при цьому AN перейде в AN-1, AN-1 - в AN-2, ..., A1 - в AN).
Array85. Дано масив A розміру N і ціле число K (1 ≤ K ≤ 4, K <N). Здійснити циклічний
зсув елементів масиву вправо на K позицій (при цьому A1 перейде в AK + 1, A2
- в AK + 2, ..., AN - в AK). Допускається використовувати допоміжний масив з 4
елементів.
Array86. Дано масив A розміру N і ціле число K (1 ≤ K ≤ 4, K <N). Здійснити циклічний
зсув елементів масиву вліво на K позицій (при цьому AN перейде в AN-K, AN-
1 - в AN-K-1, ..., A1 - в AN-K + 1). Допускається використовувати допоміжний
масив з 4 елементів.
Array87. Дан масив розміру N, всі елементи якого, крім першого, впорядковані за
зростанням. Зробити масив упорядкованим, перемістивши перший елемент на
нову позицію.
Array88. Дан масив розміру N, всі елементи якого, крім останнього, впорядковані за
зростанням. Зробити масив упорядкованим, перемістивши останній елемент на
нову позицію.
Array89. Дан масив розміру N, всі елементи якого, крім одного, впорядковані за
спаданням. Зробити масив упорядкованим, перемістивши елемент, що порушує
впорядкованість, на нову позицію.
Array90. Дан масив розміру N і ціле число K (1 ≤ K ≤ N). Видалити з масиву елемент з
порядковим номером K.
Array91. Дан масив розміру N і цілі числа K і L (1 ≤ K <L ≤ N). Видалити з масиву
елементи з номерами від K до L включно і вивести розмір отриманого масиву і
його вміст.
Array92 Дан цілочисельний масив розміру N. Видалити з масиву всі непарні числа і
°. вивести розмір отриманого масиву і його вміст.
Array93. Дан цілочисельний масив розміру N (> 2). Видалити з масиву всі елементи з
парними номерами (2, 4, ...). Умовний оператор не використовувати.
Array94. Дан цілочисельний масив розміру N (> 2). Видалити з масиву всі елементи з
непарними номерами (1, 3, ...). Умовний оператор не використовувати.
Array95. Дан цілочисельний масив розміру N. Видалити з масиву всі сусідні однакові
елементи, залишивши їх перші входження.
Array96. Дан цілочисельний масив розміру N. Видалити з масиву всі однакові елементи,
залишивши їх перші входження.
Array97 Дан цілочисельний масив розміру N. Видалити з масиву всі однакові елементи,
залишивши їх останні входження.
Array98. Дан цілочисельний масив розміру N. Видалити з масиву всі елементи, що
зустрічаються менше трьох разів, і вивести розмір отриманого масиву і його
вміст.
Array99. Дан цілочисельний масив розміру N. Видалити з масиву всі елементи, що
зустрічаються більше двох разів.
8
Array100. Дан цілочисельний масив розміру N. Видалити з масиву всі елементи, що
зустрічаються рівно два рази, і вивести розмір отриманого масиву і його вміст.
Array101. Дан масив розміру N і ціле число K (1 ≤ K ≤ N). Перед елементом масиву з
порядковим номером K вставити новий елемент з нульовим значенням.
Array102. Дан масив розміру N і ціле число K (1 ≤ K ≤ N). Після елемента масиву з
порядковим номером K вставити новий елемент з нульовим значенням.
Array103. Дан масив розміру N. Вставити елемент з нульовим значенням перед
мінімальним і після максимального елемента масиву.
Array104. Дан масив розміру N і два цілих числа K і M (1 ≤ K ≤ N, 1 ≤ M ≤ 10). Перед
елементом масиву з номером K вставити M нових елементів з нульовими
значеннями.
Array105. Дан масив розміру N і два цілих числа K і M (1 ≤ K ≤ N, 1 ≤ M ≤ 10). Після
елемента масиву з номером K вставити M нових елементів з нульовими
значеннями.
Array106. Дан масив розміру N. Продублювати в ньому елементи з парними номерами (2,
4, ...). Умовний оператор в циклі не використовувати.
Array107. Дан масив розміру N. Потроїти в ньому входження всіх елементів з непарними
номерами (1, 3, ...). Умовний оператор в циклі не використовувати.
Array108. Дан масив розміру N. Перед кожним додатним елементом масиву вставити
елемент з нульовим значенням.
Array109. Дан масив розміру N. Після кожного негативного елемента масиву вставити
елемент з нульовим значенням.
Array110. Дан цілочисельний масив розміру N. Продублювати в ньому всі парні числа.
Array111. Дан цілочисельний масив розміру N. Потроїти в ньому входження всіх
непарних чисел.

You might also like