可视化编程delphishiyan2.doc

上传人:asd****56 文档编号:70344752 上传时间:2023-01-19 格式:DOC 页数:6 大小:257.50KB
返回 下载 相关 举报
可视化编程delphishiyan2.doc_第1页
第1页 / 共6页
可视化编程delphishiyan2.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《可视化编程delphishiyan2.doc》由会员分享,可在线阅读,更多相关《可视化编程delphishiyan2.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验2:函数过程的定义、调用,面向对象程序设计一、 实验目的:(1) 掌握delphi 7过程与函数的使用。(2) 熟悉类和对象的定义和使用。二、 实验内容与步骤:根据Delphi程序设计过程,完成以下任务:1. 编写函数isPrime,作用是判断一个整数是否为素数。设计并完成:显示指定的区间(如300到500之间)所有的素数,和,以及个数。2. 编程实现计算:1!+2!+3!+N!的值,N的值由用户输入。要求定义并调用函数计算N!。3. 编写TFORM1类的两个过程,一个过程的作用是设置button2,button3为不可用状态,另一个过程的作用为设置它们为可用状态。并且在过程TForm1.

2、FormCreate中调用第一个过程,在TForm1.Button1Click中调用第二个过程。(可直接应用在实验1的三角形性质判定上)。4. 定义一个类为形状,由它派生出圆、正方形、长方形。利用多态性以虚函数的形式完成计算圆、正方形、长方形的面积。(1)形状类名为Tshape, 圆、正方形、长方形的类名分别为Tcircle,Tsquare,Trectangle。(2)基类Tshape是一个抽象类,只有一个公有的成员方法: area; 用于求面积,这是一个虚拟、抽象方法。(3)各派生类的属性均是私有的,数据类型为实型。圆的半径为r,正方形的边长为a,长方形的边长为a,b, 各派生类均需要定义公

3、有的构造方法(有参数和无参数)。(4)设计一个完整的程序,分别计算圆、正方形、长方形的面积并输出结果。思考:如果让Tsquare作为Trectangle的子类,应当如何定义?补充:可思考如何用类和对象的方式实现一个计算器,既可用于可视化界面,也可用于控制台程序。实验要求:第1,2题画流程图开始实验步骤输入一个区间min和max判断素数关键函数代码:function isPrime(a:integer):boolean; var i:integer; flag:boolean; begin if a2 then flag:=falseelse if a=2 then flag:=true els

4、e for i:=2 to trunc(sqrt(a) do if a mod i = 0 then begin flag:=false;break; end; result:=flag; end;YYYNNNjmax输出该数是素数输出该数不是素数结束i+n是否能被i整除?in的平方根?输入一个整数n计算阶乘关键函数代码:function factorial(a:integer):integer; var i,n:integer; begin n:=1;这里必须要给n赋初始值。否则在result可能会出现错误 if a=0 then n:=1 这里最好使用n为1,因为使用result将其赋为1

5、的话,并不会停止执行下列语句 else for i:=1 to a do n:=n*i; result:=n; end;NNYY结束sum+=j输出阶乘输出阶乘之和injij=1;j+j=j*i输入整数ni=0;sum=0开始TForm1类的两个过程关键代码:var Form1: TForm1; procedure pro1; procedure pro2;implementation$R *.dfm procedure pro1; begin form1.Button2.Enabled:=false; form1.Button3.Enabled:=false; end; procedure

6、pro2; begin form1.Button2.Enabled:=true; form1.Button3.Enabled:=true; end;procedure TForm1.FormCreate(Sender: TObject);begin pro1;end;procedure TForm1.Button1Click(Sender: TObject);begin pro2;end;end.形状类先进行父类和子类的定义Tshape类的定义:type Tshape=class public function area:real; virtual;abstract; end;TCircle类

7、的定义:type TCircle=class(Tshape) private r:real; public function getr:real; public function area:real;override; end;TSquare类的定义:type TSquare=class(Tshape) private a:real; public function area:real;override; end;Rectangle类的定义:type TRectangle=class(Tshape) private a,b:real; public function area:real;ove

8、rride; end;然后在写各个成员方法的方法体,实现求面积的功能实验结果判断素数:计算阶乘:过程的定义与调用:类的定义与使用:五、实验总结:这次实验主要是对函数和过程,以及类和对象的知识进行练习,在做前面三题的时候,做得比较顺利,基本没问题,使我对于函数和过程的知识有了更进一步的加深和巩固。虽然在上学期有学习过面向对象的C+,但是对于类和对象的知识,有些部分学得不好,理解不够深入。在做实验的过程中发现的问题,在以后的学习过程中需要注意一下:function factorial(a:integer):integer; var i,n:integer; begin n:=1;这里必须要给n赋初

9、始值。否则在result可能会出现错误 if a=0 then n:=1 这里最好使用n为1,因为使用result将其赋为1的话,并不会停止执行下列语句 else for i:=1 to a do n:=n*i; result:=n; end;与之前学习的编程语言有所不同的是,Delphi的函数中用于传递返回值的result不像return语句一样执行之后就不再执行后面的语句,跳回到调用的地方,result语句执行之后的语句还会继续执行,直到该函数全部执行结束。另外在第二题的计算阶乘的函数中,我使用的是integer类型,在数据比较大的时候计算阶乘可能会出现结果不能表示的问题。这个还需要进一步考虑。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