Câu 3: (5 điểm)
Viết chương trình có một chuỗi kí tự gồm chữ cái, chữ số và khoảng cách và thực hiện:
a. Trong chuỗi kí tự có bao nhiêu kí tự số?
b. Tính tổng các chữ số.
c. Xuất ra tất cả kí tự chữ có trong chuỗi theo thứ tự vừa nhập.
– Yêu cầu: Cho trước một chuỗi kí tự S chỉ gồm chữ cái, chữ số và khoảng cách trên một dòng. Hãy thực hiện các yêu cầu trên.
– Dữ liệu vào: Cho từ tệp văn bản có tên XAU.INP gồm một dòng ghi chuỗi kí tự S (có độ dài không quá 255 ký tự). Giả thiết dữ liệu được nhập đúng đắn, không cần kiểm tra
– Kết quả: Ghi ra tệp văn bản có tên XAU.OUT theo cấu trúc sau:
+ Dòng 1: Ghi có bao nhiêu kí tự số
+ Dòng 2: Ghi tổng các chữ số
+ Dòng 3: Ghi tất cả các kí tự chữ cái trong chuỗi
Ví dụ:
XAU.INP XAU.OUT
Ky2thichon5hoc5sinhgioi3lop719 7
32
Kythichonhocsinhgioilop
-Lưu bài: D:\SBD\Bai3.pas
var s: string;
dem, ans, i: longint;
begin
assign(input, ‘xau.inp’); reset(input);
assign(output, ‘xau.out’); rewrite(output);
read(s);
dem:= 0;
ans:= 0;
for i:=1 to length(s) do
begin
if s[i] in [‘0’..’9′] then
begin
inc(dem);
if s[i] = ‘1’ then ans:= ans + 1;
if s[i] = ‘2’ then ans:= ans + 2;
if s[i] = ‘3’ then ans:= ans + 3;
if s[i] = ‘4’ then ans:= ans + 4;
if s[i] = ‘5’ then ans:= ans + 5;
if s[i] = ‘6’ then ans:= ans + 6;
if s[i] = ‘7’ then ans:= ans + 7;
if s[i] = ‘8’ then ans:= ans + 8;
if s[i] = ‘9’ then ans:= ans + 9;
end;
end;
writeln(dem); writeln(ans);
for i:= 1 to length(s) do
begin
if (s[i] in [‘a’..’z’]) and (s[i] <> ‘ ‘) or (s[i] in [‘A’ .. ‘Z’]) and (s[i] <> ‘ ‘) then write(s[i]);
end;
close(input); close(output);
end.