收藏 分销(赏)

Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt

上传人:可**** 文档编号:7902934 上传时间:2025-01-25 格式:PPT 页数:79 大小:1,022KB
下载 相关 举报
Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt_第1页
第1页 / 共79页
Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt_第2页
第2页 / 共79页
Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt_第3页
第3页 / 共79页
Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt_第4页
第4页 / 共79页
Visual Basic 程序设计基础:第三章 结构化程序设计与数组.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、*,*,单击此处编辑母版标题样式,gejinhuan,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三章 结构化程序设计与数组,2,3.1,3,种基本的控制结构,学习了什么是表达式,,那么如何对表达式进行有效地组织呢?,必须依靠三大基本结构:,顺序结构,选择结构,循环结构,利用这三种结构相互嵌套可以构造出各种复杂程序!,嵌套结构(结构中包含结构),2025/1/25 周六,3,gejinhuan,语句一,语句二,表达式,语句一,语句二,表达式,语句,真,假,真,假,顺序结构,选择结构,循环结构,三种基本结构流程图,4,顺序结构,赋值语句,输入输出语句,选择结构,条件语句,双分支结

2、构,多分支结构,单分支结构,情况语句,循环结构,ForNext,Do WhileLoop,DoLoop,Do Loop While,Do UntilLoop,Do Loop Until,WhileWend,5,赋值语句:,是程序中最常用的语句,其功能是先计算出赋值号右边表达式的值,(,必要时转换为相同类型数据,),,再将值赋给赋值号左边的变量。,赋值语句的形式为:,变量名表达式,或,对象名,.,属性名表达式,注意,赋值语句的阅读顺序,:,从右至左,x=100*8,Text1.Text=,“,welcome to,”,&,“,中国,”,顺序结构,赋值语句,2025/1/25 周六,6,gejin

3、huan,赋值语句,说明,:,(1),如果语句中有表达式,则表达式一定要放在赋值号,“,=,”,右边。,(2),赋值号两边为数值类型时,表达式的值不得超过数值变量的,表示范围,且强制转换右边的类型,与左边保持一致。,(3),任何类型表达式都可以向字符串变量赋值。,(4),数值和逻辑类型可以相互转换,,逻辑量,True,转为数值,-1,,,False,转为,0,,数值量,0,转换为,False,,非,0,转换为,True,。,(5),赋值号,“,=,”,与等号,“,=,”,是有本质区别的。,7,顺序结构,赋值语句,赋值语句的应用示例:,变量自增,x=5,x=x+1,(2),变量交换,假设,a=5

4、,b=8,如何实现变量值的交换,,即交换后,a=8,b=5,。,实例,2-4,8,顺序结构,输入输出语句,输入输出语句是人机交互的桥梁,程序通过输入语句得到用户的输入数据,用户通过输出语句获得反馈。,1,、输入语句,InputBox,函数,函数语法格式:,=InputBox(,),9,Const PI=3.14,Private Sub Form_Click(),Dim r As Integer,r=InputBox(,请输入圆的半径:,求圆的面积,10),Print PI*r*r,End Sub,提示信息,对话框标题,默认值,10,InputBox,函数注意事项,InputBox(),函数的,

5、返回值,为,String,类型。,第二个参数可以不加,但是逗号不能省。,11,1,、输入语句,文本框控件,利用文本框控件也可以实现输入语句的功能,要想得到数值型数据,可以用,Val,函数进行类型转换:,例如:,Dim Temp As Integer,Temp=Val(Text1.Text),Private Sub Form_Click(),Dim r As Integer,r=Val(Text1.Text),Print r,End Sub,12,2,、输出语句,Print,方法,.Print,|;,功能:在窗体上,(,对象是窗体,),打印内容,内容的默认位置在窗体的左上角。,Private S

