Отчет по учебной практике Визуальная сортировка ряда числа, 5 видов.
 Цели и задачи практики
Проект: "Визуализация пяти видов сортировки"
Выбранные алгоритмы и их обоснование:
Выбранные алгоритмы и их обоснование:
Выбранные алгоритмы и их обоснование:
Проектирование: Модульная архитектура
Разработка: Пользовательский интерфейс
Разработка: Функции-генераторы и цикл анимации
Демонстрация работы при помощи пузырькового метода
Итоги практики
Спасибо за внимание!
25.97M

Левин

1.  Отчет по учебной практике Визуальная сортировка ряда числа, 5 видов.

Отчет по учебной практике
Визуальная сортировка ряда
числа, 5 видов.
Выполнил: обучающийся группы ИСП-32КО, Левин А.А.
Руководитель практики от колледжа: С.В.Русов

2.  Цели и задачи практики

Цели и задачи практики
Цель практики:
• Разработка приложение 5 выбранных сортировок.
Задачи:
• Изучить предметную область.
• Спроектировать приложение.
• Разработать приложение.
• Протестировать приложение.

3. Проект: "Визуализация пяти видов сортировки"

Проект: "Визуализация пяти видов
сортировки"
• (картинки питона, библиотек)

4. Выбранные алгоритмы и их обоснование:

Пузырьковая (Bubble Sort): Простота и
наглядность для начинающих.
Вставками (Insertion
Sort): Эффективность на небольших и
частично отсортированных данных.

5. Выбранные алгоритмы и их обоснование:

Выбором (Selection Sort): Простота
реализации, но низкое быстродействие.
Быстрая (Quick Sort): Высокая средняя
производительность.

6. Выбранные алгоритмы и их обоснование:

• Пирамидальная (Heap Sort): Гарантированное время
выполнения.

7. Проектирование: Модульная архитектура

• Схема архитектуры:
• Основной управляющий модуль (__main__):
• Жизненный цикл приложения.
• Вызов диалогового окна.
• Запуск функции визуализации.
• Модуль пользовательского интерфейса (UI):
• create_selection_dialog(): Стартовое окно (Tkinter).
• Класс LogWindow: Окно логов (Tkinter).
• run_visualization(): Основное окно с анимацией (Matplotlib).
• Модуль логики сортировок:
• Реализация 5 алгоритмов в виде функций-генераторов (yield).
• Преимущества модульного подхода:
• Четкое разделение ответственности.
• Упрощение разработки и отладки.
• Высокая переиспользуемость кода.

8. Разработка: Пользовательский интерфейс

• Стартовое окно (create_selection_dialog):
• Основное окно визуализации (run_visualization):
• Окно логов (LogWindow):

9. Разработка: Функции-генераторы и цикл анимации

• Ключевое решение: Функции-генераторы с yield
• Каждый алгоритм сортировки реализован как генератор.
• После каждого значимого действия (сравнение, обмен) функция
"приостанавливается" с помощью yield.
• Что возвращает yield: Кортеж с текущим состоянием (массив, счетчики,
время, сообщение для лога, индексы для подсветки).
• Основной цикл анимации (в run_visualization):
• while running:: Цикл работает, пока открыто окно.
• state = next(generator): Получение следующего "кадра" от генератора
сортировки.
• ax.cla(): Очистка холста.
• ax.bar(...): Перерисовка гистограммы с новыми данными и подсветкой.
• plt.pause(0.01): Задержка для плавности и обработки событий.

10. Демонстрация работы при помощи пузырькового метода

11. Итоги практики

• Достигнутые результаты:
• Разработано и отлажено приложение для визуализации алгоритмов
сортировки.
• Применены на практике знания по языку Python и библиотекам Tkinter и
Matplotlib.
• Освоены принципы модульного проектирования и разработки ПО.
• Вывод: Цели и задачи практики полностью выполнены.

12. Спасибо за внимание!

English     Русский Rules