Программирование рекурсивных алгоритмов
Автор: matane • Апрель 20, 2022 • Лабораторная работа • 2,982 Слов (12 Страниц) • 215 Просмотры
Липецкий государственный технический университет[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6]
Кафедра Высшей Математики
ЛАБОРАТОРНАЯ РАБОТА №9
по программированию
Вариант — 6
Программирование рекурсивных алгоритмов
(Циклическая и рекурсивная обработка информации)
______________________________________________________________________
наименование темы
Студент ______________________ Киселёв Г. С.
подпись, дата
Группа МА-19-1
Руководитель
к.т.н. _______________________ Кургасов В. В.
подпись, дата
Липецк, 2020
Цель: Освоить принципы реализации рекурсивных алгоритмов обработки информации на примере задач с обходом дерева и матричных операций на языке C++
Задание:
[pic 7]
Вариант 6 (2):
[pic 8]
[pic 9]
Алгоритм программы:
- Определить минимальное и максимальное количество элементов, идущих от родительского (2 и 3 соответственно)
- Определить структуру, хранящую количество уровней, элементы и ссылки на узлы
- Создать указатель на корень дерева
- Алгоритмы, требуемые для выполнения:
- [Выделение памяти под новый узел]
- [Присвоение родительскому элементу узла значения]
- [Добавление новых узлов от родительского узла]
- Если позиция следующего элемента не равна MAX создать новый узел
- [Установка значений в узел]
- Проверка на повторяющиеся значения
- Если таковых нет, то добавить значение в узел
- Если же позиция следующего элемента равна MAX, то создать для последующих элементов узел, от родительского
- [Добавление элементов с клавиатуры]
- Если есть новый узел, то:
- Заполнить его
- Выделить под него память
- [Расчёт кол-ва строк в файле]
- Пока файл читается увеличивать значение кол-ва строк
- [Добавление элементов из файла]
- Если пусть к файлу не был указан ранее, узнать путь у пользователя
- Открыть файл
- Рассчитав кол-во строк, в цикле вывести значения из файла во временную переменную, а потом добавить их в дерево
- Закрыть файл
- [Среднее значение]
- Пока не закончатся узлы с помощью рекурсивных алгоритмов суммировать значения узлов
- Поделить их сумму на количество элементов
- [Вывод в файл]
- Если пусть к файлу не был указан ранее, узнать путь у пользователя
- Открыть файл
- Пока не закончатся узлы с помощью рекурсивных алгоритмов выводить значения узлов в файл
- Закрыть файл
- [Вывод в консоль]
- Пока не закончатся узлы с помощью рекурсивных алгоритмов выводить значения узлов на экран
Код программы:
#include <iostream> // шаблон класса реализующий высоком уровне операции ввода / вывода в консоль на основе потоков
#include <string> // шаблон класса хранит и управляет последовательностью char-подобных объектов
#include <Windows.h> // шаблон класса содержит определения всех функий Windows API
#include <fstream> // шаблон класса реализующий высоком уровне операции ввода / вывода в файл на основе потоков
...