第5章VB程序设计2.ppt
- 文档编号:2121850
- 上传时间:2022-10-27
- 格式:PPT
- 页数:64
- 大小:230KB
第5章VB程序设计2.ppt
《第5章VB程序设计2.ppt》由会员分享,可在线阅读,更多相关《第5章VB程序设计2.ppt(64页珍藏版)》请在冰豆网上搜索。
第第55章章VBVB程序设计之二程序设计之二-过过程与过程应用程与过程应用(P108122)(P108122)引入引入11、计算、计算33!
+5+5!
+9+9!
22、随机产生、随机产生nn个学生个学生55门课程的成绩,要求计算门课程的成绩,要求计算:
(11)每个学生的平均分;)每个学生的平均分;(22)每门课程的平均分;)每门课程的平均分;(33)找出最高平均分所对应的学生课程信息。
)找出最高平均分所对应的学生课程信息。
PrivateSubForm_Click()PrivateSubForm_Click()Dimi%,s&Dimi%,s&s=0s=0t=1t=1Fori=1To5Fori=1To5t=t*it=t*iNextiNextis=s+ts=s+tt=1t=1Fori=1To7Fori=1To7t=t*it=t*iNextiNextis=s+ts=s+tt=1t=1Fori=1To9Fori=1To9t=t*it=t*iNextiNextis=s+ts=s+tPrints=;sPrints=;sEndSubEndSubPrivateFunctionf(nAsPrivateFunctionf(nAsInteger)Integer)Dimi%,t&Dimi%,t&t=1t=1Fori=1TonFori=1Tont=t*it=t*iNextiNextif=tf=tEndFunctionEndFunctionPrivateSubCommand1_Click()PrivateSubCommand1_Click()Dims&Dims&s=f(5)+f(7)+f(9)s=f(5)+f(7)+f(9)PrintsPrintsEndSubEndSub产生数据产生数据总任务总任务计算每个学生计算每个学生的平均分的平均分计算每门课程计算每门课程的平均分的平均分主要内容主要内容过程概述过程概述过程的定义及应用过程的定义及应用参数传递参数传递任务任务11认识过程认识过程过程是完成特定功能的一组独立的程序过程是完成特定功能的一组独立的程序代码。
代码。
在结构化的程序中,经常将一个较大的在结构化的程序中,经常将一个较大的程序划分成若干个较小的程序模块,每程序划分成若干个较小的程序模块,每个模块只完成一个或若干个功能。
个模块只完成一个或若干个功能。
过程的使用场合11)程序内,多次出现相同或相似的运算或)程序内,多次出现相同或相似的运算或处理过程。
处理过程。
例如例如:
任务任务1133!
+5+5!
+9!
+9!
22)程序复杂。
(结构化程序设计)程序复杂。
(结构化程序设计)例如:
任务例如:
任务22过程的种类过程的种类系统提供的内部函数过程和事件过程系统提供的内部函数过程和事件过程通用过程通用过程SUB过程过程Function过程过程通用过程是独立于事件过程之外,可供通用过程是独立于事件过程之外,可供其他过程其他过程调用的程序段调用的程序段(用户根据应用的需要而设计的过程用户根据应用的需要而设计的过程)FUNCTION过程过程VB工程文件工程文件(.VBP)窗体模块窗体模块类模块类模块标准模块标准模块SUB过程过程事件事件过程过程SUB过程过程事件事件过程过程VBVB工程文件的构成:
工程文件的构成:
任务任务22:
SubSub过程(子程序过程)过程(子程序过程)基本格式基本格式:
(P106)staticprivatepublicsub过程名过程名(形参表形参表)语句块语句块1exitsub语句块语句块2endsub局部局部(Private)过程过程全局全局(公用公用,Public)过程过程静态静态(Static)过程过程形参表定义格式形参表定义格式:
ByVal|ByRef变量名变量名()As数据类型数据类型ByVal表示该参数按值传递表示该参数按值传递ByRef表示该参数按地址传递表示该参数按地址传递(缺省缺省)SubSub过程可以获取调用过程传送的参数,也能通过过程可以获取调用过程传送的参数,也能通过参数表的参数,把计算结果传回给调用过程参数表的参数,把计算结果传回给调用过程subsub过程建立过程建立Sub过程可以保存在两种模块中:
窗体模块过程可以保存在两种模块中:
窗体模块(.frm)和标准模块和标准模块(.bas)A、可以在代码窗口中直接键入来创建、可以在代码窗口中直接键入来创建Sub过程过程B、选择、选择“工具工具”菜单中的菜单中的“添加过程添加过程”命命令令应用应用11计算计算33!
+5+5!
+9+9!
分析:
分析:
定义一个求定义一个求N!
N!
的的subsub子程序子程序调用该子程序求调用该子程序求33!
+5+5!
+9+9!
PrivateSubfac(nAsInteger,tAsLong)DimiAsIntegert=1Fori=1Tont=t*iNextEndSubSubSub的调用的调用调用调用Sub过程有以下两种方法:
过程有以下两种方法:
(1)使用使用Call语句语句格式:
格式:
Call过程名过程名(实参表实参表)
(2)直接使用过程名直接使用过程名格式:
格式:
过程名实参表过程名实参表调用该子程序求调用该子程序求33!
+5+5!
+9+9!
PrivateSubCommand1_Click()Dima&,b&,c&Callfac(3,a)Callfac(5,b)Callfac(9,c)Printa+b+cEndSubPrivateSubCommand1_Click()Dima&,b&,c&fac3,afac5,bfac9,cPrinta+b+cEndSub问题与应用问题与应用编写一个判断素数的子过程编写一个判断素数的子过程.要求输入一要求输入一个整数个整数,就能够通过该子过程求得该整数就能够通过该子过程求得该整数是否是素数是否是素数.分析分析:
1)1)主过程主过程(事件过程事件过程)中输入一个整数中输入一个整数2)2)调用定义的子程序对该整数进行判断调用定义的子程序对该整数进行判断3)3)主程序输出判断结果主程序输出判断结果素数素数只能被只能被1和它本身整除的数。
和它本身整除的数。
验证方法验证方法:
2,3,n-1之中的数都不是之中的数都不是n的因子的因子PrivateSubCommand1_Click()Dimn%,tAsBooleann=Val(InputBox(请输入一个整数)Ifn=0ThenMsgBox输入的数据不正确ElseCallprime(n,t)IftThenPrintStr(n)+是素数ElsePrintStr(n)+不是素数EndIfEndIfEndSubPrivateSubprime(nAsInteger,tAsBoolean)PrivateSubprime(nAsInteger,tAsBoolean)Dimi%Dimi%Ifn=1ThenIfn=1Thent=Falset=FalseExitSubExitSubElseElset=Truet=TrueFori=2Ton-1Fori=2Ton-1IfnModi=0ThenIfnModi=0Thent=False:
ExitSubt=False:
ExitSubEndIfEndIfNextiNextiEndIfEndIfEndSubEndSub任务2小结SUB子程序的定义及调用子程序的定义及调用虚参数的定义及传递虚参数的定义及传递任务任务33:
functionfunction过程(函数过程)过程(函数过程)staticprivatepublicfunction函数名函数名(形参表形参表)as类型类型语句块语句块函数名函数名=表达式表达式exitfunction语句块语句块Endfunction注意:
函数返回值的处理注意:
函数返回值的处理应用应用22计算计算33!
+5+5!
+9+9!
分析:
分析:
定义一个求定义一个求N!
N!
的的functionfunction子程序子程序PrivateFunctionfac1(nAsInteger)AsLongDimiAsIntegerDimtAsLongt=1Fori=1Tont=t*iNextfac1=tEndFunctionFunctionFunction过程的调用过程的调用
(1)
(1)直接调用直接调用只需写出函数名和相应的参数即可。
只需写出函数名和相应的参数即可。
例如:
例如:
s=Max(a,b)PrintMax(s,c)
(2)
(2)用用CallCall语句调用语句调用与调用与调用Sub过程一样来调用过程一样来调用Function过程,过程,例如:
例如:
CallMax(a,b)当用这种方法调用当用这种方法调用Function过程时,将会放弃返回值过程时,将会放弃返回值利用用户定义函数利用用户定义函数,编写求任意数的立方的函编写求任意数的立方的函数数,然后求然后求120120的立方的立方编写一个判断素数的编写一个判断素数的functionfunction过程过程.要求输入要求输入一个整数一个整数,就能够通过该子过程求得该整数是就能够通过该子过程求得该整数是否是素数否是素数;(;(求求5010050100内的所有素数及其和。
内的所有素数及其和。
)编写一个求最大公约数的函数过程,并在事件编写一个求最大公约数的函数过程,并在事件过程中调用它来求任意两个数的最大公约数过程中调用它来求任意两个数的最大公约数问题与应用问题与应用PrivateSubForm_Click()Dimi%Fori=1To20Printcube(i);NextiEndSubPrivateFunctioncube(nAsInteger)AsSinglecube=n*n*nEndFunctionPrivateFunctionprime(nAsInteger)AsBooleanDimi%,tAsBooleanIfn=1Thent=FalseElset=TrueFori=2Ton2IfnModi=0Thent=False:
ExitForEndIfNextiEndIfprime=tEndFunction任务任务3小结小结函数过程的定义函数过程的定义函数过程的调用函数过程的调用知识点小结知识点小结1、子程序的选择问题、子程序的选择问题
(1)编写判断一个整数的奇偶性子程序。
提示提示:
(1)SUB过程名不代表一个值,若需要把过程的执过程名不代表一个值,若需要把过程的执行结果传回调用过程,需要用参数实现。
行结果传回调用过程,需要用参数实现。
(2)function函数名可代表一个值,若过程的执行函数名可代表一个值,若过程的执行结果只有一个,可以通过函数名传回调用程序。
结果只有一个,可以通过函数名传回调用程序。
2、子程序的程序体一般用于完成所规定特、子程序的程序体一般用于完成所规定特定功能,数据的输入和输出一般由定功能,数据的输入和输出一般由调用程调用程序序完成。
完成。
例如:
编写一个判断闰年的过程。
指定或随机产生例如:
编写一个判断闰年的过程。
指定或随机产生一较合理的年份,然后调用该过程判断该年是否为一较合理的年份,然后调用该过程判断该年是否为闰年。
闰年。
3、形参与实参问题、形参与实参问题。
PrivateFunctionprime(nAsInteger)AsBooleanPrivateFunctionprime(nAsInt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计