资源预览内容
第1页 / 共97页
第2页 / 共97页
第3页 / 共97页
第4页 / 共97页
第5页 / 共97页
第6页 / 共97页
第7页 / 共97页
第8页 / 共97页
第9页 / 共97页
第10页 / 共97页
亲,该文档总共97页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.,第四章 批量数据的处理,主讲:聂振钢 石家庄铁路职业技术学院 测绘工程系,.,批量数据的处理,4.1 循环结构 4.2 数组 4.3 过程 4.4 高级界面设计 4.5 批量数据的输入和输出 * 4.6 应用举例,.,循环结构,利用循环结构可以实习语句的重复执行 VB提供了计数型循环和条件型循环 For循环语句属于计数型循环 Do循环和While循环属于条件型循环,.,For循环语句(计数型循环语句),For循环用于实现循环次数已知的循环结构 For循环的格式如下:For 循环变量 = 初始值 To 终值 Step 步长 循环体 Exit For 循环体 Next 循环变量 关键词:循环变量、初始值、终值、步长、循环体、Exit For、Next 循环变量,.,For循环语句应用举例,例4.1:求1100的所有整数之和。 例4.1的进一步深入:求1100的所有奇数之和。 例4.1的变化:求1100的所有整数之积。 例4.3:求Pi的近似值,其计算公式为: 练习:用写出求下式的前一百项结果的VB代码,.,For循环语句应用举例(续一),例4.4:房屋贷款的年利率是4.81%,如果一次性贷款15万元,15年后归还,则归还时,应偿还的本息总额是多少? 例4.4的深入:若贷款分15年归还,每年归还本金相同,那么累计还款金额是多少?,.,For循环应用:打印ASCII码表,ASCII码是计算机常用的字符编码 例4.2:打印ASCII码表的程序 码表中:32以前的是非打印字符32对应的是空格09对应的ASCII码范围是4857大写字母对应的ASCII码范围是6590小写字母对应的ASCII码范围是97122,.,For循环应用:猴子吃桃,小猴子在一天摘了若干个桃子,当天吃掉了一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃掉剩余桃子的一半多一个,到第8天早上要吃的时候,只剩下一个桃子了,问:小猴子那天共摘了多少个桃子? 分析:设第n天的桃子数为 ,那么它是前一天桃子数的二分之一减一,即: 或,.,For循环应用:素数判断,素数,也称质数,指一个大于1且只能被1和自身整除的正整数。 判别某数m是否为素数的方法很多,最简单的方法是根据素数的定义来求解,其算法思路是: 用 分别去除m,判断m能否被i整除,只要有一个能整除,m就不是素数,否则m是素数。,.,作业(思考题,下次课提问),用For循环语句实现如下计算:(1)求11000的所有偶数之和;(2)求11000的所有被3除余1的数之积;(3)求(4)求菲波那乞数列的第100项。菲波那乞数列:1,1,2,3,5,8,13,.,While循环(条件型循环),While 条件 循环体 Wend 条件:一般为条件表达式,值为True或False 条件在循环体内应有所变动,否则造成不循环或“死循环”;没有循环体的循环称“空循环”,.,While循环举例,使用While循环语句实现没有重复的学号抽取 使用While循环语句改写连加的例子 使用While循环语句改写连乘的例子 使用While循环语句改写素数判断程序,.,Do循环(条件型循环),先判断型Do循环语句:Do While或Until 条件 语句体 Exit 满足某条件时 语句体Loop 后判断型Do循环语句: Do 语句体 Exit 满足某条件时 语句体Loop While或Until 条件,.,Do循环举例,使用Do循环语句改写连加的例子 使用Do循环语句改写连乘的例子 没有条件的Do语句(使用Exit语句结束) 使用Do循环语句实现没有重复的学号抽取,.,循环的嵌套,在一个循环体内又包含了一个完整循环的循环结构称为循环的嵌套。 注意:内外循环变量不能重名;内外循环不能交叉。 允许:两个并列的循环;正确的嵌套,.,循环嵌套的举例,例4.5:打印九九乘法表 例4.6:百元找零(穷举法举例) 应用举例4.5.1:打印五角星,.,打印五角星,应用举例4.5.1:打印如下列各图所示的五角星,.,打印九九乘法表,例4.5:在窗体上打印出如下图所示的九九乘法表,.,百元找零(穷举法举例),把一张一百元的人民币,兑换成40张1元、2元或5元的零钱,编程计算可以有多少种兑换方法。 分析:设1元、2元、5元的零币分别为x、y、z张,根据题目要求,列出方程为 三个未知数,只有两个个方程,因此解不确定,可以有如下两种方法求解: 三重循环,都是从0到40; 三重循环,内循环利用外循环的条件。,.,作业,1. For循环语句的循环次数应如何计算? 2. For循环与Do循环有何区别?哪种循环至少循环一次?什么叫“死循环”?什么叫“空循环”? 3. 简述For循环语句执行的过程。 4. 简述While循环语句执行的过程。 5. 简述Do循环语句执行的过程。,.,第六次上机总结,1. 求sinx的值:递推的使用以及防止溢出; 2. 打印九九乘法表:重点。 3. 百元买百鸡问题:两个条件;循环次数 4. 打印五角星:分号的使用;打印起始位置的控制;打印行数的控制;五角星个数的控制。,.,数组,数组可以用来处理同一性质的成批数据 固定数组 动态数组 控件数组,.,引例:求15个观测值的均值方差,例4.8:求15个观测值 的均值和方差。 均值:中误差:,.,求15个观测值的均值方差:代码,不用数组的写法 算术平均值和中误差(不用数组) 使用数组的写法 算术平均值和中误差(用数组),.,固定数组,数组的声明: 数组的基本操作:(1)给数组元素赋初值;(2)数组的输入和赋值;(3)数组的输出;(4)求数组最大元素所在的下标;(5)交换数组中各元素;(6)数组元素排序;(7)求数组各元素之和;(8)求二维数组行和、列和、对角线和,.,固定数组的声明,一维数组:Dim 数组名(下标) As 类型其中:数组名的命名规则与变量命名规则相同;下标必须为常数(要使用变量或者表达式,需用动态数组);下标的形式为下界 to 上界,省略下界时,默认为0;类型为任何一种VB的数据类型。 一维数组举例:Dim A(6) As Integer 数组元素下标从0开始,共7个Dim a(1 to 7) As Interger 下标从1开始,共7个Dim x(15) As Double 下表从0开始,共16个,.,固定数组的声明(续),多维数组:Dim 数组名(下标1, 下标2, 下标3, ) As 类型其中:下标个数决定了数组的维数;数组每一维的大小与一维数组的计算方法相同;数组总的大小维每一维大小的乘积。 多维数组举例:Dim Matrix(3, 4) As DoubleDim a(1 to 3, 1 to 4) As IntegerDim b(5, 1 to 9, 1 to 6) As LongDim c(1 to 4, 7, 3 to 9) as Single,.,数组的输入,给数组赋初值For i = 1 to 15 v(i) = 0Next i 数组的输入For i =1 to 15 v(i) = InputBox(“请输入第” ” ”Next i 二维数组的输出:For i = 1 to 15For j = 1 to 15Print Q(i, j);” ”Next jPrint Next i,.,求数组中最大元素及其下标,Dim Max As Integer, iMax As Integer, sum As Integer 数组V赋初值 Max = V(1):iMax =1 For i=2 to 15 If V(i) Max Then Max = V(i) iMax = i End If Next i,.,交换数组中各元素,将数组第1个元素与最后一个交换,第2个元素与倒数第2个元素交换,依此类推,结果如图所示: For i = 1 to 10 2Temp = v(i)v(i) = v(15 i + 1)v(15 i + 1) = TempNext i,.,思考题,1. 如何求一维数组最小元素及其下标?如何求二维数组的最小元素及其下标? 2. 进行数组元素交换操作时,为什么循环的终值是15 2,而不是15?如果要将数组的前一半元素与后一半元素交换,即第1个与第9个交换,第2个与第10个交换,上述代码应如何修改?,.,数组应用举例:40抽12的实现,从40个学号中直接抽出12个互不相同的学号点名:(1) 完全不使用数组的写法;(2) 使用数组进行重复判断的写法;(3) 完全使用数组的写法;,.,控件数组,类型相同且功能相近的控件可以组成控件数组,它们使用相同的名称(Name),通过索引值(下标)来互相区别。 创建控件数组:(1)设计时创建;(2)运行时动态加载;,.,控件数组应用举例,应用举例4.5.7:考试成绩分析统计 应用举例4.5.5:矩阵运算程序*,.,动态数组,事先不知道数组大小时,可以声明该数组为动态数组,在需要时再用ReDim语句指定数组的大小。 创建动态数组的步骤:(1)声明数组为动态数组;(2)在需要时指定数组大小。,.,动态数组应用举例,应用举例4.5.2:观测值均值和中误差的计算 应用举例4.5.3:学号抽点程序的完善,.,求数组各元素之和,一维求和:For i = 1 to 15sum =sum + v(i)Next i 二维求和:For i = 1 to 15For j = 1 to 15sum = sum + Q(i, j)Next jNext i,.,数组元素排序,选择法排序:从n个数中选出最小数,将其与第1个数交换位置;除第1个数外,其余n-1个数再按步骤选出次小数,与第2个数交换位置;重复步骤 n-1次,构成递增序列。,.,数组元素排序(续一),Dim iA%(1 to 10), Min%, n%, i%, j%, temp% iA(1)=8:iA(2)=6: iA(3)=9:iA(4)=3: iA(5)=2:iA(6)=7 n=6 For i = 1 To n - 1 iMin= i For j = i+1 To n If iA(j) iA(iMin) Then iMin = j Next j t= iA(i): iA(i) = iA(iMin) : iA(iMin) = t Next i,.,数组元素排序(续二),冒泡法排序:用第1个数开始,比较相邻两个数,若前一个数比后一个数大,则交换位置,经过一轮比较后,最小一个数已经冒出;从第2个数起,仿照步骤 ,则比较后,次小的数冒出到第2个位置;重复步骤n-1次,最后工构成递增序列。,.,数组元素排序(续三),冒泡法排序代码:For i = 1 To n-1 进行n-1轮比较 For j = i+1 To n 从ni个元素进行两两比较 If iA(j) iA(i) Then 若次序不对,则交换位置 t = iA(j) : iA(j) = iA(i) : iA(i) = t End If Next j 出内循环,一轮排序结束,最小数已冒到最上面 Next i,.,作业,1. 如何声明一个一维固定数组?如何声明一个二维固定数组?如何声明相应的动态数组? 2. 如何根据数组的声明语句计算数组的大小?如何通过LBound()函数和UBound()函数获得数组的大小? 3. 什么是控件数组?如何创建控件数组(分别说明两种方法)?,.,第七次上机总结(一),均值和中误差的计算程序 , 算例:对某个边长使用钢尺观测了12次,观测得到的结果分别为:23.106,23.107,23.114,23.099,23.100,23.112,23.095,23.102,23.109,23.110,23.102,23.097 使用编写的程序计算上述观测结果的均值和中误差。,.,第七次上机总结(二),彩票抽奖程序 (1)抽出特等奖1个,要求由8位数字组成,并用适当的方式显示
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号