Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Программирование рекурсивных алгоритмов

Автор:   •  Апрель 20, 2022  •  Лабораторная работа  •  2,982 Слов (12 Страниц)  •  167 Просмотры

Страница 1 из 12

Липецкий государственный технический университет[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]

Алгоритм программы:

  1. Определить минимальное и максимальное количество элементов, идущих от родительского (2 и 3 соответственно)
  2. Определить структуру, хранящую количество уровней, элементы и ссылки на узлы
  3. Создать указатель на корень дерева
  4. Алгоритмы, требуемые для выполнения:
  5. [Выделение памяти под новый узел]
  6. [Присвоение родительскому элементу узла значения]
  7. [Добавление новых узлов от родительского узла]
  1. Если позиция следующего элемента не равна MAX создать новый узел
  1. [Установка значений в узел]
  1. Проверка на повторяющиеся значения
  2. Если таковых нет, то добавить значение в узел
  3. Если же позиция следующего элемента равна MAX, то создать для последующих элементов узел, от родительского
  1. [Добавление элементов с клавиатуры]
  1. Если есть новый узел, то:
  2. Заполнить его
  3. Выделить под него память
  1. [Расчёт кол-ва строк в файле]
  1. Пока файл читается увеличивать значение кол-ва строк
  1. [Добавление элементов из файла]
  1. Если пусть к файлу не был указан ранее, узнать путь у пользователя
  2. Открыть файл
  3. Рассчитав кол-во строк, в цикле вывести значения из файла во временную переменную, а потом добавить их в дерево
  4. Закрыть файл
  1.  [Среднее значение]
  1. Пока не закончатся узлы с помощью рекурсивных алгоритмов суммировать значения узлов
  2. Поделить их сумму на количество элементов
  1. [Вывод в файл]
  1. Если пусть к файлу не был указан ранее, узнать путь у пользователя
  2. Открыть файл
  3. Пока не закончатся узлы с помощью рекурсивных алгоритмов выводить значения узлов в файл
  4. Закрыть файл
  1. [Вывод в консоль]
  1. Пока не закончатся узлы с помощью рекурсивных алгоритмов выводить значения узлов на экран

Код программы: 

#include <iostream> // шаблон класса реализующий высоком уровне операции ввода / вывода в консоль на основе потоков

#include <string> // шаблон класса хранит и управляет последовательностью char-подобных объектов

#include <Windows.h> // шаблон класса содержит определения всех функий Windows API

#include <fstream> // шаблон класса реализующий высоком уровне операции ввода / вывода в файл на основе потоков

...

Скачать:   txt (13.5 Kb)   pdf (181.3 Kb)   docx (83 Kb)  
Продолжить читать еще 11 страниц(ы) »
Доступно только на Essays.club