//Лень было расписывать быструю сортировку, так что вот "пузырёк" //Pascal ABC.NET 3.1 сборка 1219
Const n=10;
Var i:integer;
procedure booblesort(var ar:array of integer;n:integer); Var i,j:integer; begin for i:=0 to n-1 do for j:=i+1 to n do if (ar[i]>ar[j]) and (ar[i]>0) and (ar[j]>0) then swap(ar[i],ar[j]); end;
begin randomize; var ar:=ArrRandomInteger(n,-10,10); writeln('First array:'); ar.Println; booblesort(ar,n-1); writeln('Final array:'); ar.println; end.
Пример работы программы: First array: -9 -5 5 -9 4 -3 -9 4 10 8 Final array: -9 -5 4 -9 4 -3 -9 5 8 10
Делаем программу с трассировкой и все хорошо видно.
var A:array[0..10] of integer; var i:integer;
begin Writeln('Первый цикл'); for i:=0 to 10 do begin A[i]:= i + 1; Writeln('i=',i,', a[',i,']=',a[i]) end; Write('Массив: '); a.Println; Writeln('Второй цикл'); for i:=0 to 10 do begin A[i]:= A[10-i]; Writeln('i=',i,', a[',i,']=',a[i]) end; Write('Массив: '); a.Println end.
//Pascal ABC.NET 3.1 сборка 1219
Const
n=10;
Var
i:integer;
procedure booblesort(var ar:array of integer;n:integer);
Var i,j:integer;
begin
for i:=0 to n-1 do
for j:=i+1 to n do
if (ar[i]>ar[j]) and (ar[i]>0) and (ar[j]>0) then swap(ar[i],ar[j]);
end;
begin
randomize;
var ar:=ArrRandomInteger(n,-10,10);
writeln('First array:');
ar.Println;
booblesort(ar,n-1);
writeln('Final array:');
ar.println;
end.
Пример работы программы:
First array:
-9 -5 5 -9 4 -3 -9 4 10 8
Final array:
-9 -5 4 -9 4 -3 -9 5 8 10
var A:array[0..10] of integer;
var i:integer;
begin
Writeln('Первый цикл');
for i:=0 to 10 do begin
A[i]:= i + 1;
Writeln('i=',i,', a[',i,']=',a[i])
end;
Write('Массив: '); a.Println;
Writeln('Второй цикл');
for i:=0 to 10 do begin
A[i]:= A[10-i];
Writeln('i=',i,', a[',i,']=',a[i])
end;
Write('Массив: '); a.Println
end.
Результат
Первый цикл
i=0, a[0]=1
i=1, a[1]=2
i=2, a[2]=3
i=3, a[3]=4
i=4, a[4]=5
i=5, a[5]=6
i=6, a[6]=7
i=7, a[7]=8
i=8, a[8]=9
i=9, a[9]=10
i=10, a[10]=11
Массив: 1 2 3 4 5 6 7 8 9 10 11
Второй цикл
i=0, a[0]=11
i=1, a[1]=10
i=2, a[2]=9
i=3, a[3]=8
i=4, a[4]=7
i=5, a[5]=6
i=6, a[6]=7
i=7, a[7]=8
i=8, a[8]=9
i=9, a[9]=10
i=10, a[10]=11
Массив: 11 10 9 8 7 6 7 8 9 10 11