Похожие презентации:
Левин
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.
• Освоены принципы модульного проектирования и разработки ПО.
• Вывод: Цели и задачи практики полностью выполнены.