Lập trình đơn giản

PGD FF

Cho một xâu chỉ chứa các kí tự: chữ số, dấu cộng, dấu trừ, thể hiện một biểu thức số học. Yêu cầu: Tính giá trị của biểu thức đã cho. Biết xâu biểu thức không quá 255 kí tự, các số hạng và giá trị của biểu thức có độ lớn không quá 2.106 . Dữ liệu vào: (GTBT.INP) +Dòng 1: Ghi duy nhất một xâu kí tự thể hiện biểu thức cần tính. Dữ liệu ra: (GTBT.OUT) +Dòng 1: Ghi duy nhất một số nguyên là giá trị của biểu thức. Ví dụ: GTBT.INP1234-998+123-345 GTBT.OUT  14

Phạm Phú
14 tháng 6 2021 lúc 10:37

program xau_so_hoc;
uses crt;
procedure xu_li;
var s, x, xau : string; i, tinh, j, f1, f2 : integer;
begin
write('nhap xau: '); readln(xau);
 i:=1;
 repeat
        x:='' s:=''
        while (xau[i] in ['0'..'9']) and (i<=length(xau)) do
        begin
        x:=x+xau[i];
           inc(i); {tim dau '+' hoac tru '-'/tim so truoc dau do}
        end;
                for j:=i+1 to length(xau) do
                if xau[j] in ['0'..'9'] then s:=s+xau[j] else
                                                         break;
       val(x,f1); val(s,f2); {chuyen doi xau thanh so};
        if xau[i]='-' then
                        tinh:=tinh +(f1-f2) else
                        if xau[i] = '+' then
                                                tinh:=tinh + (f1+f2);
       {tinh toan voi xau va dau da tim duoc}
       i:=j;
 until i>=length(xau);
        write('xau da tinh toan: ', tinh);
end;
{chuong trinh chinh}
        begin
                clrscr;
                xu_li;
        end.

 

Bình luận (1)

Các câu hỏi tương tự
No_pvp
Xem chi tiết
Phông
Xem chi tiết
No_pvp
Xem chi tiết
No_pvp
Xem chi tiết
PGD FF
Xem chi tiết
No_pvp
Xem chi tiết
Đào Tiến Đạt
Xem chi tiết
PGD FF
Xem chi tiết
Nguyễn Thùy Chinh
Xem chi tiết