1 of 8

Алгоритмы в движении

Визуализация сортировки массивов

Учебный проект по дисциплине «Алгоритмизация и программирование»

Язык: Pascal ABC.NET

Автор: Щепакин Д.С., студент группы ИСП-24

Научный руководитель: Криницкая Р.А.

ВТИТБиД, им. В.В. Самарского

2025

2 of 8

Зачем это нужно?

Абстрактные алгоритмы наглядно

Визуализация помогает преодолеть сложность абстрактных концепций алгоритмов, делая их работу понятной и доступной для изучения.

Различия в логике работы

Проект наглядно демонстрирует, как три разных метода сортировки достигают одной цели, но при этом используют совершенно разную логику и подходы.

Применение графики и анимации

Мы покажем, как возможности графических библиотек Pascal ABC.NET можно использовать для создания интерактивных учебных материалов, оживляя код.

Инструмент для уроков и практик

Созданный продукт станет ценным дидактическим материалом, который можно использовать на занятиях для объяснения и закрепления темы сортировок.

3 of 8

Три классических метода

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

Пузырьком

Сравнение соседних элементов и их обмен местами, если они расположены в неправильном порядке. Самые "тяжелые" элементы постепенно "всплывают" в конец массива.

  • Много обменов
  • Прост в понимании и реализации
  • Эффективность O(n²)

Выбором

На каждом шаге находится минимальный элемент из неотсортированной части массива и меняется местами с первым элементом этой части.

  • Мало обменов
  • Сравнительно стабилен
  • Эффективность O(n²)

Вставками

Каждый элемент поочередно берется из неотсортированной части и вставляется в уже отсортированную часть массива в правильное место.

  • Эффективна на частично отсортированных данных
  • Достаточно быстра для малых

массивов

  • Эффективность O(n²)

Все три метода просты для понимания и входят в программу СПО, что делает их идеальными кандидатами для визуализации.

4 of 8

Всё на виду!

Каждый элемент → вертикальный столбец

Каждое число в массиве представлено отдельным столбцом, высота которого пропорциональна значению элемента. Это позволяет мгновенно оценить величину элемента.

Цветовое кодирование для ясности

  • Красный — текущий элемент, который активно обрабатывается.
  • Синий — элемент, с которым производится сравнение или обмен.
  • Серый — уже отсортированная часть массива, которая больше не будет изменяться.

Задержка между шагами

Между каждым действием алгоритма (сравнением, обменом, перемещением) предусмотрена небольшая пауза, чтобы пользователь мог отследить логику процесса и не упустить ни одной детали.

«Не просто код — живой процесс!»

5 of 8

Как это сделано?

1

Язык программирования

Pascal (среда Pascal ABC.NET) — мощная и удобная среда разработки, которая идеально подходит для учебных проектов

благодаря своей простоте и функциональности.

2

Графический модуль

Для отрисовки столбцов и управления цветами используется встроенный модуль GraphABC, который предоставляет

базовые функции для работы с графикой.

3

Реализация анимации

Анимация достигается за счет цикличной перерисовки экрана и использования функции Sleep() для создания задержки

между кадрами, что создает эффект движения.

4

Пользовательский интерфейс

Программа полностью интерактивна и управляется кликом мышью. Никаких консольных команд или ввода

с клавиатуры — только интуитивное взаимодействие.

5

Генерация случайных данных

Для демонстрации работы алгоритмов используются случайные массивы, генерируемые с помощью функции Randomize(),

что обеспечивает разнообразие сценариев.

Программа полностью автономна — запустил и показывай!

6 of 8

Как это выглядит?

Слева: выбор метода.

Центр: сравнение элементов.

Справа: результат.

7 of 8

Как они работают?

Рассмотрим упрощенные схемы работы каждого алгоритма сортировки на примере небольшого массива. Цветовое кодирование поможет понять, как элементы перемещаются и сравниваются.

Пузырёк

[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]

Принцип: Элементы массива последовательно вставляются в уже отсортированную левую часть, сохраняя ее порядок. Эффективен для частично отсортированных данных.

8 of 8

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

Этот проект наглядно демонстрирует, что даже простые алгоритмы становятся увлекательными, когда их можно увидеть. Визуализация делает процесс обучения более интерактивным и запоминающимся.

Подходит для уроков алгоритмизации

Инструмент поможет преподавателям более эффективно объяснять принципы работы алгоритмов сортировки, а студентам — лучше их понимать.

Развивает логическое и визуальное мышление

Наблюдая за работой алгоритма, студенты развивают способность к анализу процессов и визуальному представлению данных, что критически важно в программировании.

Реализован доступными средствами

Проект выполнен с использованием инструментов, доступных студентам СПО, что демонстрирует практическую применимость изучаемых технологий.

Готов(а) продемонстрировать программу в работе!