Cho trước một xâu chứa biểu thức chỉ có phép cộng và các số nguyên dương tối đa 5 chữ số. Hãy viết chương trình tính giá trị của biểu thức trên.
Ví du: 1+2+32 = 35
program o; uses crt; function laso(s:string):boolean; var a,b:integer; begin val(s,a,b); exit(b=0); end; function so(s:string):longint; var a,b:integer; begin val(s,a,b); exit(a); end; function dau(s:string):string; begin exit(copy(s,1,pos('+',s)-1)); end; function cuoi(s:string):string; begin exit(copy(s,pos('+',s)+1,length(s)-pos('+',s))); end; function tinh(s:string):longint; begin if laso(s) then tinh:=so(s) else tinh:=tinh(dau(s))+tinh(cuoi(s)); end; begin clrscr; write(tinh('1+2+32')); readln; end.
Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!
program o;
Trả lờiXóauses crt;
function laso(s:string):boolean;
var a,b:integer;
begin
val(s,a,b);
exit(b=0);
end;
function so(s:string):longint;
var a,b:integer;
begin
val(s,a,b);
exit(a);
end;
function dau(s:string):string;
begin
exit(copy(s,1,pos('+',s)-1));
end;
function cuoi(s:string):string;
begin
exit(copy(s,pos('+',s)+1,length(s)-pos('+',s)));
end;
function tinh(s:string):longint;
begin
if laso(s) then tinh:=so(s) else tinh:=tinh(dau(s))+tinh(cuoi(s));
end;
begin
clrscr;
write(tinh('1+2+32'));
readln;
end.