- •Лабораторные работы. Сборник задач.
- •Оглавление
- •Часть 1. Лаборатоные работы
- •Работа со структурами и объединениями …………………………………….91
- •3 Задача
- •4 Задача
- •5 Задача
- •6 Задача
- •Дополнительное условие:использование цикла с предусловием.
- •1 Задача
- •2 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функций.
- •3 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функции.
- •4 Задача
- •Дополнительное условие: программа написана без использования функции
- •Дополнительное условие: программа написана с использованием функции.
- •Самостоятельная работа
- •Лабораторная работа №3
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •Лабораторная работа №6
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •4 Задача
- •Синтаксический анализатор
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •3 Задача
- •Работа с каталогами
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •1 Задача Реализовать очередь, состоящую из целых чисел
- •Комментарий:
- •2 Задача
- •1 Задача
- •Идеально-сбалансированные деревья
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности.
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •Работа с несколькими массивами
- •Преобразование массива
- •Изменение элементов массива
- •2 Уровень сложности Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Преобразование массива
- •Изменение элементов массива
- •Удаление и вставка элементов
- •Серии целых чисел
- •3 Уровень сложности Множества точек на плоскости
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •Not простое_логическое
- •(Простое_логическое знак_операции простое_логическое)
- •Построить синтаксический анализатор для понятия предложение.
- •1 Уровень сложности
- •2 Уровень сложности
- •1 Уровень сложности
- •Примеры:
- •Двусвязные списки
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
3 Уровень сложности
Построить частотный словарь.
Формулу вида
<формула>::=<терминал>|(<формула><знак><формула>)
<знак>::= + | - | *
<терминал>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
можно представить в виде двоичного дерева ("дерева-формулы") согласно следующим правилам: формула из одного терминала (цифры) представляется деревом из одной вершины с этим терминалом, а формула вида (f1sf2) – деревом, в котором корень – это знакs, а левое и правое поддеревья – это соответствующие представления формулf1 иf2.
Пример: (5*(3+8))
по формуле из текстового файла построить соответствующее дерево-формулу;
вычислить (как целое число) значение дерева-формулы;
распечатать дерево-формулу в инфиксной форме;
распечатать дерево-формулу в префиксной форме;
распечатать дерево-формулу в постфиксной форме.
Построить дерево-пирамиду, т.е. дерево, обладающее следующими признаками: во-первых, значение элемента в любом узле <= значений его “сыновей” (корень – наименьший элемент дерева), во-вторых, концевые узлы расположены не более, чем на двух уровнях, причем, нижний уровень сдвинут влево насколько это возможно. В дереве нет "дырок".
Формулу вида
<формула>::=<терминал>|(<формула><знак><формула>)
<знак>::= + | - | *
<терминал>::=<цифра>|<переменная>
<цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<переменная>::=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
можно представить в виде двоичного дерева ("дерева-формулы") согласно следующим правилам: формула из одного терминала представляется деревом из одной вершины с этим терминалом, а формула вида (f1sf2) – деревом , в котором корень – это знакs, а левое и правое поддеревья – это соответствующие представления формулf1 иf2.
Упростить дерево-формулу T, заменяя в нем все поддеревья, соответствующие формулам (f+0), (0+f), (f-0), (f*1), (1*f), на поддеревья, соответствующие формулеf, а поддеревья, соответствующие формулам (f*0) и (0*f), – на вершину с 0.
Преобразовать дерево-формулу T, заменяя в нем
поддеревья, соответствующие формуле
на поддеревья, соответствующие формуле
((f1+f2)*f3)
((f1*f3)+(f2*f3))
((f1-f2)*f3)
((f1*f3)-(f2*f3))
(f1*(f2+f3))
((f1*f2)+(f1*f3))
(f1*(f2-f3))
((f1*f2)-(f1*f3))
Преобразовать дерево-формулу T, заменяя в нем
поддеревья, соответствующие формуле |
на поддеревья, соответствующие формуле |
((f1*f3)+(f2*f3)) |
((f1+f2)*f3) |
((f1*f3)-(f2*f3)) |
((f1-f2)*f3) |
((f1*f2)+(f1*f3)) |
(f1*(f2+f3)) |
((f1*f2)-(f1*f3)) |
(f1*(f2-f3)) |
4. Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах включает: номер УДК, фамилия и инициалы автора, название, год издания, количество экземпляров данной книги в библиотеки.
Программа должна обеспечивать:
начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева,
добавление данных о книгах, вновь поступающих в библиотеку, удаление данных о списываемых книгах,
по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.
Составить программу, которая содержит текущую информацию о заявках на авиабилеты.
Каждая заявка включает: пункт назначения, номер рейса, фамилию и инициалы пассажира, желаемую дату вылета. Программа должна обеспечивать:
хранение всех заявок в виде двоичного дерева,
добавление и удаление заявок,
по заданному номеру рейса и дате вылета вывод заявок с их последующем удалением,
вывод всех заявок.
Англо-русский словарь построен в виде двоичного дерева. Каждая компонента содержит английское слово, соответствующее ему русское слово и счетчик количества обращений к данной компоненте. Первоначальное дерево формируется в порядке английского алфавита. В процессе эксплуатации словаря при каждом обращении к компоненте к счетчику обращений прибавляется единица. Написать программу, которая:
Обеспечивает начальный ввод словаря с конкретными значениями счетчиков обращений;
Формирует новое представление словаря в виде двоичного дерева по следующему алгоритму:
в старом словаре ищется компонента с наибольшим значением счетчика обращений;
найденная компонента заносится в новый словарь и удаляется из старого;
переход к п.а) до исчерпания исходного словаря.
Производит вывод исходного и нового словаря.
На международной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована в виде двоичного дерева.
Написать программу, которая:
обеспечивает начальное формирование картотеки в виде двоичного дерева;
производит вывод всей картотеки;
вводит номер телефона и время разговора;
выводит извещение на оплату телефонного разговора.
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается: номер поезда, станция назначения, время отправления. Данные в информационной системе организованы в виде двоичного дерева. Написать программу, которая:
обеспечивает первоначальный ввод данных в информационную систему и формирование двоичного дерева;
производит вывод всего дерева;
вводит номер поезда и выводит все данные об этом поезде;
вводит название станции назначения и выводит данные обо всех поездах, следующих до этой станции.