delphi计算器写的差不多了,除数不能为0 谁帮帮忙~ 5

varhe:integer;chu:real;beginifform1.Edit1.Text<>'0'thenifchu:=strtoint(form1.Edit1.Te... var
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin
chu:= beijiashu/jiashu;
form1.Edit1.Text:=floattostr(chu);
end;

begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end;
展开
 我来答
liu55721
2012-09-22 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:910万
展开全部
如果仅做加减乘除运算的话,建议把运算符改用数据型变量.0为加,1为减,2为乘,3为除,这样就可以用case of 语句来来检测算式的合法性和完成运算
比如,在编辑框中输入被除数后,按除号按钮,做三件事,一是检测被除数是否为零,如果为零,则在编辑框中显示E,表示被除数不能为零.二是将运算符号设置为ysfh:=3;三是存储第一个运算数dyyss.
再输入第二个数
再点击等于按钮,做一件事,运算,句子:
case ysfh of
0:edit1.text:=currTostr(dyyss+strtocurr(edit1.text));
1:edit1.text:=currTostr(dyyss-strtocurr(edit1.text));
2:edit1.text:=currTostr(dyyss*strtocurr(edit1.text));
3:begin
if edit1.text='0' then
begin
edit1.text:='E';
showmessage('除数不能为零');
exit;
end;
edit1.text:=currTostr(dyyss/strtocurr(edit1.text));
end;
end;
简单吧,用不着那么复杂的.
还用的着处理什么异常不异常的.
还有其它运算尽管加.
另外对编辑框用一个函数检测输入只能为1234560789和.字符(做高级一点,让其只能输入一点,不准输入其它字符
加减乘按钮的单击事件中只要一句代码
分别是:ysfh:=0;ysfh:=1;ysfh:=2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
景茹炜L8
2012-09-22 · TA获得超过481个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:394万
展开全部
用异常处理。不用判断除数是否为零的语句了

if fuhao='/' then
begin
try

chu:= beijiashu/jiashu;
except
on E:Exception do
begin
if e.Message='Division by zero' then //零作除数时,把商写为零
begin

chu:=0;
//这里可以加入自己的提示

end;

end;

form1.Edit1.Text:=floattostr(chu);
end;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengyun745
2012-09-22
知道答主
回答量:80
采纳率:0%
帮助的人:26.1万
展开全部
加一个条件就可以了呀,先判断“jiashu”是否为“0”如果为零弹出一个提示的对话框“除数不能为零请重新输入”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YiFei_erp19
2012-09-22 · TA获得超过1169个赞
知道小有建树答主
回答量:1584
采纳率:40%
帮助的人:478万
展开全部
var
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin

if jiashu <> 0 then
chu:= beijiashu/jiashu
else
chu := 0 ;

form1.Edit1.Text:=floattostr(chu);
end;

begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mit1208
2012-09-22 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1909万
展开全部
回leo 用delphi的人还有很多很多,你孤落寡闻了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式