by024 发表于 2014-5-17 15:48:44

pascal练习 面向对象之1 三个数比大小

本帖最后由 by024 于 2014-5-17 16:05 编辑

没事做小练习,复习巩固面向对象。这个三个数比大小,刚学delphi时,一直理解不来。。。。想想,就是数学不好。。上图

不上传压缩文件了,直接上源码
类声明
compare1=class //compare 比较
private
   FBig:string;
   FSmall:string;
public
   procedure j(a,b,c:integer);
   property Bigvalue:string   read FBig   ;
   property Smallvalue:string read FSmall ;
end;


{过程实现}
procedure compare1.j(a,b,c:integer);
var
i:integer;
begin
   if a<b then begin i:=a; a:=b; b:=i;end;
   if a<c then begin i:=a; a:=c; c:=i;end;
   if b<c then begin i:=b; b:=c; c:=i;end;
   FBig:=inttostr(a)+', '+inttostr(b)+', '+inttostr(c);
   FSmall:=inttostr(c)+', '+inttostr(b)+', '+inttostr(a);
end;

////////////////////////////////////// 上面为对封装部分
{程序执行}
procedure TForm1.Button1Click(Sender: TObject);
var
   A1:compare1;
begin
   A1:=compare1.Create;
   A1.j(strtoint(edit1.Text),strtoint(edit2.Text),strtoint(edit3.Text)); //送入对象中排序
   edit4.Text:=A1.Bigvalue; //输入排列结果大to小
   edit5.Text:=A1.Smallvalue; //输出小to大
   A1.Free;
end;

by024 发表于 2014-5-17 15:53:47

本帖最后由 by024 于 2014-5-17 15:55 编辑

基实这么小的东西为面向对象,确实比较麻烦,直接写个过程调用就可以了。主要是为了加深一下什么是面向对象,才这么写的。如果程序大了,这么种法会比较好一些。
用面向对象,在delphi实现多线程同时调用一个过程的功能,也很容易,不冲。
直接调用过程来实现多线程执行同一个过程,很容易出错。

cable5881 发表于 2014-8-28 08:07:56

楼主辛苦,已学习!!!!
页: [1]
查看完整版本: pascal练习 面向对象之1 三个数比大小