任务四应用过程数组循环拓展功能.ppt
《任务四应用过程数组循环拓展功能.ppt》由会员分享,可在线阅读,更多相关《任务四应用过程数组循环拓展功能.ppt(47页珍藏版)》请在三一文库上搜索。
1、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
2、 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 :
3、 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. 当型循环,先判断后执行,先执行后判断,特点:条件表达式成立执行循环体内容,循环
4、语句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. 直到型循环,特点:
5、条件表达式不成立执行循环体内容,循环语句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+
6、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 =
7、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
8、 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
9、 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 定义数组时,下标的上界值只能是常数或常数表
10、达式。下例的定义是错误的 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
11、(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 Integer Test(1)=4 Test(2)=3 Test(3)=2 Test(
12、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列的格式输出
13、 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
14、 100 Then Exit For Debug.write (Data(I) & “ “) I = I + 1 Next J Debug.Writeline(“”) 打印换行 Loop,接 上 页,For I = 1 To 100 Debug.write (Data(I) & “ “) If I Mod 7 = 0 Then Debug.writeline(“”) End If Next I,数组一维数组应用例题,例 统计成绩分布 Dim N(10) As Integer, I As Integer, X As Integer Const m = 10 For I = 1 To m X =
15、InputBox(“请输入“ + Str(I) + “个学生的成绩“) X = Int(X / 10) 也可写成X=X10 N(X) = N(X) + 1 Next I Debug.writeline (100 & “-“ & 100 & N(10) For I = 9 To 0 Step -1 Debug.writeline( 10 * I & “-“ & (10 * I + 9) & N(I) Next I,用For EachNext循环遍历数组,例1 使用For语句遍历数组 Dim pins As Integer() = 9,3,7,2 For index As Integer = 0
16、To pins.Length 1 Dim pin As integer =pins(index) Debug.writeline(pin) Next 例2 使用For Each语句遍历数组 Dim pins As Integer() = 9,3,7,2 For Each pin As Integer In pins Debug.writeline(pin) Next 解读: For Each语句声明了一个循环变量pin,它自动依次获得数组中每个元素的值(In是一个关键字)。使用For Each语句来遍历数组更能高效处理数组。,数组排序问题(选学),1. 选择法排序(N个数据升序) 先假设第1个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 任务 应用 过程 数组 循环 拓展 功能
链接地址:https://www.31doc.com/p-2590785.html