Переписал программу на современный паскаль, введя трассировочную выдачу.
// 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 90 3 10 7 2 6 11 4 5 8 1 90 3 7 10 2 6 11 4 5 8 1 90 2 7 10 3 6 11 4 5 8 1 90 2 3 10 7 6 11 4 5 8 1 90 2 3 7 10 6 11 4 5 8 1 90 2 3 6 10 7 11 4 5 8 1 90 2 3 6 7 10 11 4 5 8 1 90 2 3 4 7 10 11 6 5 8 1 90 2 3 4 6 10 11 7 5 8 1 90 2 3 4 6 7 11 10 5 8 1 90 2 3 4 6 7 10 11 5 8 1 90 2 3 4 5 7 10 11 6 8 1 90 2 3 4 5 6 10 11 7 8 1 90 2 3 4 5 6 7 11 10 8 1 90 2 3 4 5 6 7 10 11 8 1 90 2 3 4 5 6 7 8 11 10 1 90 2 3 4 5 6 7 8 10 11 1 90 1 3 4 5 6 7 8 10 11 2 90 1 2 4 5 6 7 8 10 11 3 90 1 2 3 5 6 7 8 10 11 4 90 1 2 3 4 6 7 8 10 11 5 90 1 2 3 4 5 7 8 10 11 6 90 1 2 3 4 5 6 8 10 11 7 90 1 2 3 4 5 6 7 10 11 8 90 1 2 3 4 5 6 7 8 11 10 90 1 2 3 4 5 6 7 8 10 11 90 1 2 3 4 5 6 7 8 9 11 100 1 2 3 4 5 6 7 8 9 10 11Перестановок: 28