Графика
November 21, 2022
Визуализация сортировки
Как проиллюстрировать сортировку по росту в массиве учеников? В PascalABC.NET для этого есть великолепные модули ABCDatabases и GraphWPF.
procedure DrawHistogram(a: sequence of Ученик; x,y,w:real); begin foreach var p in a do begin Rectangle(x,y,w,-p.Рост); DrawText(x,y,w,-p.Рост,p.Рост); TextOut(x,y+10,p.Фамилия,Alignment.LeftBottom,60); x += w end; end;
Подключаем модуль ABCDatabases, заполняем массив учеников, фильтруем, скажем, только девочек:
var pupils := ЗаполнитьМассивУчеников; var girls := pupils.Where(p -> p.Пол = Жен);
И рисуем две гистограммы - по неотсортированной и по отсортированной последовательностям:
DrawHistogram(girls,50,200,25); DrawHistogram(girls.OrderBy(p -> p.Рост),50,500,25);
Вывод. Визуализация плюс учебные средства, содержащие простые базы данных, - отличное средство обучения различным алгоритмам. А если алгоритмы реализуются в виде запросов к последовательностям, то можно коротко и понятно проиллюстрировать множество задач