Trang chủ Tin Học Lớp 8 Cho xâu ký tự S gồm nhiều dòng, trong đó...

Cho xâu ký tự S gồm nhiều dòng, trong đó có các ký tự là chữ cái, chữ số và các ký tự đặc biệt. Tỉnh tổng các số có trong xâu S. Dữ liệu vào: Cho bởi tệp văn b

Câu hỏi :

Cho xâu ký tự S gồm nhiều dòng, trong đó có các ký tự là chữ cái, chữ số và các ký tự đặc biệt. Tỉnh tổng các số có trong xâu S. Dữ liệu vào: Cho bởi tệp văn bản XAUKT.INP gồm nhiều dòng chứa các xâu kí tự có độ dài không quá 255. Kết quả:  Ghi vào tệp văn bản XAUKT.OUT gồm một số duy nhất là tổng các số có trong xâu S. VD: Input127378kithi tin  38748     hoc chuc2981928     mung nam 1985658888moi Output:1988806942

Lời giải 1 :

uses crt;
const fi = 'XAUKT.INP';
      fo = 'XAUKT.OUT';
var res, s, st: string;
    i:byte;

function add(a, b: string): string;
var ans:string;
    rem, i, tmp:byte;
begin
    rem:=0; ans:='';
    while length(a) < length(b) do a:='0' + a;
    while length(b) < length(a) do b:='0' + b;
    for i:=length(a) downto 1 do
        begin
            tmp:=ord(a[i]) + ord(b[i]) - 96 + rem;
            rem:=tmp div 10;
            tmp:=tmp mod 10;
            ans:=chr(tmp + 48) + ans;
        end;
    if rem = 1 then ans:='1' + ans;
    exit(ans);
end;

begin
//    assign(input, fi);reset(input);
//    assign(output, fo);rewrite(output);
    
    while not eof do
        begin
            readln(s);
            st:='';
    
            for i:=1 to length(s) do
                if s[i] in ['0'..'9'] then
                    st:=st + s[i]
                else
                    begin
                        res:=add(res, st);
                        st:='';
                    end;
        end;
    writeln(res);
    
//    close(input);close(output);
end.

Thảo luận

Lời giải 2 :

uses crt;

var S : string; T, i, j : int64;

    f1, f2 : text;

function KT(i : byte) : string;

begin

    KT := '';

    while (S[i] in ['0' .. '9']) and (i <= length(S)) do

        begin

            KT := KT + S[i];

            delete(S, i, 1);

        end;

end;

begin

clrscr;

assign(f1, 'INPUT.INP'); reset(f1);

assign(f2, 'OUTPUT.OUT'); rewrite(f2);

T := 0;

while not eof (f1) do

    begin

        readln(f1, S);

        i := 1; while i <= length(S) do

            begin

                if S[i] in ['0' .. '9'] then

                    begin

                        val(KT(i), j);

                        T := T + j;

                    end

                else i := i + 1;

            end;

    end;

writeln(f2, T);

close(f1); close(f2);

readln

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