6、ub Form_Click(),Print,温州医学院,End Sub,Private Sub Form_Click(),Print,温州医学院,Print,欢迎你!,End Sub,Private Sub Form_Click(),Print,温州医学院,Print,Print,欢迎你!,End Sub,13,注意:无“,;”,或“,”,表示输出后下一个输出位置,换行,Private Sub Form_Click(),Print,温州医学院,;,Print,欢迎你!,End Sub,(,紧凑格式,),Private Sub Form_Click(),Print,温州医学院,;,欢迎你!,En

7、d Sub,Private Sub Form_Click(),Print,温州医学院,Print,欢迎你!,End Sub,(,宽松格式,),Private Sub Form_Click(),Print,温州医学院,欢迎你!,End Sub,注意:符号必须是,英文输入状态!,14,如何精确地控制打印内容的格式?,用,Spc(n),、,Tab(n),两个内部函数可以满足要求,Spc(n),:输出,n,个空格,Tab(n),:在第,n,列开始输出,Private Sub Form_Click(),Print 1234567890123456789,Print good;Spc(3);afterno

8、on,Print Tab(8);good;Tab(16);afternoon,End Sub,15,特别说明,:刚才所演示的都是打印字符串,,当打印的是数值时,会有明显的不同。,Private Sub Form_Click(),Print 1234567890123456789,Print 1000,Print 1000,Print,Trim,(1000),Print-1000,End Sub,如果打印的是数值类型,则会自动在前后加上空格,称为,前导空格,和,后置空格,。,16,MsgBox,函数的使用方法:,=MsgBox(,,,,对话框标题,),2,、输出语句,MsgBox,函数,Priv

9、ate Sub Form_Click(),Dim I as Integer,length as Integer,width as Integer,Dim s as Long,length=,InputBox,(,请输入长方形的长,:,求长方形的面积,10),width=,InputBox,(,请输入长方形的宽:,求长方形的面积,10),s=length*width,i=,MsgBox(,长方形的长:,&length&,长方形的宽:,&width&,长方形的面积:,&s,0+64+0,计算的最终结果,),End Sub,17,对话框类型参数指定对话框中出现的按钮和图标样式,可由多项值组成:,+,

10、表,1,按钮样式,值,Visual Basic,常量,按钮样式,0,vbOKOnly,“,确定”按钮,1,vbOKCancle,“,确定”和“取消”按钮,2,vbAbortRetryIgnore,“,终止”、“重试”和“忽略”按钮,3,vbYesNoCancle,“,是”、“否”和“取消”按钮,4,vbYesNo,“,是”和“否”按钮,5,vbRetryCancle,“,重试”和“取消”按钮,2,、输出语句,MsgBox,函数,值,Visual Basic,常量,按钮样式,0,vbOKOnly,“,确定”按钮,1,vbOKCancle,“,确定”和“取消”按钮,2,vbAbortRetryIg

11、nore,“,终止”、“重试”和“忽略”按钮,3,vbYesNoCancle,“,是”、“否”和“取消”按钮,4,vbYesNo,“,是”和“否”按钮,5,vbRetryCancle,“,重试”和“取消”按钮,18,值,Visual Basic,常量,图标样式,16,VbCritical,停止图标,32,VbQuestion,问号(?)图标,48,vbExclamation,感叹号(!)图标,64,vbInformation,消息图标,表,2,图标样式,表,3,默认按钮,值,Visual Basic,常量,说 明,0,vbDefaultButton1,第一按钮为默认按钮,256,vbDefau

12、ltButton2,第二按钮为默认按钮,512,vbDefaultButton3,第三按钮为默认按钮,2,、输出语句,MsgBox,函数和,MsgBox,过程,19,表,4 MsgBox,函数返回值,返回值,按 钮,返回值,按 钮,1,“,确定”按钮,5,“,忽略”按钮,2,“,取消”按钮,6,“,是”按钮,3,“,终止”按钮,7,“,否”按钮,4,“,重试”按钮,2,、输出语句,MsgBox,函数和,MsgBox,过程,20,3.2,选择结构,根据所给定的条件成立与否,决定从各种实际可能的不同分支中选择某一分支的相应操作。,VB,提供用来实现选择结构的语句,主要有,IF,和,Select,。

