 Демонстрационная программа, написанная на Паскале АБС, объясняет суть пузырьковой сортировки. Все наглядно и понятно, а главное красиво. Такую программу могут предложить школьнику или студенту как вариацию классической задачи про сортировку. Может пригодиться преподавателям на уроках программирования для наглядной демонстрации алгоритма пузырьковой сортировки. На картинке слева - скрин в какой-то момент работы программы. В живую запустить программу можно здесь. Перед переходом по ссылке скопируйте код программы, а затем вставьте в онлайн-компилятор.
Демонстрационная программа, написанная на Паскале АБС, объясняет суть пузырьковой сортировки. Все наглядно и понятно, а главное красиво. Такую программу могут предложить школьнику или студенту как вариацию классической задачи про сортировку. Может пригодиться преподавателям на уроках программирования для наглядной демонстрации алгоритма пузырьковой сортировки. На картинке слева - скрин в какой-то момент работы программы. В живую запустить программу можно здесь. Перед переходом по ссылке скопируйте код программы, а затем вставьте в онлайн-компилятор.
uses Graph;
type IntArr = array[1..100] of integer;
const 
 h = 20;
 dist = 10;
 cellsize = 30;
procedure DrawElemAsHystogram(const a: IntArr; n,i: integer; x,y: integer);
begin
 Rectangle(x+(i-1)*(h+dist),y,x+(i-1)*(h+dist)+h,y-a[i]);
end;
procedure DrawArrayAsHystogram(const a: IntArr; n: integer; x,y: integer);
begin
 for var i := 1 to n do
 DrawElemAsHystogram(a,n,i,x,y);
end;
procedure DrawArr(const a: IntArr; n: integer);
begin
 Window.Clear;
 DrawArrayAsHystogram(a,n,10,340); 
 Sleep(100);
end;
procedure BubbleSort(var a: IntArr; n: integer);
begin
 for var i:=n downto 2 do
 for var j:=1 to i-1 do
 if a[j+1] < a[j] then
 begin
 Swap(a[j+1],a[j]);
 DrawArr(a,n);
 end;
end;
var 
 a: IntArr;
 n: integer := 20;
begin
 Window.Title := 'Пузырьковая сортировка';
 Window.SetSize(640,380);
 for var i := 1 to n do
 a[i] := Random(10,299);
 
 Brush.Color := Color.LightGreen;
 DrawArrayAsHystogram(a,n,100,340); 
 BubbleSort(a,n);
end.





