关于加法计算器

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:56:46
做一个加法运算器。完成30000以内的加法,两个加数之间用“+”连接,可以连加,
回车表示一个式子输入完成。“#”表示结束运算,退出加法器。

请用PASCAL语言

var st:ansistring; {这是一个无限大的字符串类型。本来不想用这个,但是如果是“1+1+1+1+1+...(30000个‘+1’)”,string就装不下了,所以只能用ansistring}
q,i,len,now1,now3,now2:longint;
begin
repeat
readln(st);
if st='#' then halt; {退出判断}
len:=length(st);now3:=1;now1:=0;now2:=0;
for i:=1 to len do
begin
if st[i]='+' then
begin
val(copy(st,now3,i-now3),now2,q);
now1:=now1+now2;
now3:=i+1;
end;
end;
delete(st,1,now3-1);
val(st,now2,q);now1:=now1+now2;
writeln(now1);
until st='#';
end.

编译通过。

首先我不会PASCAL
我可以告诉你算法,

首先 设置字符型数组,例如a[99]
用来存入输入信息。
然后 设置函数对数组进行 整理{设置循环 对数组中每个字符进行判定
整理数据(以‘+’号为分隔进行判定),存入新的变量,
把所有变量进行相加
输出
“#”表示结束运算,退出加法器
直接判定==‘#’时 break,

希望对你有帮助!