13、,21,IF,结构,(,条件语句,),条件语句之一:单分支结构,例:,If xy Then,t=x,x=y,y=t,End If,或,If xy Then t=x:x=y:y=t,If,Then,End If,If Then ,或,行,IF,语句,块,IF,语句,22,条件语句之二:双分支结构,或,If,Then,Else,End If,If Then Else ,行,IF,语句,块,IF,语句,23,Private Sub Form_Click(),Dim Max as single,sFirst as single,sSecond as single,sFirst=InputBox(,请输

14、入第一个数:,sFirst),sSecond=InputBox(,请输入第二个数:,sSecond),If sFirst sSecond Then,Max=sFirst,Else,Max=sSecond,End If,Print Max,End Sub,24,If,Then,Else,If Then,Else,If,Else,.,End If,End If,End If,条件语句之三:多分支结构,一定要注意,End If,成对出现,25,例,3-4,:,编程,在窗体上输出字符串”欢迎使用,Visual Basic”.,第一次单击时以黑体显示,;,第二次单击时以楷体显示,;,第三次显示时以宋体显

15、示,;,第四次单击则清除窗体上的信息,重复,.,2025/1/25 周六,26,gejinhuan,If,Then,ElseIf,Then,ElseIf,Then,End If,注意:,ElseIf,不要写成,Else If,,末尾的,End If,不要忘记。,另外一种多分支选择结构形式,27,选择结构,(2),情况选择语句,情况选择结构用于多路选择,根据,测试表达式,的不同取值决定执行该结构的哪一个分支。测试表达式可以为数值、字符等类型,常用的一般为整型或字符串类型。,28,情况语句,Select,语法格式,Select Case,Case,Case,Case,Case Else,End S

