Алгоритмы в движении
Визуализация сортировки массивов
Учебный проект по дисциплине «Алгоритмизация и программирование»
Язык: Pascal ABC.NET
Автор: Щепакин Д.С., студент группы ИСП-24
Научный руководитель: Криницкая Р.А.
ВТИТБиД, им. В.В. Самарского
2025
Зачем это нужно?
Абстрактные алгоритмы наглядно
Визуализация помогает преодолеть сложность абстрактных концепций алгоритмов, делая их работу понятной и доступной для изучения.
Различия в логике работы
Проект наглядно демонстрирует, как три разных метода сортировки достигают одной цели, но при этом используют совершенно разную логику и подходы.
Применение графики и анимации
Мы покажем, как возможности графических библиотек Pascal ABC.NET можно использовать для создания интерактивных учебных материалов, оживляя код.
Инструмент для уроков и практик
Созданный продукт станет ценным дидактическим материалом, который можно использовать на занятиях для объяснения и закрепления темы сортировок.
Три классических метода
Для текущего проекта были выбраны три базовых алгоритма сортировки, которые являются обязательными для изучения в рамках курса алгоритмизации.
Пузырьком
Сравнение соседних элементов и их обмен местами, если они расположены в неправильном порядке. Самые "тяжелые" элементы постепенно "всплывают" в конец массива.
Выбором
На каждом шаге находится минимальный элемент из неотсортированной части массива и меняется местами с первым элементом этой части.
Вставками
Каждый элемент поочередно берется из неотсортированной части и вставляется в уже отсортированную часть массива в правильное место.
массивов
Все три метода просты для понимания и входят в программу СПО, что делает их идеальными кандидатами для визуализации.
Всё на виду!
Каждый элемент → вертикальный столбец
Каждое число в массиве представлено отдельным столбцом, высота которого пропорциональна значению элемента. Это позволяет мгновенно оценить величину элемента.
Цветовое кодирование для ясности
Задержка между шагами
Между каждым действием алгоритма (сравнением, обменом, перемещением) предусмотрена небольшая пауза, чтобы пользователь мог отследить логику процесса и не упустить ни одной детали.
«Не просто код — живой процесс!»
Как это сделано?
1
Язык программирования
Pascal (среда Pascal ABC.NET) — мощная и удобная среда разработки, которая идеально подходит для учебных проектов
благодаря своей простоте и функциональности.
2
Графический модуль
Для отрисовки столбцов и управления цветами используется встроенный модуль GraphABC, который предоставляет
базовые функции для работы с графикой.
3
Реализация анимации
Анимация достигается за счет цикличной перерисовки экрана и использования функции Sleep() для создания задержки
между кадрами, что создает эффект движения.
4
Пользовательский интерфейс
Программа полностью интерактивна и управляется кликом мышью. Никаких консольных команд или ввода
с клавиатуры — только интуитивное взаимодействие.
5
Генерация случайных данных
Для демонстрации работы алгоритмов используются случайные массивы, генерируемые с помощью функции Randomize(),
что обеспечивает разнообразие сценариев.
Программа полностью автономна — запустил и показывай!
Как это выглядит?
Слева: выбор метода.
Центр: сравнение элементов.
Справа: результат.
Как они работают?
Рассмотрим упрощенные схемы работы каждого алгоритма сортировки на примере небольшого массива. Цветовое кодирование поможет понять, как элементы перемещаются и сравниваются.
Пузырёк
[5][3][8][1] → [3][5][1][8] → [3][1][5][8] → [1][3][5][8]
Принцип: Соседние элементы сравниваются, и более легкие "всплывают" вверх, а тяжелые "тонут" вниз. Максимумы постепенно перемещаются в конец массива.
Выбором
[5][3][8][1] → [1][3][8][5] → [1][3][8][5] → [1][3][5][8]
Принцип: На каждом шаге находится минимальный элемент и помещается на свою позицию в отсортированной части массива. Количество обменов минимально.
Вставками
[5][3][8][1] → [3][5][8][1] → [3][5][8][1] → [1][3][5][8]
Принцип: Элементы массива последовательно вставляются в уже отсортированную левую часть, сохраняя ее порядок. Эффективен для частично отсортированных данных.
Спасибо за внимание!
Этот проект наглядно демонстрирует, что даже простые алгоритмы становятся увлекательными, когда их можно увидеть. Визуализация делает процесс обучения более интерактивным и запоминающимся.
Подходит для уроков алгоритмизации
Инструмент поможет преподавателям более эффективно объяснять принципы работы алгоритмов сортировки, а студентам — лучше их понимать.
Развивает логическое и визуальное мышление
Наблюдая за работой алгоритма, студенты развивают способность к анализу процессов и визуальному представлению данных, что критически важно в программировании.
Реализован доступными средствами
Проект выполнен с использованием инструментов, доступных студентам СПО, что демонстрирует практическую применимость изучаемых технологий.
Готов(а) продемонстрировать программу в работе!