别见笑,刚刚学delphi编写计算器的小问题

biming520 2010-01-31 10:39:19
3个文本编辑框
实现 第一个和第三个框输入数字 中间输入+ - * / 运算符 点击按钮出现结果 用 加 减 陈 除 四个函数 实现
function jia(x,y:Double):Double ; 函数加
var
c:Double;
begin
c:=x+y ;
jia:=c;
end;
function jian(x,y:Double):Double ; 函数减
var
d:Double;

begin
d:=x-y;
jian:=d;
end;
function chen(x,y:Double):Double ;函数称
var
e:Double;

begin
e:=x*y ;
chen:=e;
end;
function chu(x,y:Integer):double; 函数除
var
e:Double;

begin
e:=x/y ;
chu:=e;
end;


procedure TForm1.Button1Click(Sender: TObject); 按钮的事件代码
var
x,z,d:Double;
y:char;




begin
x:=strtoint(Edit1.text); 得到第一个数字
y:=Edit2.text; 这里出错了 前面是char 类型 可是不知道怎么改 z:=strtoint(Edit3.text); 得到第二个数字

if y="+" then 如果 Y=“+”号
d:=jia(x,y); 调用 jia 函数
begin 因为前面有错误所以后面没写了

end
else
begin

end;
end;

end.
想请会的 朋友帮我 看看 这后面该怎么改下 谢谢了
...全文
318 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq369860303 2010-02-08
  • 打赏
  • 举报
回复
y:=strtoint(edit2.text);
forestry98 2010-02-04
  • 打赏
  • 举报
回复
好感概啊!我开始编程的时候第一个程序就是计算器,不过那时使用 VB。
dd_zhouqian 2010-02-03
  • 打赏
  • 举报
回复
我记得我的第一个程序也是计算器,那个时候真的好不容易才写好一个,不容易啊
xjq2003 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yct0605 的回复:]
给你一个思路吧,把+、-、*、/ 放在combobox控件里面,根据combobox的itemindex值来判断用户选择的数据操作,这里可以用
var
float X;
case combobox.itemindex of
0:x:=strtoint(edit1.text)+strtoint(edit2.text)//加操作
1:x:=strtoint(edit1.text)-strtoint(edit2.text)//减操作
2:x:=strtoint(edit1.text)*strtoint(edit2.text//乘操作
3:x:=strtoint(edit1.text)/strtoint(edit2.text//除操作,除操作要判断被除数是否为零
end;
[/Quote]这个方便使用
yct0605 2010-02-03
  • 打赏
  • 举报
回复
给你一个思路吧,把+、-、*、/ 放在combobox控件里面,根据combobox的itemindex值来判断用户选择的数据操作,这里可以用
var
float X;
case combobox.itemindex of
0:x:=strtoint(edit1.text)+strtoint(edit2.text)//加操作
1:x:=strtoint(edit1.text)-strtoint(edit2.text)//减操作
2:x:=strtoint(edit1.text)*strtoint(edit2.text//乘操作
3:x:=strtoint(edit1.text)/strtoint(edit2.text//除操作,除操作要判断被除数是否为零
end;
biming520 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dd_zhouqian 的回复:]
我记得我的第一个程序也是计算器,那个时候真的好不容易才写好一个,不容易啊
[/Quote]
呵呵 同感啊 虽然的人看了很简单 但是刚刚接触这些生硬的东西 错误百出 花了好久
biming520 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yct0605 的回复:]
给你一个思路吧,把+、-、*、/ 放在combobox控件里面,根据combobox的itemindex值来判断用户选择的数据操作,这里可以用
var
float X;
case combobox.itemindex of
0:x:=strtoint(edit1.text)+strtoint(edit2.text)//加操作
1:x:=strtoint(edit1.text)-strtoint(edit2.text)//减操作
2:x:=strtoint(edit1.text)*strtoint(edit2.text//乘操作
3:x:=strtoint(edit1.text)/strtoint(edit2.text//除操作,除操作要判断被除数是否为零
end;
[/Quote].
谢谢你的帮助 我这就是试验
biming520 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bjcx994 的回复:]
觉得一个函数就够了
[/Quote]
麻烦有更好的 方法 给我观摩观摩 谢谢啊
最好有附加注释 因为我刚学 很多不懂
wjs_002 2010-02-01
  • 打赏
  • 举报
回复
你这个程序写的别扭,按常见的计算器的样子写说不定会简单些,比如用一个文本框输入数字,显示结果也用这个文本框,用四个按钮表示+ - * /,否则你还得判断到底是+还是-。
y[1]的意思是字符串的第一个字符吧。话怎么说来着:大概是每个字符串就是一个数组,字符串的第n个字符可以表示为y[N]。
bjcx994 2010-02-01
  • 打赏
  • 举报
回复
觉得一个函数就够了
buding79 2010-02-01
  • 打赏
  • 举报
回复
y声明成string就可以了。
y:=edit2.text;

之后直接判断,就可以了,没必要char类型
if y='*' then
begin
//
end;
//另外,你用的都是double型的,可以用strtofloat就可以了。
biming520 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wjs_002 的回复:]
你这个程序写的别扭,按常见的计算器的样子写说不定会简单些,比如用一个文本框输入数字,显示结果也用这个文本框,用四个按钮表示+ - * /,否则你还得判断到底是+还是-。
y[1]的意思是字符串的第一个字符吧。话怎么说来着:大概是每个字符串就是一个数组,字符串的第n个字符可以表示为y[N]。
[/Quote]

我也想按照常规写 我才刚学, 很多函数什么都不知道 只能这样了
biming520 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuang_bx 的回复:]
var y:string;

x:=strtoint(Edit1.text);  得到第一个数字
y:=trim(Edit2.text);             
z:=strtoint(Edit3.text);  得到第二个数字

case y[1] of 有点不理解 y[1] 是什么意思。。
  '+':;//加
'-':;//减
'*':;//乘
'/':;//除
end;

[/Quote]
zhuang_bx 2010-01-31
  • 打赏
  • 举报
回复
var y:string;

x:=strtoint(Edit1.text); 得到第一个数字
y:=trim(Edit2.text);
z:=strtoint(Edit3.text); 得到第二个数字

case y[1] of
'+':;//加
'-':;//减
'*':;//乘
'/':;//除
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