Переписал программу на современный паскаль, введя трассировочную выдачу.
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=Arr(0,10,3,7,2,6,11,4,5,8,1,9); a.Println; Writeln;
var k:=0;
for var i:=0 to a.Length-1 do
for var j:=0 to i-1 do
if a[j]>a[i] then begin Swap(a[i],a[j]); k+=1; a.Println end;
Writeln('Перестановок: ',k)
end.
Результаты
0 10 3 7 2 6 11 4 5 8 1 9
0 3 10 7 2 6 11 4 5 8 1 9
0 3 7 10 2 6 11 4 5 8 1 9
0 2 7 10 3 6 11 4 5 8 1 9
0 2 3 10 7 6 11 4 5 8 1 9
0 2 3 7 10 6 11 4 5 8 1 9
0 2 3 6 10 7 11 4 5 8 1 9
0 2 3 6 7 10 11 4 5 8 1 9
0 2 3 4 7 10 11 6 5 8 1 9
0 2 3 4 6 10 11 7 5 8 1 9
0 2 3 4 6 7 11 10 5 8 1 9
0 2 3 4 6 7 10 11 5 8 1 9
0 2 3 4 5 7 10 11 6 8 1 9
0 2 3 4 5 6 10 11 7 8 1 9
0 2 3 4 5 6 7 11 10 8 1 9
0 2 3 4 5 6 7 10 11 8 1 9
0 2 3 4 5 6 7 8 11 10 1 9
0 2 3 4 5 6 7 8 10 11 1 9
0 1 3 4 5 6 7 8 10 11 2 9
0 1 2 4 5 6 7 8 10 11 3 9
0 1 2 3 5 6 7 8 10 11 4 9
0 1 2 3 4 6 7 8 10 11 5 9
0 1 2 3 4 5 7 8 10 11 6 9
0 1 2 3 4 5 6 8 10 11 7 9
0 1 2 3 4 5 6 7 10 11 8 9
0 1 2 3 4 5 6 7 8 11 10 9
0 1 2 3 4 5 6 7 8 10 11 9
0 1 2 3 4 5 6 7 8 9 11 10
0 1 2 3 4 5 6 7 8 9 10 11
Перестановок: 28