资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
VB.NET程序设计,任务四 应用过程、数组、循环拓展功能,学习目标,1、掌握循环结构的使用2、掌握数组定义和应用3、掌握过程定义和调用4、了解过程调用中的参数传递,循环语句,程序的另一种结构是循环结构 循环结构作用是重复执行一段程序 循环是有条件的、次数是有限的 VB的循环语句:ForNext、Do WhileLoop For EachNext,循环语句ForNext循环,ForNext循环一般应用于循环次数已知的场合 For = 初值 To 终值 Step 步长 语句块(循环体) Next 循环变量 工作原理,Step缺省为 1,循环语句ForNext循环,例 求1+3+5+7+99 Dim Sum As Integer, I As Integer Sum = 0 保存累加和,先清零 For I = 1 To 99 Step 2 Sum = Sum + I Next I Msgbox(1+3+5+99= & Sum),本例的特点是数据项之间相差2, 即Step的值为2,思考:例中当输出出现时,I 的值是多少?如果省略Step 2,程序的结果如何?For语句能不能改写成For I=99 To 1 Step -2 ? Msgbox()的作用?,循环语句ForNext循环,例 求斐波那契级数的前20项 Dim A, B, I, T As Integer A = 1 : B = 1 生成级数第一、二项 Debug.write (A & “ ”) Debug.write (B & “ ”) For I = 3 To 20 T = A + B 产生级数新的一项 A = B 让B成为下一组的A B = T 原来A+B的值成为下一组的B Debug.write (B & “ ”) If I Mod 6 = 0 Then Debug.writeline(“”) Next I,每6个数一行,斐波那契级数:第一、二项为1第三项开始,每一项 的值是前两项值之和,循环语句DoLoop循环,1. 当型循环,先判断后执行,先执行后判断,特点:条件表达式成立执行循环体内容,循环语句DoLoop循环,例 Sum=1+2+3+N 求Sum不超过10000的最大整数值和数据项数N Dim Sum, N As Integer N = 0 开始时项数为0 Sum = 0 保存累加值的变量Sum清零 Do While Sum = 10000 N = N + 1 Sum = Sum + N Loop Sum = Sum - N N = N - 1 Msgbox( Sum=“ & Sum & “N=“ & N),当Sum的值超出10000时循环才终止。因此Sum值要减去多加的一个N;而在循环过程中,N也被多加了一个1,需要减去。,循环语句DoLoop循环,2. 直到型循环,特点:条件表达式不成立执行循环体内容,循环语句DoLoop循环,例 Sum=1+2+3+N 求Sum不超过10000的最大整数值和数据项数N Dim Sum, N As Integer N = 0 开始时项数为0 Sum = 0 保存累加值的变量Sum清零 Do While Sum = 10000 N = N + 1 Sum = Sum + N Loop Sum = Sum - N N = N - 1 Msgbox( Sum=“ & Sum & “N=“ & N),当Sum的值超出10000时循环才终止。因此Sum值要减去多加的一个N;而在循环过程中,N也被多加了一个1,需要减去。,实训,求:1+2+3+100的值,循环语句两重循环,例 输出乘法口诀表Dim I As Integer, J As Integer, M As Integer For I = 1 To 9 For J = 1 To I M = I * J Debug.write (J & * & I & = & M & “) Next J Debug.writeline(“”) 打印换行 Next I,循环语句两重循环,例 计算 Dim I As Integer, J As Integer Dim F As Long 阶乘值用长整型保存 Dim r As Double For I = 0 To 10 F = 1 每个阶乘值先置1以便累乘 For J = 1 To I F = F * J Next J r = r + 1 / F Next I Msgbox( “r(e)=“ & r),本循环计算F= I!,循环语句多重循环,多重循环:循环次数在两重以上的循环结构 例 计算将1角钱兑换成零钱有多少种方案 Dim I, J, K, S As Integer S = 0 统计兑换1角钱的方案数 For I = 0 To 10 1分钱个数 For J = 0 To 5 2分钱个数 For K = 0 To 2 5分钱个数 If 1*I +2*J +5*K = 10 Then S = S + 1 Next K Next J Next I Msgbox( 1角钱兑换成零钱的方案有 & S & 种”),1角钱以下的硬币有1分、2分和5分种1角钱全换成1分需10个1角钱全换成2分需5个1角钱全换成5分需2个,数组数组的概念,数组用于保存大量的、逻辑上有联系的数据数组的特点:数据中的元素在类型上是一致的 数组元素在内存空间上是连续存放的 数组元素的引用可通过下标进行 数组在使用前必须要定义(声明),数组一维数组的定义和使用,1. 数组的定义(声明) Dim 数组名(下标) As 数据类型 或 Dim 数组名() As 数据类型 = 值 例如: Dim Data(40) As Integer Dim Data() As Integer = 1,2,3,4定义数组可以使用类型符 例, Dim Data%(40) 数组的下标全部从 0 开始 例,Dim Salary(1000) As Decimal 通过数组名和下标可引用数组中的元素 例, Data(25)=95 Debug.write ( Data(25),数组一维数组的定义和使用,说明-1:数组定义后的初值:数值型数组各元素为0,逻辑型数组各元素为False,字符串数组各元素为空串(“)。可同时声明几个数组,用逗号分隔,例如 Dim A%(100), B(800) As Long 定义数组时,下标的上界值只能是常数或常数表达式。下例的定义是错误的 N=100 : Dim Data(N) As Integer 定义时,数组的上界值不得超出长整型范围。,数组一维数组的定义和使用,说明-2:数组的元素个数称为数组长度。GetUpperBound是数组的一个方法,它可返回数组某个维的上界值.例如Dim Matrix1(,) As Integer = 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6 Dim Matrix2(3, 2) As Integer Dim Matrix3(,) As Integer,数组一维数组的定义和使用,2. 数组元素的使用 通过数组名和下标例 Dim Data(5) As Integer Dim Sum, I As Integer For I = 1 To 5 Data(I) = InputBox(输入第 & I & 个数据) Sum = Sum + Data(I) Next I Debug.writeline( Sum),Inputbox函数运行的窗口,数组一维数组的定义和使用,说明:数组实际上是用一个变量名字代表一组数,这组数是连续排列的,用顺序号作为下标区分各个数。 数组下标是一个整型量。数组常见的错误: 下标出界,Dim Test(3) As IntegerTest(1)=4Test(2)=3Test(3)=2Test(4)超出定义,数组一维数组应用例题,例 输出斐波那契级数的前20项 Dim F(20) As Integer, I As Integer F(1) = 1 : F(2) = 1 第一、第二项为1 For I = 3 To 20 第三项起每项为前二项之和 F(I) = F(I - 2) + F(I - 1) Next I For I = 1 To 20 在窗体上输出 Debug.write (F(I) & ” , ”) If I Mod 5 = 0 Then Debug.writeline(“”) Next I,数组一维数组应用例题,例 产生100个不重复的3位随机整数, 并按每行7列的格式输出 Dim Data(100) As Integer, I%, J% Randomize() 设置随机化种子,保证每组数据不重复 For I = 1 To 100 循环产生100个数据 Data(I) = New System.Random().Next(100,1000) For J = 1 To I - 1 与已经产生的数据比较 If Data(I) = Data(J) Then 数据已存在则舍弃,重新产生 I = I - 1 Exit For 提前退出数据比较的循环 End If Next J Next I,转下页,数组一维数组应用例题,I = 1 : J = 1 Do While I 100 Then Exit For Debug.write (Data(I) & “ “) I = I + 1 Next J Debug.Writeline(“”) 打印换行 Loop,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号