Trang chủ Tin Học Lớp 8 Cho sâu S có độ dài không qúa 255 kí...

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

Câu hỏi :

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

Lời giải 1 :

uses crt;
var s,t:string; d:text; i,n,min,max,a,e:longint;
begin
clrscr;
   assign(d,'input.pas');reset(d);
      readln(d,s);
   close(d);
   assign(d,'output.pas');rewrite(d);
      for i:=1 to length(s) do if s[i]='0' then delete(s,i,1);
      n:=length(s); min:=high(longint);
      for i:=1 to n do
         begin
            if s[i]<='9' then t:=t+s[i];
            if ((i-1>0)and(s[i-1]<='9')and(s[i]>'9'))or((i=n)and(s[i]<='9'))then
               begin
                  val(t,a,e);
                  If a>max then max:=a;
                  if a<min then min:=a;
                  t:='';
               end;
         end;
      writeln(d,min);
      writeln(d,max);
   close(d);
end.

//////

Giải thích

B1: Loại bỏ các số 0

B2: Trích số từ xâu

-Nếu s[i] là số thì đưa vào biến t

-nếu

(s[i] là chữ và trước đó là số) để biết đây là kết thúc của một số ngyên

hoặc(i đang ở cuối xâu vài s[i] là số)Không thỏa mản điều kiện trên thì chỉ có ở cuối xâu

nó là kết thúc của một số nguyên nhưng không có dấu hiệu cho biết như trên

 thì tìm max,min.

Nếu có gì không hiểu hay code không hợp lí thì các bạn để lạ bình luận nha!!! :D

Bài này mình cũng có giải bên kia rồi nên không ỏa là copy của người khác nhé

Đây là một số text:

image
image

Thảo luận

Lời giải 2 :

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.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247