16、elect,2025/1/25 周六,29,gejinhuan,例,3-7,分析一下程序,理解情况选择结构的执行流程(当程序运行时,先后输入,3,、,1,、,4,和,125,,查看在,Label1,上的信息分别是什么?,2025/1/25 周六,30,gejinhuan,Select Case,语句:,测试表达式:为数值表达式或字符串表达式,表达式列表:多个表达式用,逗号间隔,即为表达式列表。表达式可以是单个表达式(单值)或,“,表达式,to,表达式,”,(数值范围),如果比较测试表达式与其他表达式的关系,则用符号,“,Is,”,表示测试表达式的值。,31,Private Sub Form_C

17、lick(),Dim Chinese%,Math%,English%,Chinese=InputBox(,语文,),Math=InputBox(,数学,),English=InputBox(,英语,),Select Case,(chinese+math+english)/3,Case,Is,=60,Print,及格,Case Is 60,Print,不及格,End Select,End Sub,注意:,Select Case,后不能出现多个表达式,测试表达式,32,3.3,循环结构,计算机为什么能够大大提高人们的工作效率?,一个很重要的原因就是它能够不知疲倦地进行循环运算,而且结果精确。,(,

18、比如:编程实现,1,到,100,的累积和,),33,3.3,循环结构,(1)For,Next,For,to,Step,Next,循环变量,X,语法:,例,:,For x=1 To 100 Step 1 ,限定范围及步长,sum=sum+x;,累加,Next x ,进入下次循环,2025/1/25 周六,34,gejinhuan,例,:,For x=2 To 13 Step 3 ,限定范围及步长,Print x;,输出,x,的值,Next x ,进入下次循环,例,:,For x=1 To 99 Step 2 ,限定范围及步长,s=s+x ,连加,Next x ,进入下次循环,2025/1/25

19、周六,35,gejinhuan,Exit For,语句,循环体中,可以包括一条或多条,Exit For,语句,如果程序执行到,Exit For,语句时,就会直接退出循环,转而执行,Next,语句的下一条语句。,Exit For,语句最常用的形式是与,If-Then,语句相结合,即:,If e Then Exit For,在执行循环体时,如果条件,e,被满足,则执行,Exit For,语句直接退出循环。,For i=1 to 10 setp 1,If i=7 Then Exit For,Next i,2025/1/25 周六,36,gejinhuan,For,Next,结构注意事项:,步长缺省值

20、为,1,(可以省略),循环变量取值不合理,则不执行循环体。如:,For n=99 to 1 step 2,循环体中可以出现语句,“,Exit For,”,,用于将控制转移到,Next,后一语句,循环正常结束(未执行,Exit For,等控制语句)后,控制变量为最后,1,次取值加步长。,37,Private Sub Form_Click(),For x=13 To 1 Step-3,Print x;,If x=7 Then,Exit For,End If,Next x,Print,Print x,End Sub,循环结构,(1)For,Next,例子:,38,例子:,Private Sub Fo

21、rm_Click(),Print 12345,Dim i As Integer,For i=1 To 5,Print Tab(i);String(6-i,T),Next i,End Sub,循环结构,(1)For,Next,2025/1/25 周六,39,gejinhuan,例,3-8,:求表达式的值,1,-,1/2,+,1/3,-,1/4,+,+(-1),n-1,*1/n,回顾开头的,1,到,100,的累加程序,算法分析:,1,、累加问题,2,、正负号有规律的交替,所以可以用一个变量来表示这个符号位,3,、累加的每一项分母有规律地从,1,变化到,n,40,循环结构,(2)While,Wend

22、,While,Wend,语法格式:,功能:当条件为真,(True),时执行循环体,While/Wend,结构的特点是:先判断条件、后执行循环体,常用于编制某些循环次数预先未知的程序。,2025/1/25 周六,41,gejinhuan,例如,:,Private Sub Command1_Click(),Dim i As Integer,fh As Integer,Dim y As Double,n As Integer,n=InputBox(,输入,n,),y=0,fh=-1,for i=1 to n,fh=-fh,y=y+fh/i,next i,Label1.Caption=y,End Su

23、b,Private Sub Command1_Click(),Dim i As Integer,fh As Integer,Dim y As Double,n As Integer,n=InputBox(,输入,n,),y=0,fh=-1,i=1,While i=n,fh=-fh,y=y+fh/i,i=i+1,Wend,Label1.Caption=y,End Sub,42,循环结构,(3)Do,Loop,Do While i101,sum=sum+i,i=i+1,Loop,Dim i As Integer,sum As Integer,i=1:sum=0,Print sum,Do While

24、,Loop,先判断条件,后执行循环体,43,循环结构,(3)Do,Loop,Do,Loop While,Dim i As Integer,sum As Integer,i=1:sum=0,Print sum,Do,sum=sum+i,i=i+1,Loop While i100,sum=sum+i,i=i+1,Loop,Do Until,Loop,45,循环结构,(3)Do,Loop,Dim i As Integer,sum As Integer,i=1:sum=0,Print sum,Do,sum=sum+i,i=i+1,Loop Until i100,Do,Loop Until,46,循环结

25、构,(3)Do,Loop,Do While i100,sum=sum+i,i=i+1,Loop,Do,sum=sum+i,i=i+1,Loop While i100,四,种,形,式:,2025/1/25 周六,47,gejinhuan,Exit Do,语句,循环体中,可以包括一条或多条,Exit Do,语句,如果程序执行到,Exit Do,语句时,就会直接退出循环,转而执行,Loop,语句的下一条语句。,Exit Do,语句最常用的形式是与,If-Then,语句相结合,即:,If e Then Exit Do,在执行循环体时,如果条件,e,被满足,则执行,Exit Do,语句直接退出循环。,D

26、o While i50 Then Exit do,Loop,2025/1/25 周六,48,gejinhuan,例,3-14,循环结构,输入一个大于等于,4,的正整数,判断该数是不是素数。,注意,Exit For,的用法,修改程序,利用,Do,Loop,实现该程序,。,49,3.4,嵌套结构,(,多重循环),单一的循环结构功能较弱,如果将循环结构与,分支结构进行,嵌套,,或者,多重循环,结构进行嵌套,,就能,实现复杂的功能,。,50,嵌套结构,For A=1 To 10,For B=1 To 20,Next B,Next A,For A=1 To 10,If B=10 then,End If,

27、Next A,要注意嵌套层次的对应关系,51,多重循环,Private Sub Form_Click(),Dim i As Integer,j As Integer,Dim star As String,star=“#”,For i,=1 To 6,For j,=i To 6,Form1.Print star;,Next j,Form1.Print,Next i,End Sub,注意对应关系,2025/1/25 周六,52,gejinhuan,例,3-15,“,鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?,”,算法分析:采用,穷举法,,设公鸡,x,只,母鸡

28、,y,只,小鸡,z,只。利用三重循环把所有的组合都算一遍,把满足,5x,3y,z/3,100,的解求出来。,2025/1/25 周六,53,gejinhuan,嵌套结构(实例),产生,6,个,100,到,200,之间的随机整数,打印到窗体上,找出其中的最大值,并把该值另起一行打印出来。,注意对应关系。,复习使用,print,方法和随机函数。,一定要灵活使用嵌套结构,不要使用太多的嵌套结构。,54,3.5,数组及其应用,假设有,100,个学生的成绩需要输入计算机,按照前面的说法,就需要声明,100,个变量来分别存储成绩,显然这是极不合适的。但若使用数组,就可以轻松地解决此类大数据量的问题。,数组

29、的定义:,数组是指,相同类型,数据的,有序,集合,由,一个变量名,来引用。数组中的每一个,元素,都可以通过一个数值,下标,访问。,55,3.5,数组,数组可分为两种类型:,静态,(,定长,),数组、动态,(,可变长,),数组,1,、定长数组及声明(,必须先声明,再使用,),数组名,(,下标,),As,类型,下标:,下界,To,上界,注:,必须为常量,若省略,则表示,下界为,0,或者,1,数组大小(总的元素个数):上界下界,1,例,:,Dim mark(1 to 100)As Integer,1,是下标的下界,100,是下标的上界,数组元素的数据类型,56,可以利用此语句设置数组中下标中的下界的

30、缺省值。,Option Base 0|1,的用法,Option Base 1,Dim a(8)As Integer,a(1)a(2)a(3)a(4)a(5)a(6)a(7)a(8),a(0)a(1)a(2)a(3)a(4)a(5)a(6)a(7)a(8),Option Base 0,Dim a(8)As Integer,57,Option Base 0|1,的用法,注意:,(,1,)在模块的通用声明段设置,并只在此模块起,作用。,(,2,)参数只能为,0,或,1,。,(,具体应写成,Option Base 0,或,Option Base 1,),(,3,)程序中没有写明此条语句的话,数组下界的

31、缺省值依然为,0,。,2025/1/25 周六,58,gejinhuan,一维数组的简单应用:,Private Sub Form_click(),Dim a(1 To 5)As Integer,For i=1 To 5,a(i)=i,Print a(i);Space(1);,Next i,End Sub,2025/1/25 周六,59,gejinhuan,回顾刚才例子用数组实现:,Private Sub Form_Click(),Dim i As Integer,a(1 to 6)As Integer,max As Integer,max=0,For i=1 To 6,a(i),=Int(Rn

32、d*101)+100,Print,a(i);,If,a(i),max Then max=,a(i),Next i,Print,Print max=&max,End Sub,60,多维数组,a(0,0),a(0,1),a(0,2),a(0,3),a(1,0),a(1,1),a(1,2),a(1,3),a(2,0),a(2,1),a(2,2),a(2,3),如,:,Dim a(2,3)As Integer,(,共,3*4,个元素,),如,:,Dim a(8)As Integer,a(0)a(1)a(2)a(3)a(4)a(5)a(6)a(7)a(8),一维数组:,二维数组,:,61,多维数组,例:

33、,Dim a(1 to 3,1 to4)As Integer,Dim s(2,5)As Single,多维数组的语法形式:,数组名,(,下标,1,,下标,2,,,)As,类型,2025/1/25 周六,62,gejinhuan,多维数组的简单应用:,Option Explicit,Option Base 1,Private Sub Form_click(),Dim a(10,10)As Integer,Dim i As Integer,j As Integer,For i=1 To 10,For j=1 To 10,a(i,j)=i+j,If j=1 And i 1 Then Print,Pr

34、int a(i,j);,If a(i,j)10 Then,Print Space(2);,Else,Print Space(1);,End If,Next j,Next i,End Sub,2025/1/25 周六,63,gejinhuan,动态数组,声明数组的时候下标界不能出现变量,因此试图用下列语句在运行时动态的声明数组的大小(数组元素个数)是,错误,的。,n,InputBox(,“,请输入数组元素个数,”,),Dim a(1 to n)As Integer,64,动态数组,动态数组的声明格式:,数组名,(),As,数据类型,重新定义数组大小的语句格式:,ReDim Preserve,数组

35、名,(,下标,1,,下标,2,),或者两条语句加在一起:,ReDim Preserve,数组名,(,下标,1,,下标,2,),As,数据类型,数组的大小在声明时并没有给出,而要根据后续程序的需要来重新定义数组的大小。,2025/1/25 周六,65,gejinhuan,例:,Dim a()As Integer,n,InputBox(,“,请输入数,组元素个数,”,),ReDim a(n),ReDim Preserve a(25),建议用这个方式,请大家修改,P73,n,InputBox(“,请输入数组元素个数”,),ReDim a(n),As Integer,或者,66,动态数组,关键字,Pr

36、eserve,加与不加的区别:(,书上没有,),如果没有,Preserve,,重新确定数组大小时,会把原来数组里的内容全部清空为,0,。,(2),如果加了,Preserve,,重新确定数组大小时,会保留原来数组里的全部内容。,67,Option Explicit,Private Sub Form_Click(),Dim mark()As Integer,ReDim mark(6),mark(1)=23,mark(2)=56,mark(3)=77,ReDim Preserve mark(8),Print mark(3),End Sub,动态数组,68,3.6,实例(常用算法),算法是指解决问题的

37、一种方法或者一个过程,而程序是指使用某种计算机语言对一种算法的具体实现。,打个小比喻:,算法,VB,语言,工具,方法,问题,69,累加与累乘,一般需要依靠循环结构来实现累加与累乘算法,Sum=0,For i=1 To 100,Sum=Sum+i,Next i,Print Sum,累加就是在原来的和的基础上一次又一次的再加上一个数,1+2+3+100,F=1,For i=1 To 100,F=F*i,Next i,Print F,累乘又叫连乘是在原来积的基础上一次又一次地再乘上一个数,123100,70,例:,求自然对数,e,的近似值,要求其误差小于,0.00001,,近似公式为,:,算法分析:

38、累加问题,归纳出其通项:,a,n,1/n!,Private Sub Form_Click(),Dim i As Integer,sum As Double,temp1 As Double,sum=0,各项阶乘倒数总和,i=0,递增变量,temp1=1,单项阶乘,Do While 1/temp1 0.00001,sum=sum+1/temp1,i=i+1,temp1=temp1*i,Loop,Print,计算了,;i;,项的和是,;sum,End Sub,71,穷举法,“,穷举法”也称为“枚举法”或“试凑法”,即对可能出现的各种情况逐一进行测试,判断是否满足条件,从中找出那些满足条件的结果作为问

39、题的解。,例如用计算机破译密码、探寻路径等。,这是一种最“笨”的方法,一般采用循环来实现。,72,Private Sub Form_Click(),Dim A As Integer,B As Integer,C As Integer,D As Integer,Dim S1 As Integer,S2 As Integer,S3 As Integer,For A=1 To 9,For B=0 To 9,For C=1 To 9,For D=0 To 9,S1=A*1000+B*100+C*10+D,S2=C*100+D*10+C,S3=A*100+B*10+C,If S1-S2=S3 Then,

40、Print A;B;C;D,End If,Next D,Next C,Next B,Next A,End Sub,数字灯谜:,ABCD,-CDC,ABC,73,递推法,递推法又叫迭代法,是利用问题本身,所具有的一种递推关系求问题解的方法。,递推法的基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都,从旧值的基础上递推出新值,并由新值替代旧值,。,例如数列:,1 2 2 4 8 32 ,74,斐波那契数列,0,,,1,,,1,,,2,,,3,,,5,,,8,,,13,,,Private Sub Form_Click(),a=0,b=1,Text1.Text=Str(a)&Str(

41、b)&Chr(13)&Chr(10),For i=1 To 9,a=a+b,b=a+b,Text1.Text=Text1.Text&Str(a)&Str(b)&Chr(13),Next i,End Sub,递推法,打印前,20,项,若要打印前,30,项呢?,这个干嘛?,75,数组排序,两种算法:选择排序、冒泡排序,对已知存放在数组中的,n,个数,进行排序。,76,1,、选择法排序,算法思想:,(,1,)对有,n,个数的序列,从中选出最小的数,与第,1,个数交换位置;,(,2,)除第,1,个数外,从其余,n-1,个数中选最小的数,与第,2,个数交换位置;,(,3,)依次类推,选择了,n-1,次后

42、,这个数列已按升序排列。,数组排序,原始数据:,8 6 9 3,2,7,第一轮后:,2,6 9,3,8 7,第二轮后:,2 3,9,6,8 7,第三轮后:,2 3 6,9 8,7,第四轮后:,2 3 6 7,8,9,第五轮后:,2 3 6 7 8,9,77,Private Sub Form_Click(),Dim n As Byte,i As Byte,j As Byte,k As Byte,temp As Single,Dim a()As Single,n=InputBox(,请输入数组元素个数,输入数据,),ReDim a(n),For,i=1 To n,a(i)=Int(Rnd*90)+

43、10,Next,i,For,i=1 To n 1,总共要交换,n-1,次,k=i,假定第,i,个数最小,For,j=i+1 To n,从第,i,个数后面开始比较,If a(j)a(k)Then k=j,找到最小的数的下标,Next,j,temp=a(i):a(i)=a(k):a(k)=temp,交换,Next,i,For,i=1 To n,Print a(i);,Next,i,Print,End Sub,78,2,、冒泡法排序,算法思想:,从后往前将相邻两个数比较,小的调到前头,(,1,)有,n,个数,第一趟将相邻两个数比较,小的调到前头,经,n-1,次两两相邻比较后,最小的数已,“,浮起,”

44、,,放在第一个位置;,(,2,)第二趟对余下的,n-1,个数按上法比较,经,n-2,次两两相邻比较后得到次小的数;,(,3,)依次类推,,n,个数共进行,n-1,趟比较,就能得到最终结果。在第,j,趟比较中要进行,n-j,次两两比较。,原始数据:,8 6 9 3 2 7,第一轮后:,2,8 6 9 3 7,第二轮后:,2 3,8 6 9 7,第三轮后:,2 3 6,8 7 9,第四轮后:,2 3 6 7,8 9,第五轮后:,2 3 6 7 8,9,79,Private Sub Command1_Click(),Dim a(1 To 6),Dim n%,i%,j%,iMin%,t%,k%,n=6

45、,a(1)=8:a(2)=6:a(3)=9:a(4)=3:a(5)=2:a(6)=7,For k=1 To n,Print a(k);,Next k,Print,For i=1 To n-1,For j=n To i+1 Step-1,If a(j)a(j-1)Then,t=a(j),a(j)=a(j-1),a(j-1)=t,End If,Next j,For k=1 To n,Print a(k);,Next k,Print,Next i,End Sub,原始数据:,8 6 9 3 2 7,第一轮后:,2,8 6 9 3 7,第二轮后:,2 3,8 6 9 7,第三轮后:,2 3 6,8 7 9,第四轮后:,2 3 6 7,8 9,第五轮后:,2 3 6 7 8,9,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 中考

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服