Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Паскаль.doc
Скачиваний:
62
Добавлен:
06.02.2015
Размер:
1.38 Mб
Скачать

Дополнительное задание (до 3 баллов)

Составить программу вычисления значения вещественного выражения, записанного в обычной форме, и содержащего константы, знаки операций, скобки и функции. Ввод выражения предусмотреть из файла, имя которого вводится с клавиатуры, вывод значения – на экран.

Лабораторная работа №28 Работа с бинарными деревьями

Задание 1

Составьте процедуру создания Вашего генеалогического дерева. Запишите в него всех своих прямых предков, про которых Вы хоть что-нибудь знаете, указав их номер, ФИО, степень родства, годы жизни, профессию. При отсутствии соответствующих сведений в данной графе заносится какая-нибудь метка типа «-».

Задание 2

Составьте процедуру печати в виде таблицы информации о своих предках при обходе дерева «в глубину».

Задание 3

Составьте функции или процедуры для решения одной из следующих задач:

Посчитать количество элементов данного дерева;

Посчитать глубину данного дерева;

Найти данный элемент в данном дереве (ответ – указатель);

Найти данный элемент в данном дереве (ответ – логический);

Удалить данный элемент из данного дерева (удалить его, если он крайний и стереть информацию о нем, если он не является крайним);

Вставить данный элемент в нужное место генеалогического дерева.

Задание 4

Кроме вывода информации в виде таблицы, составьте процедуру вывода информации в виде дерева предков (т.е. снизу вверх).

Задание 5

Реализуйте в виде процедуры обход дерева «в ширину».

Лабораторная работа №29 Работа с деревьями поиска

Задание 1

Загрузите Вашу программу с предыдущей лабораторной работы. Составьте процедуру перенумерации вершин произвольного дерева таким образом, чтобы оно стало деревом поиска. Опробуйте ее работу на примере своего генеалогического дерева.

Задание 2

Сохраните программу. Смените у нее имя и в новой программе удалите все лишнее, оставив только описание (в новом дереве у каждого элемента будут только ключи-целые числа) и процедуры печати. Дополните программу процедурой ввода массива целых чисел, по которому будет строиться дерево с ключами, равными значениям элементов массива.

Задание 3-4

1. Составьте процедуру добавления одного элемента в дерево поиска и с ее помощью создайте процедуру, которая по массиву ключей создает дерево поиска с этими ключами. Опробуйте ее работу.

2. Составьте функции или процедуры для решения одной из следующих задач:

Найти данный элемент в дереве поиска (ответ – указатель);

Найти данный элемент в дереве поиска (ответ – логический);

Посчитать глубину данного дерева;

Посчитать количество элементов в данном дереве;

*Удалить элемент с данным ключом из дерева поиска

Задание 5

Модифицируйте предыдущую программу так, чтобы с помощью дерева поиска решалась задача о частоте вхождения всех чисел в данный массив (аналог задачи о частотном словаре в тексте).

Дополнительные задания

Составьте программу для:

  • создания сбалансированного дерева поиска по данному массиву (при этом создать и использовать процедуры левого и правого поворотов) (до 2 баллов);

  • создания частотного словаря по данному текстовому файлу (1 балл).

Лабораторная работа №30 Создание деревьев разбора выражений

Задание 1

Составьте программу построения дерева разбора арифметического выражения, содержащего только вещественные числа и знаки четырех арифметических операций.

Задание 2-3

Составьте процедуры печати дерева в инфиксной, постфиксной форме и в виде дерева.

Задание 4

Составьте процедуру или функцию вычисления значения выражения по дереву его разбора. Проверьте ее на различных выражениях.

Задание 5

Измените программу так, чтобы она корректно обрабатывала выражения, содержащие скобки.

Дополнительные задания.

  • Дополните программу разбора арифметического выражения диагностикой ошибок (1 балл);

  • Модифицируйте программу так, чтобы можно было работать с выражениями, содержащими функции. При этом предусмотреть для тестирования ввод выражения из текстового файла, состоящего из одной строки (до 3 баллов);

  • Создайте другую программу, с помощью которой можно разбирать логические выражения, содержащие константы, переменные, скобки и 3 операции: and, or, not (до 2 баллов);

  • Составьте программу разбора выражения со строковыми и арифметическими операциями (до 3 баллов).