PDA

View Full Version : mình cần sự trọ giúp , rất gấp



nccnm
03-05-2004, 19:38
Mình có một bài toán PASCAL mà loay hoay mãi chưa giải được, mai lại thi nữa chứ.Bài toán đó là: Nhập vào 1 danh sach tên rồi in ra theo vần ABC.
AI biết thì giải hộ cái, cảm ơn nhiều.

Curt_Palm
03-05-2004, 23:04
ban dung thuat toan sap xep danh sach do. Ban nen dung giai thuat sap xep bong bong la hay nhat.

nccnm
04-05-2004, 06:55
Cảm ơn bạn, nhưng mình ko hiểu sap xep "bong bong" là sắp xếp kiểu gì.
Các thuật toán sắp xếp cơ bản thì mình biết cả rồi nhưng vấn đề ở đây là khi so sánh hai chuỗi (2 họ tên) để xem có phải hoán vị nhau ko thì mình ko làm được.Cuối cùng thì cũng tìm ra một cách đó là dùng hàm StrComp(s1,s2:PChar):Integer.Không hiểu tạo ra cái hàm này như thế nào nhi, mình chỉ biết dùng sẵn.Cái chương trình thật ra rất đơn giản thế mà mình lại lam phức tạp hóa lên, thật là ngốc.
uses wincrt,strings;
type
str=array[0..79] of char;
var
a:array[1..10] of str;
i,j,c:integer;
tg:str;

begin
clrscr;
writeln('Chuong trinh sap xep ten theo van ABC');
writeln('-------------------------------------');
writeln;
writeln('Nhap 10 ten chua sap xep:');
for i:=1 to 10 do
begin
write('Ho ten :');
readln(a[i]);


end;
for i:=1 to 10 do
for j:=i+1 to 10 do
begin
c:=strcomp(a[i],a[j]);
if (c > 0) then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
end;
writeln;
writeln('Danh sach 10 ten da duoc sap xep:');

for i:=1 to 10 do
writeln(a[i]);

end.

ntquan
04-05-2004, 15:07
goi nccnm : chương trình của bạn dùng thuật toán chèn trực tiếp.