- •10. Рекурсивні процедури і функції Рекурсія – це такий спосіб організації обчислювального процесу, при якому підпрограма в ході виконання звертається сама до себе.
- •Лабораторна робота № 10 Рекурсивні процедури і функції
- •Розрізняють незв’язані і зв’язані динамічні дані.
- •Лабораторна робота № 11 Динамічні структури даних
- •12. Файли
- •Лабораторна робота № 12 Текстові файли
Лабораторна робота № 11 Динамічні структури даних
Мета роботи:
1. Засвоєння принципів роботи з динамічними структурами даних.
2. Отримання практичних навиків розробки алгоритмів і програм для роботи зі списками, чергами, стеками і деревами.
Завдання:
1. Задано текст, в якому є круглі дужки. Розробити програму, яка перевіряє збалансованість дужок у заданому тексті. Якщо дужки збалансовані, то для кожної пари друкує їх номери позицій у тексті за зростанням номерів дужок, що закриваються. Якщо дужки не збалансовані, то виводить повідомлення про це.
2. Розробити програму, яка створює список , елементами якого є цілі числа. Розміщає в оберненому порядку всі елементи між першим і останнім входженням заданого елемента, якщовходить уне менше двох разів, інакше список залишається без змін. Друкує модифікований список по п’ять елементів у рядку.
3. Розробити програму, яка створює список , елементами якого є цілі числа. Вилучає із спискувсі від’ємні елементи і поміщає їх у кінець списку в оберненому порядку до їх розміщення. Друкує модифікований список по п’ять елементів у рядку.
4. Розробити програму, яка створює бінарне дерево , елементами якого є цілі числа, знаходить і друкує всі його від’ємні елементи по рангах.
5. Розробити програму, яка створює списки і, елементами яких є слова із великих латинських літер. Знаходить всі слова списку, що не містяться у, і друкує їх, розділяючи пробілами, в оберненому порядку до їх розміщення.
6. Розробити програму, яка створює список , елементами якого є цілі числа і дописує в кінець цього списку всі елементи в оберненому порядку до їх розміщення в(тобто будується симетричний список, наприклад, 1,2,3,3,2,1). Друкує отриманий список по сім елементів у рядку.
7. Розробити програму, яка створює список , елементами якого є цілі числа. Для заданих чисел,друкує в порядку розміщення всі числа спискуменші від, потім всі числа з діапазонуі, нарешті, всі числа більші від. (Список переглядається тільки один раз).
8. Розробити програму, яка створює список , елементами якого є дійсні числа. Перетворює списоктак, щоб спочатку розміщувалися всі невід’ємні елементи зі збереженням, порядку їх розміщення, а потім всі від’ємні в оберненому порядку. Друкує модифікований список по п’ять елементів у рядку.
9. Розробити програму, яка створює бінарне дерево , елементами якого є цілі числа і знаходить довжину (кількість віток) шляху від кореня до найближчої вершини з елементом.
10. Розробити програму, яка створює списки ,,, елементами яких є цілі числа. Замінює перше входження спискув список(якщо таке є) на список. Друкує модифікований списокпо десять елементів у рядку.
11. Розробити програму, яка створює список , елементами якого є дійсні числа. Перетворює списокза правилом: якщо числа упорядковані за неспаданням, то список залишається без зміни, інакше елементи у списку розміщуються в оберненому порядку. Друкує модифікований список по п’ять елементів у рядку.
12. Розробити програму, яка створює список , елементами якого є дійсні числа. Обчислює добутокі друкує значення добутку та всі елементи списку. (Для розв’язування задачі корисно використати двозв’язний список).
13. Розробити програму, яка створює список , елементами якого є дійсні числа .Будує список, елементами якого є числа ,. Друкує отриманий список по п’ять елементів у рядку.
14. Розробити програму, яка створює списки і, елементами яких є цілі числа (елементи у спискуупорядковані за неспаданням, а у спискурозміщені довільно). Вставляє елементи спискуутак, щобзалишився упорядкованим. Друкує модифікований списокпо десять елементів у рядку.
15. Розробити програму, яка створює список , елементами якого є малі латинські літери. Друкує в алфавітному порядку всі літери, що входять у список, по одному разу, по декілька разів і не входять жодного разу.
16. Розробити програму, яка створює бінарне дерево , елементами якого є цілі числа, і обчислює суму елементів цього дерева.
17. Задано текст, у якому є круглі дужки. Розробити програму, яка перевіряє збалансованість дужок у заданому тексті. Якщо дужки збалансовані, то для кожної пари друкує їх номери позицій у тексті за зростанням номерів дужок що відкриваються. Якщо дужки не збалансовані, то виводить повідомлення про це.
18. Розробити програму, яка створює список , елементами якого є символи. Вилучає із спискувсі повторні входження кожного символу. Друкує модифікований список по п’ять елементів у рядку.
19. По кругу розміщаються дітей. Відлік починається від першого і кожний-ий вилучається, а круг змикається. Розробити програму, яка визначає порядок вилучення дітей із круга.
20. Розробити програму, яка створює бінарне дерево , елементами якого є дійсні числа. Знаходить і друкує найбільший та найменший елементи дерева.
21. Розробити програму, яка створює списки і, елементами яких є слова із великих латинських літер. Знаходить всі слова списку, що містяться в, і друкує, розділяючи їх пробілами, в оберненому порядку до їх розміщення.
22. Розробити програму, яка створює бінарне дерево , елементами якого є дійсні числа. Підраховує середнє арифметичне всіх елементів дереваі друкує це значення та значення його елементів.
23. Задана без помилок символьна формула виду: <формула>::=<цифра> М(<формула>,<формула>)m(<формула>,<формула>; <цифра>::=012…9, де М, m – функції обчислення максимуму і мінімуму відповідно. Розробити програму обчислення значення заданої формули (наприклад, М(5,m(6.8))–> 6).
24. Розробити програму, яка створює бінарне дерево , елементами якого є дійсні числа, і визначає його максимальну глибину, тобто кількість віток у найдовшому шляху від кореня до листя.
25. Розробити програму, яка створює список , елементами якого є слова із великих латинських літер, знаходить і друкує, розділяючи пробілами, всі слова, що входять у списокпо одному разу.
26. Розробити програму, яка створює список , елементами якого є цілі числа Вставляє у списокперед кожним входженням елементаелемент. Друкує модифікований список по п’ять елементів у рядку.
27. Розробити програму, яка створює список , елементами якого є цілі числа. Вилучає із спискупісля кожного входження елементанаступний елемент і поміщає всі вилучені елементи на початок списку в порядку їх розміщення. Друкує модифікований список по десять елементів у рядку.
28. Розробити програму, яка створює бінарне дерево , елементами якого є дійсні числа, будує і друкує його копію.
29. Розробити програму, яка створює списки і, елементами яких є слова. Знаходить і вилучає із спискувсі слова, що також містяться у списку. Друкує модифікований список, розділяючи слова пробілами.
30. Розробити програму, яка створює список , елементами якого є цілі числа. Знаходить у спискуі друкує найдовший ланцюжок чисел, що задовольняють умову: