ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:133.84KB ,
资源ID:8690749      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8690749.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第7章 部分教案二.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第7章 部分教案二.doc

1、 本节课我们将通过实例来加强对For循环语句的使用。 例1:求Fibonacci数列的前30个数。这个数列有如下特点:前两个数为1,从第三个数开始,其值是前两个数的和,即: F1=1 (n=1) F2=1 (n=2) Fn= Fn-1+ Fn-2 (n≥3) 程序如下: Private Sub Command1_Click() Dim i As Integer Dim f1 As Long, f2 As Long, fn As Long f1 = 1 f2 = 1 Print f1, Print f2, For i = 3 To 3

2、0 ' f1,f2已知,从第三个数开始计算 fn = f1 + f2 f1 = f2 f2 = fn ' 更改f1,f2的值 Print fn, If i Mod 4 = 0 Then Print ' 打印4个数后换行打印 Next End Sub 例2:利用随机数函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面 1、设计界面 在窗体上添加三个标签、三个文本框和一个命令按钮。初始界面如图7-3所示。 图7-3-1 初始界面

3、 图7-3-2 设置属性后的界面 2、设置属性 表7-3 属性设置 对象 属性 属性值 Label1 Caption 投币总次数 Label2 Caption 正面次数 Label3 Caption 反面次数 Text1 Text   Text2 Text   Text3 Text   Command1 Caption 开始 窗体中各个控件的属性设置按照表7-3进行设置,属性设置后的界面如图7-3-3所示。 3、程序代码 Private Sub Command1_Click() Randomize n=CInt

4、Text1.Text) n1=0 n2=0 For i=1 To n r=Int(Rnd*2) If r=1 Then n1=n1+1 Else n2=n2+1 End If Next Text2.Text=n1 Text3.Text=n2 End Sub 4、程序说明 在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数。随机产生0或1的整数的表达式为:Int(Rnd*2)。 5、运行程序 运行程序,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入

5、的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。运行界面如上图所示。 例3:小猴吃桃:有一堆桃,小猴当天吃了一半多一个。第二天吃了剩下的桃子的一半多一个。以后每天都是吃剩下的桃子的一半多一个。到第10天小猴要吃时只剩下一个了。问原来那堆桃有多少个? 程序代码如下: Private Sub Form_Click() Dim n%,i% n=1 For i=9 to 1 step -1 n=(n+1)*2 Next i Print “peachs of the first day are:”;

6、n (二)复习 根据步长型循环语句FOR…NEXT的格式和功能填空 1、在 FOR- NEXT 循环语句中,对于循环变量要指定它的________、_________及步长,但步长在增量为1时,可以省略。 2、“NEXT I”意思是___________________. 3、在NEXT语句中,_____________可以省略, 但如果出现, 要与FOR语句中的____________一致。 4、终止 FOR- NEXT 循环语句的条件是 _______________。 5、计算循环次数的公式是__________________________ (三)新课讲授

7、本节课我们将通过实例来学习对For双重循环语句的使用。 一、引入:在屏幕上输出如下右图所示内容 该程序实现一行5个"*",一共4行。用循环语句实现 for i=1 to 4 print "*****" next 其中对于print "*****"我们也可以循环进行输出 for i=1 to 5 print "*" next 将两者相结合 For i = 1 To 4 For j = 1 To 5 Print "*"; Next j Print Next i 即可得到完整代码 二、循环嵌套也称为多重循环,即在一个循环结构中包含另外一个循环,这种结构

8、可以实现很多复杂的算法。 语法: for i=初值 to 终值  for j=初值 to 终值   循环体  next j next i 其中i为外循环控件变量,j为内循环控制变量,这两个变量不可用同一个变量名 双重循环的次数是:内循环次数×外循环次数 三:图形专题 简单文本图形的程序设计 (用for和for双重循环嵌套语句) 输出一个文本图形需要考虑4点: (1)图形有几行(一般由外循环控制) (2)每行首字符位置(一般由tab( )函数控制)   tab(n)函数:输出时表达式定位于第n列 (3)每行由几个字符(一般由内循环控制) (4)用什么字符组成图形

9、 下面举例说明: 1、 打印如下图形 Private Sub Form_click() ‘图2 Dim i%, j% For i = 5 To 1 Step -1 For j = 1 To i Print "*"; Next j Print Next i End Sub Private Sub Form_click() ‘图1 Dim i%, j% For i = 1 To 5 For j = 1 To i Print "*"; Next j Print Next i End Sub * ** *** **** ***** 图1

10、 ***** **** *** Private Sub Form_click() ‘图4 Dim i%, j% For i = 5 To 1 Step -1 Print Tab(6 - i); For j = 1 To i Print "*"; Next j Print Next i End Sub Private Sub Form_click() ‘图3 Dim i%, j% For i = 1 To 5 Print Tab(6 - i); For j = 1 To i Print "*

11、"; Next j Print Next i End Sub ** * 图2 * ** *** **** ***** 图3 ***** **** *** ** * 图4 For i = 1 To 5 ‘图5 Print Tab(6 - i); For j = 1 To 2 * i - 1 Print "*"; Next j Print Next i 2、 打印如下等腰三角形,如图5示 * ***

12、 ***** ******* ********* For i = -2 To 2 ‘图6 Print Tab(Abs(i) + 1); For j = Abs(i) - 2 To 2 - Abs(i) Print "*"; Next j Print Next i 3、 打印如下菱形,如下图6示 * *** ***** *** * For i = 1 To 5 ‘图7 Print Tab(6 * 3 - i *

13、3); For j = 1 To i Print j; Next j Print Next i 4、 若将“*”改为数字,如图7示: 1 12 123 1234 12345 提示:打印数值类型数据,数字前有 个符号位,数字后面有一个空格。 今天我们来介绍循环控制语句的第二种――当循环控制结构。 (三)新课讲授 循环分为两大类:一类是循环次数已知,一类是循环次数未知的情况。前者我们可以用for...next语句实现,但对于后者呢?我们可以使用while当型循环。事先不能确定需要执行多少次循环,只有当条件满足时才结束循环,称为“当型循环”。 While循环

14、结构用While…Wend语句来实现,语句格式如下: While <条件表达式> [<语句块>] Wend 语句说明: (1)“条件表达式”可以是关系表达式、逻辑表达式或数值表达式。如果是数值表达式,值为0被作为False,非零值则为True。 (2)语句的执行过程是:先计算条件表达式的值,若为True,则执行循环中的语句块,遇到Wend语句时返回While语句继续判断条件表达式的值,若仍为真,则继续执行语句块,重复上述过程直到条件表达式的值为False,则退出循环结构,执行Wend语句的后续语句。 循环环执行过程如图7-4。 (3)如果条件一开始就不成立,则语句

15、块一次也不会被执行。 表达式 语句块 F T 图7-4 例如,求1到100的和。 (用FOR循环) Private Sub Command1_Click() Dim i As Integer, sum As Integer sum = 0 ‘ 给变量sum赋初值0 For i = 1 To 100 sum = sum + i ‘ 累加 Next i Print sum End Sub 也可用While循环语句改写上例,程序代码如下: Private Sub Comm

16、and1_Click() Dim i As Integer, sum As Integer sum = 0 :i=1 While i<=100 sum = sum + i i=i+1 Wend Print sum End Sub 下面举例说明: 例1:我国有13亿人口,以年平均增长率0.5%计算,多少年后我国人口就会增长到15亿。 程序代码如下: Private Sub Form_Click() Dim p!,n% p=13 n=0 While p<15 p=p*1.005 n=n+1 Wend Print n;”年后人口将达到:”

17、p;”亿” End Sub Do循环结构的形式较灵活,可分为以下几种: (1)先判断条件的Do…Loop循环 格式一: Do While <条件表达式> [<语句块>] Loop 语句执行过程:先计算条件表达式的值,若为True,则执行语句块中的语句;若为False则退出循环结构。循环环执行过程如图7-5-1。 格式二: Do Until <条件表达式> [<语句块>] Loop 语句执行过程和格式一基本相同,唯一不同的是,它在条件表达式为False时重复执行语句块,直到条件为True时退出循环结构。循环环执行过程如图7-5-2。 表达式

18、 语句块 T F 表达式 语句块 T F  图7-5-1 图7-5-2 例1:用Do…Loop循环结构实现求和sum=1+2+3+…+100。 编写程序代码。 解法一:采用当型循环Do While…Loop Private Sub Command1_Click() Dim i As Integer,sum As Integer i=1 '计数器初值置为1 sum=0 '累加器初值置为0 Do While i<=1

19、00 '当型循环 sum=sum+i i=i+1 '每次循环变量加1 Loop Label2.Caption=Str(sum) End Sub 解法二:采用直到型循环Do Until…Loop Private Sub Command1_Click() Dim i As Integer,sum As Integer i=1 '计数器初值置为1 sum=0 '累加器初值置为0 Do Until i>100 sum=sum+i i=i+1 Loop Label2.Caption=Str(sum) En

20、d Sub 例2:将10000元存入银行,按3.25%的利率,试问多长时间就会连本带利翻一番。 程序代码如下: Private Sub Form_Click() Dim year%,money!,original!,interest! original=10000 money=original Interest=3.25/100 Do While money<2*original year=year+1 money=money+interest*money ’ 累计每过一年的连本带利的金额 Loop Print “In”;year;”

21、years,you’ll have”;money End Sub 请同学们使用格式二改写上述程序。 (2)后判断条件的Do…Loop循环 格式三: Do [<语句块>] Loop While <条件表达式> 语句执行过程:首先执行语句块中语句,然后计算条件表达式,如果条件表达式值为True,则继续执行语句块,否则退出循环结构。循环体至少执行一次。循环环执行过程如图7-5-3。 格式四: Do [<语句块>] Loop Until <条件表达式> 格式四的执行过程和格式三基本一样,也是先执行后判断。唯一不同的是,它在条件表达式值为假时重复执行语句块,直到

22、条件表达式值为真时退出循环结构。循环环执行过程如图7-5-4。 语句块 表达式 T F 语句块 表达式 F T 图7-5-3 图7-5-4 例3:用辗转相除法求两正整数m,n的最大公约数。 求最大公约数的算法如下: (1)对于已知两数m,n,使得m>n; (2)m除以n得余数r; (3)令m ← n,n ← r; (4)若r≠0,转到(2)继续执行,直到r=0求得最大公约数为m,循环结束。 程序代码如

23、下: Private Sub Form_Click() Dim m%,n% m = InputBox("输入m") n = InputBox("输入n") If m< n Then ’ 若m小于n,则交换两数,使得m>n t=m : m=n : n=t End If m1=m :n1=n Do r = m Mod n :m = n :n = r Loop while ( r <>0) Print m1; ","; n1; "的最大公约数为"; m End Sub (3)无条件循环 格式:

24、 Do <语句块> Loop 重复执行循环体,循环不会停止,除非在循环体中有Exit Do语句或在执行时按下Ctrl+Break键。例如: Private Sub Form_Click() s=0 i=0 Do i=i+1 s=s+i If s>=3000 Then Exit Do ’ 当s≥3000,执行Exit Do语句退出循环 Loop Print i,s End Sub  例4:输入一个整数,对其进行因数分解。如:126=2*3*3*7。 程序代码如下: Private Sub Form_Click() Dim x%,m

25、flag as Boolean x= val(InputBox(“输入一个整数”)) m=2 flag=True Do While m<=x Do While x mod m=0 If flag Then Print x;”=”;m; Flag=False Else Print “*”;m; End If X=x\m Loop M=m+1 Loop End Sub 例1:编程输出九九乘法表。 程序代码如下: Private Sub Form_Click() For i=1 to

26、 9 For j=1 to 9 Print tab((j-1)*14) ;i;”×”;j;”=”;i*j; Next j Print Next i End Sub 例2:输出3-100之间的素数。 素数,就是一个大于2且只能被1和本身整除的整数。判断某数m是否为素数的算法是:对于m从i=2,3,…,m-1判别m能否被i整除,只要有一个能整除,m就不是素数,否则m是素数。 程序代码如下: Private Sub Form_Click() Dim m%,i%,k%,Flag As Boolean For m=3 To 100 Flag=True

27、 For i=2 To m-1 ‘ 内循环判断m是否为素数 If (m mod i)=0 Then Flag=False Next i If Flag Then k = k + 1 If (k Mod 10) = 0 Then Print m Else Print m; ’ 每行显示10个 End If Next m End Sub 实际上m不可能被大于√m的数整除,因此为减少循环次数,可将内循环语句改为:

28、 For i=2 To int(sqr(m)) 循环次数就会大大减少。 例3:百鸡问题:已知公鸡每只3元,母鸡每只5元,小鸡每三只1元,现有100元,要求买100只鸡,每种鸡至少买一只且必须买整只鸡,问有多少种方法。 方法一(用三重循环) 枚举范围:公鸡x 1~98 母鸡y 1~98 小鸡z 1~98 测试条件:3x+5y+z\3=100 And x+y+z=100 方法二(用两重循环) 枚举范围:公鸡x 1~31 母鸡y 1~18 小鸡z 100-x-y 测试条件:3x+5y+z

29、\3=100 思考:如何用单层循环求解? 程序如下: Private Sub Form_Click() ‘第二种方法 Dim x%, y%, z% For x = 1 To 31 For y = 1 To 18 z = 100 - x - y If 3 * x + 5 * y + z / 3 = 100 Then Print x, y, z End If Next y Next x End Sub 例4:输入20个数,从中找出最大值和最小值。 提示:以第一个数作为最大(

30、小)值,然后将剩余的数依次与最大(小)值比较,每当最大(小)值小于(大于)被比较的数时,就修改最大(小)值。 程序如下: Dim max%,min%,a%,I% a=InputBox(“输入a”) max=a:min=a For I=2 to 20 a=InputBox(“输入a”) If max < a Then max = a If min > a Then min = a Next I Print “max=“;max,

31、min=“;min 一、素数的概念 素数:只能被1和本身整除的正整数是素数。例如,2、3、5、7、11、13、17是素数。 二、判断一个数是否为素数 用这个数除以2到该数间的每个数(不包括该数)。一旦该数能被其中的一个数整除,则该数不是素数;若在2到该数之间(包括2,不包括该数)找不到任何一个数将该数除尽,则该数是素数。算法如下: Private Sub Form_Click() Dim n As Integer n = InputBox("请输入一个正整数") k = Int(Sqr(n)) For i = 2 To k

32、 If n Mod i = 0 Then Exit For Next i If i = k + 1 Then MsgBox Str(n) & "是素数", , "结果" Else MsgBox Str(n) & "不是素数", , "结果" End If End Sub 三、寻找某个范围内的素数 将上述判断素数的方法放在一个For循环中,由For循环来控制寻找范围。算法如下: Private Sub Form_Click() '――――输出200到300间所有的素数,――――― '

33、――――并统计共有多少个素数。―――――――― Dim n As Integer For n = 200 To 300 k = Int(Sqr(n)) For i = 2 To k If n Mod i = 0 Then Exit For Next i If i = k + 1 Then Counter = Counter + 1 Print n; "是素数" End If Next n Print "200到300间共有"; Counter; "个素数!" End Sub 11

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服