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.