Cho sâu S có độ dài không qúa 255 kí tự chỉ gồm các kí tự chữ cái thường và chữ số( đoạn các ký tự số liên tiếp tạo thành một số nguyên, ở mỗi đoạn ký tự số liên tiếp phải trích ra số lớn nhất có thể, mỗi số lấy ra không có các số 0 không có nghĩa. Ví dụ, với sâu là aab04dhf23vf789 các số được trích ra là 4,234,789) hãy viết chương trình tìm số bé nhất và số lớn nhất trong các số được trích ra?
Dữ liệu vào cho trong tệp văn bản timso.inp gồm một sâu S chỉ chứa các ký tự chữ cái thường và chữ số. Kết quả: đưa ra tệp văn bản timso.out:
-Dòng 1 đưa ra số bé nhất tìm được.
-Dòng 2 đưa ra số lớn nhất tìm được.
Bài này làm theo dạng nhập, xuất file nhé.
Các bạn đừng làm theo dạng nhập từ bàn phím.
Rất cám ơn ạ!
Program HOC24;
const fi='nhap.inp';
fo='nhap.out';
var f: text;
t,code,min,max,i,j: integer;
a: array[1..1000] of string;
b: array[1..1000] of integer;
s: string;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,s);
for i:=1 to length(s) do
if not(s[i] in ['0'..'9']) then s[i]:=' ';
while s[1]=#32 do delete(s,1,1);
while pos(#32#32,s)<>0 do delete(s,pos(#32#32,s),1);
while s[length(s)]=#32 do delete(s,length(s),1);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
s:=s+' '; j:=0;
while length(s)<>0 do
begin
j:=j+1;
a[j]:=copy(s,1,pos(#32,s)-1);
delete(s,1,pos(#32,s));
end;
for i:=1 to j do
if a[i][1]='0' then delete(a[i],1,1);
for i:=1 to j do
begin
val(a[i],t,code);
b[i]:=t;
end;
min:=b[1]; max:=0;
for i:=1 to j do
begin
if min>b[i] then min:=b[i];
if b[i]>max then max:=b[i];
end;
writeln(f,min);
write(f,max);
close(f);
end;
begin
ip;
out;
end.