Phần khai báo biến, tệp, đọc tệp, viết tệp thì bạn tự khai báo nhé.
//hàm kiểm tra ký tự đó có phải là số
function isNum(s: char):boolean;
var n,in: byte;
begin
val(s,n,in);
if in<>0 then isNum:=false else isNum:=true;
end;
// chương trình chính
begin
//đọc tệp.....
//sắp xếp chuỗi
for i:=1 to length(s) do
for j:=1 to length(s) do
if s[i]>s[j] then
begin
s[i]=tmp;
s[i]=s[j];
s[j]=tmp;
end;
//đếm ký tự:
for i:=1 to length(s) do
begin
if isNum(s[i])=true then
begin
result:=s[i];
if s[i] = s[i+1] then dem=dem+1;
if s[i] <> s[i+1] then
begin
t:=t+1;
n[t]=dem;
dem=0;
r[t]=s[i];
end;
end;
end;
end.
nếu có gì thắc mắc thì liên hệ khanh30125@gmail.com mình sẽ giải thích cụ thể cho nhé...