Được gửi bởi
nguabay91
em có chương trình sau:
program Gt_Chen;
uses crt;
const
spt = 10;
var
a: array[1..spt] of integer;
i, j, k, tam: integer;
begin
clrscr;
writeln('SAP XEP MANG BANG GIAI THUAT CHEN');
writeln('---------------------------------');
writeln;
for i:= 1 to spt do
begin
write('Phan tu A[',i,']= ');
readln(a[i]);
end;
for i:= 2 to spt do
if a[i] < a[i - 1] then
begin
j:= 1;
while a[j] < a[i] do
j:= j + 1;
tam:= a[i];
for k:= i downto j + 1 do
a[k]:= a[k - 1];
a[j]:= tam;
end;
writeln;
writeln('Mang sau khi sap xep: ');
for i:= 1 to spt do
write(a[i]:6);
writeln;
writeln(' Bam phim <Enter> de ket thuc');
readln;
end.
ai có thể giải thích hộ em cái đoạn :
for i:= 2 to spt do
if a[i] < a[i - 1] then
begin
j:= 1;
while a[j] < a[i] do
j:= j + 1;
tam:= a[i];
for k:= i downto j + 1 do
a[k]:= a[k - 1];
a[j]:= tam;
end;
nó chạy ra sao k
nhất là đến đoạn
for k:= i downto j + 1 do
a[k]:= a[k - 1];
là em tịt luôn
không hiểu nữa
mong mọi người chỉ bảo để em tiến bộ hơn !
Bookmarks