mong các mod giúp Cho một xâu kí tự S không quá 255 kí tự gồm kí tự chữ cái và kí tự chữ số. Hãy in ra xâu vửa nhập và tính tổng các kí tự chữ số có trong xâu. Ngược lại nếu xâu chỉ gồm kí tự chữ cái hoặc chỉ gồm kí tự chữ số thì in ra “Sai yeu cau! Khong thuc hien!”. - Dữ liệu vào: Cho trong file XAU.INP gồm 1 dòng duy nhất là xâu S. - Dữ liệu ra: Ghi vào file XAU.OUT theo cấu trúc: Gồm 2 dòng: + Dòng thứ nhất: Ghi ra xâu vừa nhập. + Dòng thứ hai ghi tổng các kí tự chữ số của xâu S.

2 câu trả lời

program bai_giai;
var f,g:text;
    s:string;
    i,t,dkt,dcs,so:integer;
begin
    Assign(f,'XAU.INP');  reset(f);
    Assign(g,'XAU.OUT');  rewrite(g);
    readln(f,s);
    dkt:=0; dcs:=0; t:=0;
    for i:=1 to length(s) do
        if (s[i] in ['a'..'z']) or (s[i] in ['A'..'Z']) then dkt:=dkt+1
        else if s[i] in ['0'..'9'] then
            begin
                dcs:=dcs+1;
                val(s[i],so);
                t:=t+so;
            end;
    if (dkt=length(s)) or (dcs=length(s)) then write(g,'Sai yeu cau! Khong thuc hien!')
        else
            begin
                writeln(g,s);
                writeln(g,t);
            end;
    close(f); close(g);
end.

Đếm số kí tự chữ cái (dkt) và đếm kí tự chữ số (dcs) để thực hiện nếu dkt hoặc dcs bằng độ dài của xâu thì không có cái còn lại thì sai yêu cầu.

val(s[i],so); là chuyển kí tự chữ số s[i] thành chữ số rồi sa đó tăng số vào tổng.

Không có file: 

program Hello;
uses crt;
var s: string;
    tong, i, k1, k2, a: longint;
begin
    readln(s);
    for i:= 1 to length(s) do 
        begin
            if s[i] in ['0'..'9'] then 
                begin
                    k1:= 1;
                    val(s[i],a);
                    tong:= tong + a;
                end;
            if s[i] in ['a'..'z'] then k2:= 1;
        end;
    if (k1  = 1) and (k2 = 1) then
        begin
            writeln('S: ', s);
            writeln('Tong: ', tong);
        end
    else 
        writeln('Sai yeu cau! Khong thuc hien!');
readln;
end.

==================================

Có file:

program Hello;
uses crt;
var s: string;
    tong, i, k1, k2, a: longint;
    f1,f2:text;
begin
    assign(f1, 'XAU.INP'); reset(f1);
    assign(f2, 'XAU.OUT'); rewrite(f2);
    readln(f1,s);
    for i:= 1 to length(s) do 
        begin
            if s[i] in ['0'..'9'] then 
                begin
                    k1:= 1;
                    val(s[i],a);
                    tong:= tong + a;
                end;
            if s[i] in ['a'..'z'] then k2:= 1;
        end;
    if (k1  = 1) and (k2 = 1) then
        begin
            writeln(f2,s);
            writeln(f2,tong);
        end
    else 
        writeln(f2,'Sai yeu cau! Khong thuc hien!');
    close(f1); close(f2);
readln;
end.

Câu hỏi trong lớp Xem thêm