Lập trình đơn giản

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Nguyễn Phương Bằng

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 ạ!

Minh Lệ
12 tháng 7 2020 lúc 17:53

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.


Các câu hỏi tương tự
PGD FF
Xem chi tiết
Hồ Hoàng Long
Xem chi tiết
PGD FF
Xem chi tiết
Quỳnh Như
Xem chi tiết
PGD FF
Xem chi tiết
Nguyễn Linh
Xem chi tiết
Phan Đức Duy
Xem chi tiết
Phạm Thị Kim Anh
Xem chi tiết
dinhnguyentuhuy
Xem chi tiết