第八章数组与自定义方法.doc_第1页
第八章数组与自定义方法.doc_第2页
第八章数组与自定义方法.doc_第3页
第八章数组与自定义方法.doc_第4页
第八章数组与自定义方法.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

第七章 数组与自定义函数、属性、方法试验目的:1、 了解数组的概念,掌握数组的定义和使用方法2、 学习数组与数据表文件之间传递数据的若干命令3、 掌握主程序、子程序和过程文件的区别4、 掌握子程序和过程文件建立和调用的方法5、 掌握自定义函数的格式及其调用方法6、 了解自定义属性、方法概念、使用方法7、 掌握全局、局部、区域变量的作用和作用范围8、 掌握参数的地址传递、数值传递的使用试验内容:1 使用表单自定义方法编写求阶乘和求累加和。n=thisform.text1.values=0for i=1 to n s=s+fact(i)endfor?1!+2!+3!+.+alltrim(str(n)+!=+alltrim(str(s)function fact PARAMETER NUMx=1FOR m= 1 TO NUMx=x*mENDFORRETURN xEND FUNCTION2 使用“传址”方式传递参数,编写判断素数的自定义方法,验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和。在表单中增加一个判断素数的自定义方法Prime(),并编写其代码为:Lparameters mf=.T.if m3 for i=3 to SQRT(m) if m%i=0 f=.F. exit endif endforendifreturn f编写命令按钮command的事件代码n=thisform.text1.valueif n%20 or nav p=p+a(+str(n,1)+,+str(m,1)+)=+str(a(n,m),2)+ ENDIF ENDFOR ENDFOR MESSAGEBOX(p,0,大于平均值的元素是) CASE k=2 thisform.activate thisform.label1.caption=平均值= ENDCASE 4使用数组属性定义86的矩阵,各元素的值由由计算机随机产生,求全部元素的平均值,并输出高于平均值的元素以及它们的行、列号。5设有10个评委,有计算机随机产生5.0010.00的数值代替打分,分别用10个文本框显示,去掉一个最高分、一个最低分,计算平均分。dime a(10)for i=1 to 10 a(i)=rand()*5+5endforthisform.text1.value=a(1)thisform.text2.value=a(2)thisform.text3.value=a(3).thisform.text10.value=a(10)6分别编写一个函数和子过程,用来判断一个数是否是水仙花数。其中:函数过程返回“是”或“不是,”子过程由消息框显示判断结果。函数FUNCTION NNPARAMETERS nNumcNum=ALLTRIM(STR(nNum)IF LEN(cNum)3 MESSAGEBOX(数据不是三位数,请重新赋值。) RETURN .F.ENDIF S1=VAL(LEFT(cNum,1)S2=VAL(SUBSTR(cNum,2,1)S3=VAL(RIGHT(cNum,1)IF S1*S1*S1+S2*S2*S2+S3*S3*S3=nNum RETURN .T.ELSE RETURN .F.ENDIFEND FOUNCTION子程序*shuixianhuashu x=1y=1input 请输入一个数: to xinput 请输入水仙花数 to yif x=yMESSAGEBOX(“是”)elseMESSAGEBOX(“否”)endifreturn7分别用函数、过程和子程序判断某数是否是素数。INPUT输入一个数,判断是否为素数TO SSA=0B=SSIF A1 DO WHIL SS/BINT(SS/B) B=B-1 IF B=0 ENDDO ENDIFELSEmessagebox =(输入大于1的数)EXITENDIFthisform.text1.value= SS是素数RETURN8分别用函数、过程和子程序随机产生一个两位奇数。9编写一个find函数,能够查找用户输入的数是否在一个随机数组中,如在数组中,则把它的位置显示出来。例如,a数组中随机产生的5个数:3,8,9,5,2。如果用户输入9,调用find函数后能够显示:9在数组a中,是第3个数。dime a(5)for i=1 to 5 a(i)=rand()*5+5endforinput “输入要查找的数n” to nb=max(a(1),a(2),a(3),a(4),a(5)for n=1 to b c=find(n) messagebox(allt(str(n)+”在数组中是第”+all(str(c)+”个数”)endforfunction findparameters NUMfor m=1 to NUM提示:中数:将一个数列排序后,若数列的个数为奇数,则其中数为数列中间那个数的值,若为偶数,则其中数为数列中间那两个数的平均值。如1,2,3,4,5的中数为中间的3;1,2,3,4,5,6的中数为中间3和4两数的平均值3.5。10编写函数求一元二次方程ax2+bx+c=0的解,分别通过文本框输入系数a,b,c,输出解x12,x2。编写Command1的 click事件代码a=thisform.text1.value b=thisform.text2.value c=thisform.text3.value m=b*b-4*a*c N=-B/(2*A) do case case a=0 x=-c/b thisform.label5.caption=该方程不是一元二次方程,只有一个根x=+alltrim(str(x,6,2) case a0 and m0 x1=N+sqrt(m)/(2*a) x2=N-sqrt(m)/(2*a) thisform.label5.caption=该方程有两个不同的实根x1=+alltrim(str(x1,6,2)+ x2= +alltrim(str(x2,6,2) case a0 and m=0 x=N thisform.label5.caption=该方程有两个相同的实根x=+alltrim(str(x) case a0 and m0 x1=allt(str(n,6,2)+allt(str(sqrt(-m)/(2*A),6,2)+i x2=allt(str(n,6,2)+-+allt(str(sqrt(-m)/(2*A),6,2

温馨提示

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

评论

0/150

提交评论