DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: deliping
今日帖子: 19
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 xuehai (xuehai) ★☆☆☆☆ -
普通会员
2003/10/22 22:33:09
标题:
delphi的简单程序,如何判定三角形,有点小问题,大家看看哦 浏览:1766
加入我的收藏
楼主: {这是三角形判定的程序,为使程序健壮,判断条件却通不过}
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c: Integer;
begin


{以下这段程序有问题,不用它时能通过,用了就不行了,其实能有个专门的判定函数最好,但是我不会实现,帮帮我吧,各位大哥大姐}

    case Edit1.text of
   ’A’..’Z’,’a’..’z’:  ShowMessage(’字母不能作边,请重新输入!’);
    ’+’,’-’,’*’,’/’:  showmessage(’符号不能作边,请重新输入!’);
  case Edit2.Text of
  ’A’..’Z’,’a’..’z’:showmessage(’字母不能作边,请重新输入!’);
  ’+’,’-’,’*’,’/’:showmessage(’符号不能作边,请重新输入!’);
  case Edit3.Text of
  ’A’..’Z’,’a’..’z’:showmessage(’字母不能作边,请重新输入!’);
  ’+’,’-’,’*’,’/’:showmessage(’符号不能作边,请重新输入!’);
  if (Edit1.text=’’)or(Edit2.text=’’)or(Edit3.text=’’)then
    showmessage(’边不能为空,请重新输入!’);  

//到这里以上有问题,大家看看哦,谢谢!


  a:=StrToInt(Edit1.text);
  b:=strtoint(Edit2.text);
  c:=strtoint(Edit3.text);
  if (a+b>c)and(a-b<c) then
     begin
     if (a=b) and (b=c) then
        ShowMessage(’等边三角形’)
     else if (a=b) and (b<>c) then
        ShowMessage(’等腰三角形’)
     else if (a=c) and (b<>c) then
        ShowMessage(’等腰三角形’)
     else if (b=c) and (a<>c) then
        ShowMessage(’等腰三角形’)
     else if (a<>b) and (b<>c) then
        ShowMessage(’一般三角形’)
     end
   else
    ShowMessage(’构不成三角形’);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit1.Text:=’’;
  Edit2.Text:=’’;
  Edit3.Text:=’’;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

end.


----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/10/22 23:41:19
1楼: 本论坛可以直接发送'符号的,不用转为‘了,不好帮你调试,你看看case语句好像要end;结束。
  case Edit3.Text of
  'A'..'Z','a'..'z':showmessage('字母不能作边,请重新输入!');
  '+','-','*','/':showmessage('符号不能作边,请重新输入!');
  end;
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 xionghouqian (panpan) ★☆☆☆☆ -
盒子活跃会员
2003/10/23 9:14:50
2楼: 其实没必要搞得这么麻烦,你完全可以在Edit1的keyup或 keydown事件里编写代码,禁止输入非数字字符;另外,你的三角形判别式好象有问题,(当输入a:=0,b:=2,c:=1时满足你的判定条件,但能组成三角形吗?)正确的应该是:
    if (a+b>c)and(a+c>b)and(c+b>a) 
   ..........
好好想想这是为什么?
----------------------------------------------
风雨兼程
作者:
男 xuehai (xuehai) ★☆☆☆☆ -
普通会员
2003/10/23 18:18:05
3楼: 谢谢各位

我是新手,有点幼稚,我会努力的。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS