可视化编程delphishiyan2.doc_第1页
可视化编程delphishiyan2.doc_第2页
可视化编程delphishiyan2.doc_第3页
可视化编程delphishiyan2.doc_第4页
可视化编程delphishiyan2.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验2:函数过程的定义、调用,面向对象程序设计一、 实验目的:(1) 掌握delphi 7过程与函数的使用。(2) 熟悉类和对象的定义和使用。二、 实验内容与步骤:根据Delphi程序设计过程,完成以下任务:1. 编写函数isPrime,作用是判断一个整数是否为素数。设计并完成:显示指定的区间(如300到500之间)所有的素数,和,以及个数。2. 编程实现计算:1!+2!+3!+N!的值,N的值由用户输入。要求定义并调用函数计算N!。3. 编写TFORM1类的两个过程,一个过程的作用是设置button2,button3为不可用状态,另一个过程的作用为设置它们为可用状态。并且在过程TForm1.FormCreate中调用第一个过程,在TForm1.Button1Click中调用第二个过程。(可直接应用在实验1的三角形性质判定上)。4. 定义一个类为形状,由它派生出圆、正方形、长方形。利用多态性以虚函数的形式完成计算圆、正方形、长方形的面积。(1)形状类名为Tshape, 圆、正方形、长方形的类名分别为Tcircle,Tsquare,Trectangle。(2)基类Tshape是一个抽象类,只有一个公有的成员方法: area; 用于求面积,这是一个虚拟、抽象方法。(3)各派生类的属性均是私有的,数据类型为实型。圆的半径为r,正方形的边长为a,长方形的边长为a,b, 各派生类均需要定义公有的构造方法(有参数和无参数)。(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 else 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的话,并不会停止执行下列语句 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 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类的定义: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;override; end;然后在写各个成员方法的方法体,实现求面积的功能实验结果判断素数:计算阶乘:过程的定义与调用:类的定义与使用:五、实验总结:这次实验主要是对函数和过程,以及类和对象的知识进行练习,在做前面三题的时候,做得比较顺利,基本没问题,使我对于函数和过程的知识有了更进一步的加深和巩固。虽然在上学期有学习过面向对象的C+,但是对于类和对象的知识,有些部分学得不好,理解不够深入。在做实验的过程中发现的问题,在以后的学习过程中需要注意一下:function factorial(a:integer):integer; var i,n:integer; begin n:=1;这里必须要给n赋初始值。否则在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不像ret

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论