Ok! mình đã phải thức đến khuya để làm bài này! mới đầu cứ tưởng đơn gian nhưng làm thì mới thấy lâu! mình sử dụng chương trình con. Đây là chương trình của mình:
[FONT=.VnTime][/FONT]
[FONT=.VnTime]PROGRAM DAOXAU;[/FONT]
[FONT=.VnTime]USES crt;[/FONT]
[FONT=.VnTime]VAR s,s1: string; [/FONT]
[FONT=.VnTime] i,j,n: word;[/FONT]
[FONT=.VnTime] khoangtrangdau,khoangtrangcuoi,sokhoangtrang: array[1..256] of word;[/FONT]
[FONT=.VnTime]Procedure nhap;[/FONT]
[FONT=.VnTime] Begin[/FONT]
[FONT=.VnTime] while pos(' ',s)= 0 do[/FONT]
[FONT=.VnTime] begin[/FONT]
[FONT=.VnTime] write('Nhap xau co it nhat mot dau cach: '); readln(s);[/FONT]
[FONT=.VnTime] end;[/FONT]
[FONT=.VnTime] End;[/FONT]
[FONT=.VnTime]Procedure timvungkhoangtrang;[/FONT]
[FONT=.VnTime] Begin[/FONT]
[FONT=.VnTime] {tim so vung khoang trang "n" gioi han boi khoangtrangdau va khoangtrangcuoi, tim so dau cach giua vung khoang trang do}[/FONT]
[FONT=.VnTime] n:=0; i:=1;[/FONT]
[FONT=.VnTime] repeat[/FONT]
[FONT=.VnTime] if s = ' ' then[/FONT]
[FONT=.VnTime] begin [/FONT]
[FONT=.VnTime] inc(n); [/FONT]
[FONT=.VnTime] khoangtrangdau[n]:= i;[/FONT]
[FONT=.VnTime] while s[i+1] = ' ' do inc(i);[/FONT]
[FONT=.VnTime] khoangtrangcuoi[n]:=i;[/FONT]
[FONT=.VnTime] sokhoangtrang[n]:= i- khoangtrangdau[n] +1;[/FONT]
[FONT=.VnTime] end;[/FONT]
[FONT=.VnTime] inc(i);[/FONT]
[FONT=.VnTime] until i> length(s);[/FONT]
[FONT=.VnTime] End;[/FONT]
[FONT=.VnTime]Procedure sapxeptu;[/FONT]
[FONT=.VnTime] Begin[/FONT]
[FONT=.VnTime] {sap xep tu va tim vi tri cuoi cua tu} [/FONT]
[FONT=.VnTime] i:=n; s1:='';[/FONT]
[FONT=.VnTime] {xet tu cuoi cung cua xau s: neu khong phai dau cach o vi tri cuoi cung thi thuc hien}[/FONT]
[FONT=.VnTime] if s[length(s)]<>' ' then[/FONT]
[FONT=.VnTime] begin [/FONT]
[FONT=.VnTime] s1:= copy(s,khoangtrangcuoi[n]+1,length(s)-khoangtrangcuoi[n]);[/FONT]
[FONT=.VnTime] for j:= 1 to sokhoangtrang[1] do s1:= s1+' ';[/FONT]
[FONT=.VnTime] end;[/FONT]
[FONT=.VnTime] {xet cac tu o vi tri giua xau s va dien khoang trang giua cac tu trong xau s1 cho phu hop}[/FONT]
[FONT=.VnTime] repeat[/FONT]
[FONT=.VnTime] if i>1 then[/FONT]
[FONT=.VnTime] begin[/FONT]
[FONT=.VnTime] s1:= s1+copy(s,khoangtrangcuoi[i-1]+1,khoangtrangdau-khoangtrangcuoi[i-1]-1);[/FONT]
[FONT=.VnTime] dec(i);[/FONT]
[FONT=.VnTime] for j:= 1 to sokhoangtrang[n-i+1] do s1:= s1+' ';[/FONT]
[FONT=.VnTime] end;[/FONT]
[FONT=.VnTime] until i<2;[/FONT]
[FONT=.VnTime] {xet tu dau tien cua xau s}[/FONT]
[FONT=.VnTime] if s[1]<>' ' then s1:=s1+ copy(s,1,khoangtrangdau[1]-1);[/FONT]
[FONT=.VnTime] End;[/FONT]
[FONT=.VnTime]Procedure xuat;[/FONT]
[FONT=.VnTime] Begin[/FONT]
[FONT=.VnTime] writeln(' xau sap xep lai la: ',s1);[/FONT]
[FONT=.VnTime] End;[/FONT]
[FONT=.VnTime]BEGIN[/FONT]
[FONT=.VnTime] clrscr;[/FONT]
[FONT=.VnTime] nhap;[/FONT]
[FONT=.VnTime] timvungkhoangtrang;[/FONT]
[FONT=.VnTime] sapxeptu;[/FONT]
[FONT=.VnTime] xuat;[/FONT]
[FONT=.VnTime] readln[/FONT]
[FONT=.VnTime]END.[/FONT]
[FONT=.VnTime] (nhớ thank mình nha!!!)[/FONT]