View Single Post
Old 04-04-2009, 08:29 AM   #14
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 43
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,464 Times in 2,040 Posts
myhanh is on a distinguished road
Default Ðề: Bác nào có đề Tin học trẻ năm cũ post hộ em!

Viết như vậy chưa đúng rùi
Trích:
if s[i]='1' then m:=m+1;
if s[i]='2' then n:=n+1;
if s[i]='3' then h:=h+1;
if s[i]='4' then k:=k+1;
if s[i]=' ' then kt:=i;
Nên dùng case nha (chương trình dễ đọc, chạy nhanh hơn)
Trích:
While kt<>length(s) do begin
If (kt>=1) and (kt<=m) then
For i:=1 to a do
if (s[i]='1') and (i>m) and (kt<=m) and (kt>=1) then
begin
doicho(s,kt,i);
write(kt:5);
end;
{****************************}
If (kt>m) and (kt<=n) then
For i:=1 to a do
if (s[i]='2') and ((i<=m) or ((i>n) and (i<=k))) and (kt>m) and(kt<=n) then
begin
doicho(s,kt,i);
write(kt:5);
end;
{****************************}
If (kt>n) and (kt<=h) then
For i:=1 to a do
if (s[i]='3') and ((i<=n) or ((i>h) and (i<=k))) and(kt>n)and (kt<=h)then
Begin
doicho(s,kt,i);
write(kt:5);
end;
{*****************************}
If (kt>h) and (kt<=k) then
For i:=1 to a do
if (s[i]='4') and (i<=h) and (kt>h)and (kt<=k) then
begin
doicho(s,kt,i);
write(kt:5);
end;
end;
Viết theo kiểu của em lần đầu vào nếu kt ở cuối chuỗi là tiêu
Giải thuật của anh
Trích:
Kiểu dữ liệu:
type vitri = record
begin
vitri: array[1..255] of integer;/* vi tri cua so nay trong s*/
index:integer; /*vi tri dau tien trong vitri sai vi tri*/
len:integer; /*tong so thuoc loai nay*/
end;
var so:array[1..4] of vitrisai;

Thủ tục đổi số: doiso(i)
+ Nếu so[i].index > so[i].len thì return
+Ngược lại doicho (s,kt, so[i].vitri[so[i].index])
inc(so[i].index).
+Nếu so[i].vitri[so[i].index] thuộc vùng số j (j=1..4) thì đệ quy doiso(j).
Chương trình chính:
Duyệt qua s và cập nhật các vị trí số 1 vào so[1], số 2 vào so[2], số 3 vào so[3], số 4 vào so[4].
for i:=1 to 4 do doiso(i);
__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog
myhanh is offline   Trả Lời Với Trích Dẫn
Đã có thành viên gửi lời cám ơn đến myhanh vì bạn đã đăng bài:
johnceduy (04-04-2009)