Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_Lab_OP_2_v2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
872.96 Кб
Скачать

8.3. Варіанти завдань

  1. Текстовий файл містить програму мовою Паскаль. Надрукувати в алфавітному порядку всі ідентифікатори цієї програми, вказавши для кожного з них число входжень у текст програми. Для збереження ідентифікаторів використати структуру типу дерева, елементами якого є ідентифікатор і число його входжень у текст.

  2. Побудувати дерево, що відображає формулу (а*(в+с))/d, де коренем дерева та його підкоренями є операції "*,+,-,/", а листками є змінні a,b,c,d. Надрукувати дерево переліком своїх вершин на рівнях, які містять відповідні вершини.

  3. Скласти програму, що обчислює кількість 'вузлів' заданого бінарного дерева та друкує всі елементи дерева з кореня до кінцевих вершин.

  4. Побудувати дерево, що відображає формулу ((a+b)/c)*d, де коренем дерева та його підкоренями є операції, а листками є змінні. Ввести значення змінних та визначити значення дерева-формули. Надрукувати відповідні піддерева, наприклад: у1=а+Ь, y2:=:y1/c, y3=y2*d.

  5. Текстовий файл містить програму мовою Паскаль. Надрукувати в алфавітному порядку всі ідентифікатори цієї програми, вказавши для кожного з них число входжень в текст програми, та поряд з кожним ідентифікатором вказати у зростаючому порядку номери всіх рядків, де він зустрічається. Для збереження ідентифікаторів використати структуру типу дерева, елементами якого є ідентифікатор і число його входжень у текст.

  6. Побудувати дерево, що відображає формулу ( (a+b)*c-d) , де коренем дерева та його підкоренями є операції " +,-,*,/", а листками є змінні a, b, c, d . Вивести значення дерева-формули. Надрукувати відповідні піддерева у1=а+Ь, у2=у1*с, y3=y2-d.

  7. Текстовий файл містить програму мовою Паскаль. Надрукувати в порядку зростання номери всіх рядків, що містять кожний ідентифікатор програми. Для збереження ідентифікаторів використати структуру типу дерева, елементами якого є ідентифікатор і номер рядка, де вони зустрічаються.

  8. Побудувати двійкове дерево. Визначити, чи знаходиться у цьому дереві елемент, значення якого вводиться з клавіатури. Якщо елемент знайдений, то підрахувати число його входжень.

  9. Побудувати бінарне дерево. Знайти значення найбільшого елемента цього дерева та надрукувати його.

  10. Маємо бінарне дерево. Підрахувати кількість вершин на n-му рівні цього дерева (нульовий рівень - корінь цього дерева) та надрукувати ці елементи.

  11. Написати програму, що визначає максимальну глибину дерева (число гілок на найбільшому з маршрутів від кореня дерева до листків.)

  12. Написати програму, що будує дерево, визначає кількість вершин на n-му його рівні та кількість рівнів.

  13. Написати програму, яка відповідно до виразу, що читається з текстового файлу, будує дерево-формулу, друкує його, обчислює значення формули.

  14. Написати програму, яка будує дерево наступного типу:

n.

/ \

n-1 n-1

/ \ / \

..........

2 2

/ \ / \

1 1 1 1

, де n -додатнє ціле число

  1. Написати програму, що будує дерево та робить його копію.

  2. Написати програму, що будує дерево та знаходить у ньому значення елемента, введеного з клавіатури, визначаючи номер рівня.

  3. Написати програму, що будує дерево та знаходить довжину шляху (число гілок) від кореня до значення елемента, введеного з клавіатури. Різновид дерева вибрати самостійно.

  4. Написати програму, що будує дерево та обчислює середнє арифметичне усіх його елементів. Вивести дерево на друк.

  5. Написати програму, що будує дерево та міняє місцями найбільший та найменший елементи дерева. Вивести дерево на друк.

  6. Написати програму, що будує дерево, визначає усі термінальні вершини (листя) дерева і друкує їх.

  7. Написати програму, що будує дерево, елементами якого є числа. Надрукувати дерево. Визначити кількість від'ємних та додатніх елементів дерева.

  8. Написати програму, що будує дерево та його друкує. Визначити кількість вузлових вершин та надрукувати їх координати (номер рівня та номер гілки).

  9. Написати програму, що будує дерево та перевіряє його на рівність з іншими деревами.

  10. Написати програму, що будує граф (частковий вид дерева) та визначає найбільший маршрут від початкової вершини до останньої при заданих довжинах шляхів між вершинами.

  11. Написати програму, що будує дерево та доповнює його вершинами відповідно до вимог користувача.

  12. Написати програму, що будує дерево-формулу та перетворює в ньому всі піддерева, що відповідають формулам ((f1f2)*f3), на піддерева виду ((f1*f3)(f2*f3)).

  13. За текстом програми побудувати дерево викликів процедур, наприклад:

main , де main - головна програма, p1, p2, p3 - процедури.

/\

p1 p2

|

p3...

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

  2. Заданий рядок символів латинського алфавіту. Побудувати де­рево, в якому значеннями вершин є символи, що розміщуються на рівнях відповідно до кількості їх повторень у рядку.

  3. Текстовий файл містить програму мовою Паскаль. Для збереження ідентифікаторів програми використати структуру типу де­рева, елементами якого є ідентифікатори. Номер рядка, в якому оголошений ідентифікатор, визначає рівень дерева. Ліва гілка дерева визначає змінні, права гілка - константи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]