数据库应用08 vba结构化程序设计_第1页
数据库应用08 vba结构化程序设计_第2页
数据库应用08 vba结构化程序设计_第3页
数据库应用08 vba结构化程序设计_第4页
数据库应用08 vba结构化程序设计_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

第8章VBA程序设计基础程序概念维基解释()/zh-cn/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80另一种解释参见Wiki解释/wiki?title=%E7%A8%8B%E5%BA%8F&variant=zh-cn计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。通常,计算机程序要经过编译和链接而成为一种人们不易理解而计算机理解的格式,然后运行。未经编译就可运行的程序通常称之为脚本程序。AJoke(SQL版)某女技术人员的征婚信息SELECT*FROM男人

WHERE(未婚=trueor离异=true) and穷光蛋=falseand有房=trueand有车=true结果有人回帖:(0row(s)affected)AJoke(C语言版)姑娘爱小伙(伪C语言版)resultlove(boy,girl){if(boy.有房()andboy.有车()){boy.set(nothing);returngirl.嫁给(boy);}姑娘爱小伙

(搞笑版)if(girl.愿意等()){while(!(boy.赚钱>100,000andgirl.感情>8)){for(day=1;day<=365;day++){if((day==情人节orday==girl.生日)&andboy.givegirl(玫瑰))girl.感情++;elsegirl.感情--;boy.拼命赚钱();}//for}//while姑娘爱小伙(搞笑版)if(boy.有房()andboy.有车()){boy.set(nothing);returngirl.嫁给(boy);}else{

年龄++;girl.感情--;}returngirl.goto(another_boy);}姑娘爱小伙(搞笑版)完整版resultlove(boy,girl){if(boy.有房()andboy.有车()){boy.set(nothing);returngirl.嫁给(boy);}if(girl.愿意等()){while(!(boy.赚钱>100,000andgirl.感情>8)){for(day=1;day<=365;day++){if((day==情人节orday==girl.生日)&andboy.givegirl(玫瑰))girl.感情++;elsegirl.感情--;boy.拼命赚钱();}//for}//whileif(boy.有房()andboy.有车()){boy.set(nothing);returngirl.嫁给(boy);}else{

年龄++;girl.感情--;}//if愿意等

returngirl.goto(another_boy);}程序可读性缩格对齐注释8结构化程序设计基础程序设计过程算法程序流程图及示例8.1程序设计过程程序设计即是计算机用户根据解决某一问题的步骤,按一定的逻辑关系,将一系列的指令组合在一起。8.2算法(1)程序的设计过程,核心问题是设计一个合理、有效的算法。一般认为,算法就是在有限的时间内,可以根据明确规定的运算规则,在有穷步骤内得出确切计算结果的机械步骤或能运行的计算程序。8.2算法(2)算法特性:(1)有序性:每个步骤被执行的顺序是确定的。(2)有限性:即解题步骤是有限的,无穷的步骤意味无解。(3)确定性:多次运行同样一个程序,其结果相同。此外,算法可以没有输入(因为输入由计算机自动产生),但一定要有输出,输出用来表示问题是否有解。8.2算法(3)三种基本控制结构:顺序、分支、循环顺序结构是程序设计中最基本的结构。在该结构中,程序的执行是按命令出现的先后顺序依次执行的。分支结构是按给定的选择条件成立与否来确定程序的走向。分支结构可分为双重分支选择和多重分支选择。在任何条件下,无论分支多少,只能选择其一。8.2算法(4)三种基本控制结构:顺序、分支、循环循环结构是一种重复结构,即某一程序段将被反复执行若干次。按循环的嵌套层次,循环可分为简单循环结构和循环嵌套(也称为多重循环)结构。按循环体执行的条件性质,循环又可分为While循环和Until循环。无论何种类型的循环结构,都要确保循环的重复执行能够终止。8.2算法(5)结构化程序是指仅由三种基本控制结构组成的程序,它具有以下特点:(1)整个程序模块化。(2)每个模块只有一个入口和一个出口。(3)每个模块都应能单独执行,且无死循环。(4)采用黑箱的思想,宏观地描述任何一个程序,可以将它看成为顺序结构。8.3程序流程图及示例ANSI流程图N-S图1.ANSI流程图(1)判断框箭头:表示程序流向连接符号:表示图标之间相互连接关系判断框:表示根据条件决定程序走向过程:表示该流程部分是一个过程输入/输出框:表示数据的输入、输出操作处理框:表示对数据进行处理起止框:表示程序的开始或结束1.ANSI流程图(2)顺序结构1.ANSI流程图(3)条件分支结构1.ANSI流程图(4)循环结构Until型循环结构While型循环结构1.ANSI流程图(5)多重条件分支结构2.N-S图(1)顺序结构语句块1语句块2语句块32.N-S图(2)条件分支结构2.N-S图(3)多重分支选择语句2.N-S图(4)循环结构Until型循环结构While型循环结构8.3程序的控制语句结构顺序结构程序分支结构程序循环结构程序2.分支结构程序(1)双重分支选择语句语句格式:If<条件>Then <语句块1>[Else <语句块2>]EndIf假真条件语句块1语句块22.分支结构程序(2)

语句块1语句块2双重分支选择语句条件真假语句格式:If<条件>Then <语句块1>[Else <语句块2>]EndIf2.分支结构程序(3)多重分支选择语句If<条件1>Then [<语句块1>][ElseIf<条件2>Then [<语句块2>]] ...[ElseIf<条件n>Then [<语句块n>]][Else [<语句块>]]EndIf

2.分支结构程序(4)多重分支选择语句If<条件1>Then [<语句块1>][ElseIf<条件2>Then [<语句块2>]] ...[ElseIf<条件n>Then [<语句块n>]][Else [<语句块>]]EndIf例:根据输入的X值,决定输出Y的值。Y=1(x>0)0(x=0)-1(x<0)输入XX>0是否Y=1X=0是否Y=0Y=-1输出YN---S流程图.《数据库应用》课程组200735PublicSub求Y的值()DimxAsDoublex=InputBox("请输入x的值","输入x")Ifx>0ThenDebug.Print"y=1"ElseIfx=0ThenDebug.Print"y=0"ElseDebug.Print"y=-1"EndIfEndSub例:根据输入的X值,决定输出Y的值。PublicSub判断奇偶性()DimstrxAsStringDimxAsIntegerstrx=InputBox("请输入x","提示")x=Val(strx)IfxMod2=0ThenDebug.Print"该数为偶数!"ElseDebug.Print"该数为奇数!"EndIfEndSub例:输入一个数,判别其奇偶性。&&这是一个表示X/2为整数(即X可被2整除)的方法,另一个表示方法为:xMOD2=0;另外,表示X能被2整除的方法还有:INT(X/2)=X/2【例1】输入任意的两个数,将它们按升序输出。方法一:比较大小,按大小顺序输出,,共有多少种输出??(2种)方法二:能否只有一种输出??算法应用举例—分支结构

.《数据库应用》课程组200738算法应用举例结束【例】输入任意的三个数,将它们按升序输出。方法一:思想:比较大小,按大小顺序输出。??共有多少种输出算法应用举例用流程图表示以下算法a,b,c⇒a,c,b⇒c,a,b⇒Fb<cTFa<cTT⇒a,b,cFa<bb,a,c⇒c,b,a⇒b,c,a⇒Fa<cTFc<bT输入任意的三个数,将它们按升序输出。(方法一)输出Y,Z,X输出Y,X,ZX>YFX>ZFT输入X,Y,ZTFY>ZT输出Z,Y,XX>ZTFY>ZFT输出Z,X,Y输出X,Y,Z输出X,Z,Y输入任意的三个数,将它们按升序输出。(方法二:即最终输出时按X,Y,Z的顺序显示)XYZ1.X与Y比较,X中放小数,Y中放大数2.X与Z比较,X中放小数,Z中放大数3.Y与Z比较,Y中放小数,Z中放大数第1步与第2步比较,保证了X中放的是最小数;第3步比较保证了Y中放的是次小数。输入任意的三个数,将它们按升序输出。(P145例8-2)输入三个数X,Y,ZX>YTFX与Y交换X>ZTFX与Z交换Y>ZFTY与Z交换输出X,Y,ZX为最小数Y为次小数如何交换变量对X,Y的值:1:ZX2:XY3:YZXYZ1232.分支结构程序(5)例6-8:从键盘随机输入成绩分数,根据成绩分数来判断该成绩属于优、良、中还是差。规定:90≤成绩≤100为优;80≤成绩<90为良;60≤成绩<80为中;成绩<60为差;其它为非法输入。例4:输入一个百分制成绩到变量x,输出对应的等级A,B,C,D或E。开始结束x>=90y⇒Fx>=80TFx>=70Fx>=60Fy=‘A’y=‘B’y=‘C’y=‘D’y=‘E’TTT思考以下问题:①x>100||x<0?称为异常处理(完备?)②注意条件的书写顺序,一般采用的方法是从一端到另一端的排斥法。

⇒x开始结束x>=90y⇒Fx>=80TFx>=70Fx>=60Fy=‘A’y=‘B’y=‘C’y=‘D’y=‘E’TTTx>100||x<0FTy=‘O’[90,100][80,90)[70,80)[60,70)[0,60)改进后的流程图为:⇒x2.分支结构程序(6)PublicSubmulticase()DimgradeAsIntegergrade=Val(InputBox("请输入成绩"))Ifgrade<=100Andgrade>=90ThenDebug.PrintStr(grade)&"的成绩为:"&"优"'缩格的目的是增加可读性ElseIfgrade<90Andgrade>=80ThenDebug.PrintStr(grade)&"的成绩为:"&"良"ElseIfgrade<80Andgrade>=60ThenDebug.PrintStr(grade)&"的成绩为:"&"中"ElseIfgrade<60Andgrade>0ThenDebug.PrintStr(grade)&"的成绩为:"&"差"ElseDebug.Print"您输入的成绩不对!"EndIfEndSub2.分支结构程序(3)多重分支选择语句SelectCase<测试表达式> [Case<条件表达式1> [<语句块1>]] ... [CaseElse [<语句块>]]EndSelect

2.分支结构程序(4)多重分支选择语句SelectCase<测试表达式> [Case<条件表达式1> [<语句块1>]] ... [CaseElse [<语句块>]]EndSelect例子【例8-4】从键盘随机输入成绩分数,根据成绩分数来判断该成绩属于优、良、中还是差。规定:90≤成绩≤100为优;80≤成绩<90为良;60≤成绩<80为中;成绩<60为差;其他为非法输入。PublicSubmulticase()DimgradeAsIntegergrade=Val(InputBox("请输入成绩"))SelectCasegradeCase90To100MsgBox(Str(grade)&"的成绩为:"&"优")Case80To90MsgBox(Str(grade)&"的成绩为:"&"良")Case60To80MsgBox(Str(grade)&"的成绩为:"&"中")Case0To60MsgBox(Str(grade)&"的成绩为:"&"差")CaseElseMsgBox("您输入的成绩不对!")EndSelectEndSub分支嵌套VBA允许在If…Else…EndIf的<语句块>中使用If…Else…EndIf语句If语句的嵌套【例8-6】随机输入年份,判断该年是否为闰年。判断闰年的条件是:年份如能被4整除但不能被100整除,是闰年;若年份能被400整除,则是闰年。分析:当随意输入一年份时,该年份如不能被4整除,则该年肯定不是闰年。问题是当该年份能被4整除时,有可能是闰年,也可能不是闰年。因为100是4的倍数,400又是100的倍数。因此我们首先判断该年份是否被4整除,再判断是否被100整除,最后判断是否被400整除。PublicSubLeapYear1()DimnyearAsIntegernyear=Val(InputBox("请输入年份"))Ifnyear/4=Int(nyear/4)ThenIfnyear/100=Int(nyear/100)ThenIfnyear/400=Int(nyear/400)ThenDebug.Print"闰年"ElseDebug.Print"非闰年"EndIfElseDebug.Print"闰年"EndIfElseDebug.Print"非闰年"EndIfEndSub课后练习从键盘上输入一个数,若它既能被3又能被5整除则输出该数。.《数据库应用》课程组200757PublicSubt1112()DimaAsIntegera=Val(InputBox("输入a"))IfaMod3=0ThenIfaMod5=0ThenDebug.PrintaElseDebug.Print"重新输入"EndIfElseDebug.Print"重新输入"EndIfEndSubPublicSubt1112()DimaAsIntegera=Val(InputBox("输入a"))IfaMod3=0AndaMod5=0ThenDebug.PrintaElseDebug.Print"重新输入"EndIfEndSub3.循环结构程序DOWHILE循环DOWHILE循环语句格式:DoWhile<条件表达式> <语句块> [ExitDo]Loop3.循环结构程序DOWHILE循环循环语句的使用要注意下列几点:(1)DoWhile和Loop子句要配对使用,Loop的作用是使循环回到循环的开始,即到DoWhile语句。(2)在第一次执行到DoWhile语句时,循环条件必须为真,才能进入循环体。在执行完成循环体语句后,再判断循环条件是否为真,如果为真,则继续循环,直到循环条件为假时,才退出循环语句,执行Loop后面的语句。3.循环结构程序DOWHILE循环循环语句的使用要注意下列几点:(3)循环体中,一定存在一条或若干条语句在改变循环条件。如果循环条件恒为真,则是死循环。(4)要小心改变循环条件,如果不适当的修改循环条件,则循环将不能按预先的设想进行,程序也达不到预期的效果。(5)为增加程序的可读性,使程序清晰易懂,必须使用缩格。(6)关于ExitDo语句使用参见本节后面的内容。3.循环结构程序DOWHILE循环例6-11:求1加到10的累加和S=1+2+3+…+8+9+10PublicSubsum_example()s=0'求累加和的变量

i=1'循环变量赋初值

DoWhilei<=10'循环条件,使用缩格,提高可读性

Debug.Printi'此处输出变量i的值是方便理解循环的过程

s=s+i

'求累加,即循环不变式

Debug.Prints;'输出s的结果,理解每次累加结果的变化

i=i+1

'改变循环变量的值

LoopDebug.Prints'循环体外输出结果EndSub3.循环结构程序DOWHILE循环循环阅读理解循环条件是什么?什么时候进入循环?什么时候退出循环?循环体内如何改变循环条件?循环变量的作用?2023/4/21.63

求1至N之间的所有自然数之和。i=1,s=0i<=Ns=s+ii=i+1Y结束输出sN开始输入N1、前后项的关系2、初始值、循环条件与循环体的关系循环结构的关键初始值、循环条件与循环体是不是唯一的?s=1?i=i+1s=s+ii<N?PublicSubs1()DimnAsInteger

n=Val(InputBox("请输入一个正整数:"))s=0i=1DoWhilei<=ns=s+ii=i+1LoopDebug.Printi;sEndSub.《数据库应用》课程组2007643.循环结构程序DOWHILE循环2023/4/21.65i<=N结束输出sNi=1,s=0s=s+1/ii=i+1Y开始输入N简单,代码我会了!2023/4/21.66开始n=100,m=0Nn<1000?n=n+1n能被3和5整除吗?YYm=m+1输出n结束输出mN

例:输出3位数中所有既能被3整除又能被5整除的数,并统计其个数。循环?分支?回顾解题思路混合结构:循环中包含分支任何分支结束后都要为下一次循环做准备!PublicSubs1()Dimm,nAsIntegerm=0n=100DoWhilen<=999

IfnMod3=0AndnMod5=0Thenm=m+1Debug.PrintnEndIfn=n+1

LoopDebug.PrintmEndSub67.《数据库应用》课程组20073.循环结构程序DOWHILE循环PublicSubs1()Dimm,nAsIntegerm=0n=100DoWhilen<=999

IfInt(n/15)=n/15Thenm=m+1Debug.PrintnEndIfn=n+1

LoopDebug.PrintmEndSub课后练习从键盘上输入一个数,若它既能被3又能被5整除则输出该数,否则,最多允许出错3次。.《数据库应用》课程组200768PublicSubthree()Dima,b,iAsIntegeri=0DoWhilei<3a=Val(InputBox("pleaseinputanumber"))b=aMod15Ifb=0ThenDebug.Printa,"可以被15整除";

ExitDoElsei=i+1Debug.Printa,"不可以被15整除,请重新输入"EndIfLoopEndSub3.循环结构程序For循环For循环语句格式:For<循环变量>=<循环初值>To<循环终值>[Step<步长>] <语句块> [ExitFor]Next求:S=1+2+3+…..+100PublicSubs1for()s=0

Fori=1To100Debug.Printis=s+iDebug.Prints;

NextDebug.PrintsEndSubPublicSubsum_example()s=0

i=1

DoWhile

i<=100

Debug.Printi

s=s+i

Debug.Prints;

i=i+1

LoopDebug.PrintsEndSub3.循环结构程序For循环如果在上述FOR循环体内部再添加i=i+1,则输出结果将如何呢?s=0

Fori=1To100Debug.Printis=s+iDebug.Prints;

NextDebug.Printss=0

Fori=1To100Debug.Printis=s+Ii=i+1Debug.Prints;

NextDebug.Prints结果为5050结果为?25003.循环结构程序For循环2023/4/21.72

求N!i=1,p=1i<=Np=p*ii=i+1Y结束输出pN开始输入N3.循环结构程序For循环

求s=1!+2!+…..N!例6-15:求N!,即求N的阶乘。PublicSub求阶乘()Dimi,n,pAsIntegerp=1n=Val(InputBox("请输入n的值:"))

Fori=1TonStep1'Step1可以省略。

p=p*i'循环不变式,完成累乘。

NextDebug.PrintStr(n)&"的阶乘是:"&Str(p)EndSub3.循环结构程序For循环3.循环结构程序WhileWend循环While<循环条件> [<语句块>]Wend例PublicSubWhileWend()DimiAsIntegerDimsAsDoublei=1

Whilei<=100s=s+(-1)^(i+1)/ii=i+1

WendDebug.Print"s=";sEndSubPublicSubs1()DimiAsIntegerDimsAsDoublei=1

s=1Whilei<=99

s=s+(-1)^i*(1/(i+1))i=i+1WendDebug.Print"s=";sEndSub2023/4/21.76作业1、求1000以内既能被5整除又能被7整除的数之和,并统计这些数的个数。

2、求

3、求1+(1+2)+(1+2+3)+……+(1+2+3+…10)。

提示:在循环中每次计算(1+2+…+n)

4、求

求1000以内既能被5整除又能被7整除的数之和,并统计这些数的个数。PublicSub统计57()Dimn,i,sAsDoublei=0s=0Forn=1To1000IfnMod35=0Theni=i+1s=s+nEndIfNextDebug.Printi,s

EndSub.《数据库应用》课程组200777PublicSub统计57()Dimn,i,sAsStringi=0s=0Forn=35To1000Step35

i=i+1s=s+n

NextDebug.Printi,s

EndSub3.循环结构程序含EXIT循环结构中的ExitDo命令DoWhile<循环条件> <循环体1> If<条件>

ExitDo EndIf <循环体2>LoopDoUntil<条件表达式> <循环体> [ExitDo]Loop3.循环结构程序含EXIT循环的嵌套循环体内又嵌套循环的情况称为多重循环或循环嵌套。处于循环体内的循环称为内循环,处于外层的循环称为外循环。内外循环的层次必须分明,不允许有交叉现象出现。内外循环的循环变量不要同名。在嵌套情况下,ExitDo语句使控制跳到下方离其最近的Loop之后。3.循环结构程序含EXIT求S=1+2+3+…+8+9+100PublicSubexitdo()s=0i=1

DoWhileTrueIfi>100Then

ExitDoEndIfs=s+ii=i+1LoopDebug.Print"s=";sEndSub3.循环结构程序含EXITPublicSubsum_example()s=0

i=1

DoWhile

i<=100

s=s+i

i=i+1

LoopDebug.PrintsEndSubPublicSub求阶乘()Dimi,n,pAsIntegerp=1n=Val(InputBox("请输入n的值:"))DoWhileTrueIfn<=0ThenExitDo

EndIf

Fori=1Tonp=p*i

NextDebug.PrintStr(n)&"的阶乘是:"&Str(p)ExitDoLoopEndSub从键盘上输入一个数n,求p=n!3.循环结构程序含EXITPublicSub求阶乘()Dimi,n,pAsIntegerp=1n=Val(InputBox("请输入n的值:"))

Fori=1TonStep1

p=p*i

Next

Debug.PrintStr(n)&"的阶乘是:"&Str(p)EndSub例如:统计一次捐款活动中捐款人数和捐款总金额OptionCompareDatabaseOptionExplicitPublicSubaa()Dimn,s,xAsIntegern=0s=0DoWhileTruex=Val(InputBox("请输入数据x"))Ifx>0Thens=s+xn=n+1ElseExitDoEndIfLoopDebug.Print"捐款人数为:",nDebug.Print"捐款金额为:",sEndSub3.循环结构程序含EXIT求素数例8-14:输入一个大于1的正整数,判断该数是否是素数。分析:所谓素数又称为质数,是指只能被1和它自身整除的数。要判断x是否能够被3整除使用条件表达式:x/3=int(x/3)。3.循环结构程序含EXIT分析对于输入的数据x,判断它是否为素数的过程,就是修改上面条件表达式的分母,让分母的数值从2变到x-1,如果分母从2到x-1都不能整除x,则x是素数。实际上程序可以改进,只需让分母从2变到int(x/2)。PublicSub求素数()DimflagAsBooleanDimi,xAsIntegerflag=True'设置标志,假定为素数

x=Val(InputBox(“请输入整数数据”))

Fori=2ToInt(x/2)‘通过循环将x除以2到int(x/2)的数,如果有整除发生,则x不是素数,退出循环。Ifx/i=Int(x/i)Then'另一种条件表达式为xmodi=0flag=False

ExitForEndIfNextIfflagThen'if语句为输出结果,'通过判断标志flag来决定x是否为素数。

Debug.PrintStr(x)+"是素数。"ElseDebug.PrintStr(x)+"不是素数。"EndIfEndSub求水仙花数.《数据库应用》课程组200787PublicSubt10()Dima,b,c,nAsIntegerForn=100To999a=Int(n/100)b=Int((nMod100)/10)c=nMod10Ifn=a^3+b^3+c^3ThenDebug.PrintnEndIfNextEndSubPublicSubT10水仙花数()Forx=1To9Fory=0To9Forz=0To9Ifx*100+y*10+z=x^3+y^3+z^3ThenDebug.Printx*100+y*10+zEndIfNextNextNextEndSub2212①2215②2220③2322④2315⑤2318⑥2523⑦以8个数为例说明:

1222152023151825[例]输入10个数,要求输出其中最大的一个数。总结:1、将第一位置上的数分别与后面的数进行比较;2、第①个位置上始终放相对较大数;3、比较一次,向后移一位数;4、重复执行2、3步的操作;5、若有N个数,共进行N-1次比较。【例】输入10个数,要求输出其中最大的一个数。①②③④⑤⑥⑦⑧⑨⑩……??:这里选择的是拿第①个位置上的数来比较。可不可以选择一个小的数,如:0,来进行比较;??:当第①个位置上的数与第②个位置上的数比较时,若第①个位置上的数比第②个位置上的数小,这时第①个位置上的数与第②个位置上的数是交换,还是只用把第②个位置上的数赋值给第①个位置上的数即可;??:若为交换需要多少个变量?若为赋值需要多少个变量?【例】输入10个数,要求输出其中最大的一个数。①②③④⑤⑥⑦⑧⑨⑩……BEGIN输入第一个数给MAXENDN=1N<10N=N+1T输出MAXF输入下一个数给XX>MAXMAX=XTF【例】任意输入10个数,找出并显示其中最大的一个数。PublicSubpx()Dimx,y,iAsIntegeri=0x=Val(InputBox("输入数据"))Debug.PrintxDoWhilei<10y=Val(InputBox("输入数据"))Debug.PrintyIfx<yThenx=yEndIfi=i+1LoopDebug.Print"所输入数据最大值为:"&xEndSub作业1、求2~100之间所有素数的和。2、求在0~999之间的水仙花数,这些数的值等于各位数字的立方和,如153=1^3+5^3+3^33、求s=1+1/2+2/3+3/5+.....前20项之和.《数据库应用》课程组200793PublicSubt9()'2-100间的素数和s为'Dimi,j,sAsIntegerDimflagAsBooleans=0Fori=2To100

flag=True

Forj=2ToInt(i/2)Ifi/j=Int(i/j)Thenflag=FalseExitForEndIf

NextIfflagThenDebug.Printi;s=s+iEndIfNextDebug.PrintDebug.Print"2-100间的素数和s为";s.《数据库应用》课程组200794求s=1+1/2+2/3+3/5+....前20项之和PublicSubt11()Dimm,n,t,i,sAsDoubles=0m=1n=2Fori=1To20s=s+n/mt=nn=n+mm=tNextDebug.PrintsEndSub.《数据库应用》课程组200795

如何采用双重循环编程打印有规则的图形?小专题:3.循环结构程序(14)例8-13:打印如图所示对称三角图形,要求第一行的*在第10列。PublicSub三角状星型输出()Dimi,jAsIntegerFori=1To4'控制输出的行数

Debug.PrintTab(11-i);"*";'确定每行第一个*所在的列数

Forj=1To2*i-2'控制每行除第一个以外的星号的个数

Debug.Print"*";'输出后继的*

NextjDebug.Print'输出另起一行

NextiEndSub

****************.《数据库应用》课程组200798PublicSub三角状星型输出1()Dimi,jAsIntegerFori=1To4

Debug.PrintTab(11-i);

Forj=1To2*i-2

Debug.Print"*";

NextjDebug.Print

NextiEndSubPublicSub三角状星型输出2()Dimi,jAsIntegerFori=1To4Debug.PrintTab(i);"*";Forj=1To2*(4-i)Debug.Print"*";NextjDebug.PrintNextiEndSub

PublicSub三角状星型输出3()Dimi,jAsIntegerFori=1To4

Debug.PrintTab(13-2*i);"*";Forj=1To2*i-2Debug.Print"*";NextjDebug.PrintNextiEndSub

PublicSub三角状星型输出4()Dimi,jAsIntegerFori=1To4

Debug.PrintTab(11);"*";Forj=1To2*i-2Debug.Print"*";NextjDebug.PrintNextiEndSub

PublicSub三角状星型输出5()Dimi,jAsIntegerFori=1To4Debug.PrintTab(11-i);Str(i);Forj=1To2*i-1Debug.PrintStr(i);NextjDebug.PrintNextiEndSub

PublicSub三角状星型输出6()Dimi,jAsIntegerFori=1To4Debug.PrintTab(i);Str(5-i);Forj=1To2*(4-i)+1Debug.PrintStr(5-i);NextjDebug.PrintNextiEndSubPublicSub三角状星型输出7()Dimi,jAsIntegerFori=1To4Debug.PrintTab(i);Chr(64+i);Forj=1To2*(4-i)Debug.PrintChr(64+i);NextjDebug.PrintNextiEndSubPublicSub三角状星型输出8()Dimi,jAsIntegerFori=1To4Debug.PrintTab(13-i);Chr(64+i);Forj=1To2*i-2Debug.PrintChr(64+i);NextjDebug.PrintNextiEndSub8.3数组的应用数组在使用之前,必须加以定义,然后才能使用该数组。数组定义或数组说明语句格式为:DIMENSION

<数组名1>(<数值表达式1>[,<数值表达式2>,...])

[,<数组名2>(<数值表达式1>[,<数值表达式2>,...])...]例子dimensionA(N)dimensionB(n,m)

温馨提示

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

评论

0/150

提交评论