2017-信息技术vb选修知识点(精编版)_第1页
2017-信息技术vb选修知识点(精编版)_第2页
2017-信息技术vb选修知识点(精编版)_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(一)电脑解决问题的流程图选修知识点19二算法一、 算法定义 :是解决问题的方法和步骤。算法是程序设计的“灵魂”。算法 +数据结构程序。二、算法的描述方法 :分自然语言、流程图和伪代码三种。1、自然语言 :人们日常生活中的语言本国语言,用自然语言描述符合我们的习惯,且容易理解。2、流程图 :也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。3、伪代码 :是介于自然语言和电脑程序语言之间的一种算法描述。是专业软件开发人员常用方法。开始、 结束输入、输出判断连处理、运算接点三、算法的 5 个特征:流程线1、有穷性 :执行有限步之后结束,且每一步的执行时间也都是有限的。2、

2、确定性 :每一步都有确切的含义。3、可行性 :原则上能精确运行,用纸和笔做有限次运算后即可完成。4、输入 :有零个或多个输入。5、输出 :至少产生一个输出。三程序设计基础电脑程序设计语言经历了机器语言、汇编语言、高级语言的发展过程。常用高级语言:basic、vb、pascal 、c、c+、java 、delphi 、fortran、powerbuilder等 。 面向对象的程序设计语言,如vb:其中的对象主要是系统设计好的对象,包括窗体、控件 等。控件 :是指工具箱中的工具在窗体中画出的能实现一定功能的部件,如标签、文本框、命令按钮等。控件对象的类型前缀名字举例窗体formfrmfrmfind

3、命令按钮commandcmdcmdok标签labellbllblinput文本框textboxtxttxtclock常用控件:假设命令按钮(command)的 enabled 属性设置为true 时按钮有效, 设置为 false 时按钮无效对象的三要素:属性、方法、事件visiblealignment设置控件是否可见即标签文字对齐属性:borderstyle设置控件的边框风格(0)left justify(1)right justify时文本右对齐;时文本左对齐;设置为 (2)center时文本居中。属性name设置对象的名称font设置控件中字体格式caption决定控件中显示的内容back

4、color设置控件背景色text决定窗体中文本框中显示的内容forecolor设置控件的前景色即文字颜色height决定控件高度top决定控件与窗体顶部的距离width决定控件宽度left决定控件与窗体左边的距离对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过赋值语句在代码窗口设置: 对象名 . 属性名属性值例:给文本框txt123 的 text 属性赋值为字符串”20”,代码如下:txt123.text =“20”注意 : 如果直接给对象名赋值的话,是赋值给对象的默认属性。例: txt123 =“20” 相当于txt123.text =“20”都是给文本框txt123 的 te

5、xt属性赋值。例:读取文本框“txt123”的“ text ”方法常见的方法如下:print clsmoveshow格式:对象. 方法参数名表例 : form1.print”欢送使用 ”事件及事件驱动常见的事件如下:click、 dblclick、keypress、load 、mouseup 等。事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个click事件。如需要命令按钮响应 click事件,就把完成click事件功能的代码写到click事件的事件过程中,与事件一一对应。 事件过程的形式如下:private sub对象名 _事件名 ( )事件过程代码end sub一、常量

6、: 指在程序进行过程中不变的量,在vb中一般分数值常量与字符常量两种数值常量 :就是数学中说的常数,分整型常量和实型常量两种整型常量:即整数,指不带小数点的数值如1、0、 -10 、+35 等都是合法的整数实型常量:即实数,指带小数点的数值。实型常量又分为定点数和浮点数两种。例:定点数:3.14159 和 -6.8 , 1.99浮点数: 2e6、1e5、88e× 103 可表示为1.2345e3 ,字母 e 表示底数10浮点数就是数学上的科学计数法。字符串常量 :被一对英文双引号括起来的假设干个合法的字符称为字符串常量。例如: ”china ”、”visual basic ”、”18

7、”、”等,是指英文双引号中的字符,不包括英文双引号本身。符号常量 :如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。二、变量: 在程序执行过程中,其值可以改变的量称为变量。变量命名注意要点:1、必须以 字母或汉字 开头 ,不能以数字或其他字符开头。2、只能由 字母、汉字、数字或下划线组成,不能含有小数点、空格等字符。3、最长不超过255 个字符4、不能以vb 保留字 作变量名,如语句定义符、函数名integer、end、 print、 dim等。5、vb 不区分变量名中字母大小写 。如 hello和 hello是同一个变量。三、数据及运算1、常用 数据类型 :(框选的内容都要熟记)

8、2、常量和变量的命名、声明及赋值注意:符号常量声明和赋值必须一起完成,变量却必须分2 句符号常量的声明和赋值const常量名 as常量类型 =常量值或表达式如: const pi as常量名为pi注意:常量必须在声明的时候立马赋值 ,如果没有“ = 3 ”部分就是错误的。变量的声明 : dim < 变量名 >as < 变量类型 >如: dim a as integer定义一个整型变量,变量名为a变量的赋值vb中使用“ =”给变量赋值,其形式为:变量名=表达式四、运算符1、算术运算符注意:算术运算符的优先级问题、区分/ mod三个运算符注 意 : 和mod 的 运 算量

9、如 果带小数, 要 先 四舍 五 入取整,再作运算。2、字符串运算符“ +”和“ & ”作用是将运算符两边的字符串连接为一个新的字符串。使用"&" 运算符时应注意前后加空格。注意特例:当数值型和字符型连接时,"+" 把数据都转化成数值型然后相加,返回一个数值型数据。例如:“123”+“45”=“12345”123 +“45”= 168“123”&“45”=“12345”123 &“45 ”=“12345”3、关系运算符优先级相同注意:关系表达式的运算结果为布尔值true或 false=等于<小于号<>不等

10、于> 大于号>=大于等于号<=小于等于号运算规则: (1) 当两个操作式均为数值型,按数值大小比较。(2) 字符串比较,则按字符的ascii 码值从左到右 逐位 比较,直到出现不同的字符为止。例: "987" > "99",结果为 false。(3) 数值型与可转换为数值型的数据,按数值比较。例:29 > "189",结果为false。4、逻辑运算符not 取反 and 与 or 或 优先级依次降低not 对一个逻辑量进行运算, and 和 or 是对两个逻辑量进行运算,运算结果都为逻辑值 true 或

11、false运算符 说明 优先级说明举例结果not非 1当操作数为假时,结果为真not falsetrue and与 2操作数均为真时,结果才为真 true and falsefalse or或 3操作数中有一个为真时,结果为真 false or truetrue5、日期运算符与日期表达式日期表达式是用“ +”或“ -” 将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子。例如:表达式“#2003/09/01# + 30”的运算结果是“2003-10-1 ”表达式“#2003/10/20# - #2003/10/10#”的运算结果为整数106、运算符的执行顺序:算术运算符> 字

12、符串运算符>关系运算符>逻辑运算符如 a = 2: b = 3: c = 4: d = 5则表达式a > b and 2 * a > c or c <= d的值为true7、表达式的写法虽然 vb 中的表达式与代数式中的算式很相似,但两者却是完全不同的概念。要注意区别,如在vb 中不能使用 等。下表中列出了一些代数式对应的vb 表达式。代数式vb表达式说明2ab 4ab(2 * a+b)/(4 * a* b)在 vb表达式中无法写分式, ,乘法运算符*不能省略abc五、常用函数g* t2/2 a<=b and b<=csqr(b * b -4* a*

13、c)vb中不能使用上标,指数必须用vb运算符 表示要用 vb中的运算符,且不能连续写使用内部函数 sqr计算平方根另函数abs 求绝对值1、数学函数函 数名称含义abs(x)绝对值函数求 x 的绝对值 |x|int(x)取整函数求 x 的最大整数sqr(x)算术平方根函数求 x 的算术平方根log(x)自然对数函数求 x 的自然对数rnd随机函数产生0,1)之间的随机数xexp(x)指数函数e 1x>0sgn(x)符号函数sgn(x) =0x=0-1x<0sin(x)正弦函数sin(x), x的单位为弧度cos(x)余弦函数cos(x), x的单位为弧度tan(x)正切函数tan(

14、x), x的单位为弧度注意 :1int (x) 是取小于等于x的最大整数 。例如 :int (3.12) =3int (2.1+3) =5int ( -4. 6) = -5int ( -1-2. 5) = -42rnd 函数产生0, 1)之间的一个随机数,它常与 randomize以初始化随机数生成器结合使用, 如果要产生0 , a )间的随机整数 ,表达式为int (rnd *a)产生 a , b)间的随机数:rnd*(b-a) +a产生 a, b间的随机整数:int(rnd * (b-a+1)+a2、字符串函数注意的以下字符串函数返回的值是数值型,还是字符串型。函数功能实例结果len( 字

15、符串 )求字符串的长度字符个数len ("2008奥运 ")6left(字符串, n )截取字符串左边n个字符left (" 2008奥运" , 4)“2008”mid( 字符串, m, n )从字符串第 m个字符开始截取n个字符mid ("2008奥运" , 3, 2)“08” mid( 字符串, m )从字符串第 m个字符开始截取剩余字符mid ("2008奥运" , 3)“08奥运 ” right(字符串, n )截取字符串右边n个字符right (" 2008奥运", 2)“奥 运 ”

16、string ( n,字符串 )生成指定长度的指定字符的字符串string (3 ,"89" )“888”在字符串 1中查找字符串 2.instr(字符串 1,字符串 2)并返回其出现的位置instr("2008奥运 " ," 奥")5注意 : 1string函数只返回 n个指定的字符串的首字符 。(2) left(字符串, n ) 和right(字符串, n ) 中,当 n的值大于字符串的长度时,返回整个字符串 。(3) mid(字符串, m, n) 函数中,如果m大于字符串的长度,则返回空串,如果省略n,则返回 m开始的全部字符。

17、3、常用转换函数函数功能实例结果val( 数值型字符串)将数值型字符串转换为数值val ("99") +val ("88")187str( 数值 )将数值转换为字符串str (5)" 5" chr( 字符代码 )将字符的 asc码转换为对应的字符chr (65)a asc( 字符 )求字符对应的ascii 码asc ("a" )65cint( 表达式 )将表达式结果作四舍五入处理cint (3.6)4fix( 表达式 )将表达式结果的小数部分截去fix(3.8)3注意1对于 str( 数值 ) 函数,如果其中的数值

18、为正数,则返回的字符串的第一个字符为空格( 符号位 ) 。如str(5)的结果为两个字符长度的字符串" 5" ,如要得到不含符号位的字符串,可使用cstr()函数 。2cint(表达式 )当表达式的值对应的小数位为.5的时候比较特殊,函数结果为离表达式的值最近的一个偶数。如 cint 4.5 =43asc( 字符 ) 函数 ,只求 " 字符 " 中的第一个字符的ascii码值,如: asc("ab" )=654ascii 码的大小:空格<数值 <大写字母 <小写字母常用字符的 ascii 码值:空格的ascii 码为

19、: 320的ascii 码为: 48a 的ascii 码为: 65a的ascii 码为: 97其他数字和英文字母按序依次类推。5字母转换。 因大写字母的ascii 码比对应的小写字母小32,所以可通过chr和 asc 函数互相转换。例: a转 achr ( asc ( " a" )- 32)a 转 achr (asc ( " a " ) + 32 )注意式子中 "" 不能省略4、日期函数(1) date()、time() 、 now() 。这三个函数 没有参数 ,分别返回电脑系统的当前日期、时间、日期与时间。如2011 年5月29日,

20、 print date()或者 print date都会打印出2011-5-29(2) year()、month() 、day() 。这三个函数必须有参数,即必须指定一个日期,分别返回指定日期的年、月和日。函数实例结果day(#8/18/2008#)18month(#8/18/2008#)8year (#8/18/2008#)20085、定位函数 与 print语句配合使用的,以控制输出数据的格式,主要包括tab、space 等。(l) tab函数。功能:将被输出的内容放在由参数n所指定的位置( 列数) 处,在书写时,被输出的内容要放在 tab函数的右面,并用分号分隔。例: print tab

21、 (15);"" tab (30);"成绩 "(2) space函数。功能 : 产生由 n个空格所组成的字符串。6、用户交互函数vb 提供 inputbox( ) 和 msgbox( ) 函数用于人机交互。(1) inputbox ( )格式:inputbox( 提示,标题 ,默认值 ,x 坐标 , y 坐标 )功能:在程序中调用inputbox 函数,将产生一个提示用户输入内容的输入框,等待用户输入信息,并返回字符串类型的数据。用户要想得到inputbox () 函数的返回值,就必须将函数的结果赋值给指定的变量。格式为:变量 = inputbox( 提

22、示 ,标题 ,默认值 )注意: 每执行一次 inputbox() 函数, 用户只能输入一个数据。输入框的样式是固定的,我们可以改变的是输入框 的“提示 ”和“标题 ”的内容。例如:r = inputbox ( " 请输入 r" , " 输入圆半径 " )2. msgbox( )格式为: msgbox( 提示信息 ,按钮 ,标题 )功能: 用于在程序运行过程中产生一个消息框,可以看作是输出对话框,该函数的返回值为数值型数据。格式: msgbox( 提示信息 ,按钮 ,标题 )例如: p=msgbox( " 你输入的密码不正确,是否继续?"

23、; , vbyesno ," 错误提示 " 当用户单击消息框中的一个按钮后,消息框即从屏幕上消失。在上面的语句中,将函数的返回值赋给变量 p,在程序中可引用p作相应的处理。六、常用语句1、赋值语句格式 1:let变量=表达式功能: 将右边表达式的结果赋给左边变量。通常情况, let 可以省略 。" ="为赋值号。它与数学中的" =" 是不同的。特别要跟方程式区分开。如 : x=5即把数值 5赋值给变量 xy =5 mod 2 + 7即先计算表达式5 mod 2 + 7的值,再将值 8赋值给变量 y n =n + 1即将 n的值加 1后

24、后再赋给 nx=y即将变量 y的值赋值给变量x也可以在一行内给多个变量赋值,两条语句之间用冒号" : "隔开,如:s=0: a=l: b=2格式 2:对象名 . 属性名 = 表达式如果省略属性名,则直接赋值给对象的默认属性。如: text1. text ="你好 ! "即把字符串" 你好! "赋给text l的text 属性。注意:赋值语句一般都独立成行,如果有类似赋值的语句出现在一些结构中,大家要会区分。例如跟在以下关键字之后if x=5while x=5until x=5print x=5以上结构中的x=5不再是赋值语句,因为&q

25、uot;= "在这里是个关系运算符,判断左右是否相等,所以x=5是一个关系表达式,其值应该是个逻辑型,不是true就是false 。2、print语旬格式: 对象名 .print 表达式列表 功能: print方法具有 计算和输出 双重功能。对于表达式,它先计算其值,然后再在指定的对象上输出文本,对于常量、变量则直接输出其值。对象可以是窗体、图片框、打印机等。" 对象名 "可以省略,省略时表示在当前窗体上输出数据。说明: 1表达式列表可以是一个或多个表达式,之间用英文的" ;" 或" ," 隔开。如果用逗号 分隔, 则按 标

26、准输出格式 输出各数据, 此时以 14个字符位置为一个区段,逗号后的表达式在下一个区段输 出;如果之间用分号分隔,则按 紧凑格式 输出数据。例: print 1 ; 2 ; 3 ; 4 + 3print l , 2 , 3 , 4 + 3输出结果为 : 1 2 3 7输出结果为 : 1237 2如果 print语句末尾没有逗号或分号,表示该 print输出完结果后自动换行,后面再执行print 时将在下一行的起始位置输出数据;如果在 print语句末尾使用逗号,则在同一行上跳到下一个输出区段 输出下一个 print所输出的内容。 如果在 print语句的 末尾加上一个分号,表示下一个 prin

27、t输出的内容将按紧凑格式紧跟在前一个print所输出的内容后面;3当一个 print语句的 后面无任何表达式时,则输出一空行或换行。注意:与 tab函数结合使用,掌握各种图形的输出。3、注释语句为了提高程序的可读性,通常需要在程序的适当位置加上必要的注释。在vb中添加注释语句的方法为在字符 " ' "后加注释内容或采用" rem 注释内容 " 两种形式。格式 1: '注释内容用 '写的注释语句既可以单独写一行,也可以跟在其他语句后。格式 2: rem 注释内容用 rem写的注释语句必须单独写一行。4、结束语旬格式: end功能:强

28、制程序结束运行。private sub command1_click( ) endend sub该过程用于结束程序,即单击命令按钮commandl 时,结束程序的运行。四程序设计的三大基本结构一、顺序结构代码按照 由上到下 的顺序一行一行地执行。程序执行过程中没有分支、没有重复。二、分支结构选择结构程序在运行时会根据不同的条件决定程序的走向。实现选择结构的语句有if语句和 select语句 。1、if语句分为单分支、双分支和多分支三类。(1) 单分支 if结构:注意:行if和 块 if的区别只在书写格式上。行 if语句: if < 条件表达式 > then语句 a块 if语句: i

29、f < 条件表达式 > then语句 aend if(2) 双分支 if结构:行 if语句: if <条件表达式> then语句 a else语句 b块 if语句: if <条件表达式语句 a> thenend if3多分支if 语句else语句 bif<表达式 1>then<语句块 1> elseif <表达式 2>then< 语句块 2> else<语句块 n+1> end if2、select case语句select case<测试表达式 >case表达式列表1语句组 1注意:要

30、会区分选择结构和循环结构的流程图。如上图:甲为循环结构,有向上回到条件框的箭头。乙为选择结构双分支。case表达式列表2语句组 2case else语句组 n+1 end selectselect/case语句的 执行过程 是: 先求 " 测试表达式 " 的值,然后顺序测试该值符合哪一个case子句的情况,如果找到了,则直接执行该case子句下面的语句块,然后执行end select 的后续语句;如果没找到,则执行 case else 下面的语句块,然后执行end select的后续语句。说明 : 1" 测试表达式 " 可以是数值型或字符串型表达式。 2

31、" 表达式列表 " 形式有以下 4种。 一个表达式或用逗号隔开的假设干表达式,例如2, 4 , 6 , 8 。 表达式 1 to表达式 2,例如 60 to 80 。 注意,表达式1 应该小于表达式 2 is 关系运算符表达式,例如is > 80。 表达式,例如x+3 。三、循环结构1、for-next循环适合于解决循环次数事先能够确定的问题。for 循环变量一般形式是:for循环变量=初值 to终值 step步长值 循环体 next 循环变量 说明: 1循环变量,必须为数值型。循环初值、循环终值也是数值型或数值表达式。2循环的有效区间是由循环初值、循环终值所限定的闭

32、区间。3步长值是循环变量的增量,是一个数值表达式。假设步长值为正,则初值就应小于终值,否则循环体一次都不执行; 假设步长值为负, 则初值应大于终值, 否则循环体一次都不执行。如果步长值是 1,step 1可略去不写。但假设步长值为0,会造成死循环,这是要防止的,可用ctrl+break结束程序。4循环体是 for 语句和 next 语句之间的语句序列,也是需要重复执行的语句组。5next 后的循环变量与for 语句中的循环变量必须相同。6循环的次数=循环终值 - 循环初值 步长值 + 1for/ next循环语句的执行过程:1系统将初值赋给循环变量,并自动记下终值和步长。2检查循环变量的值是否

33、越过终值。如越过就结束循环,执行 next 后面的语句; 否则执行一次循环体。3执行 next 语句 : 将循环变量增加一个步长值再赋给循环变量,转到第2步继续执行循环。2、do loop 循环对于不能预先确定次数,但需要执行多次的情况,可以使用do/loop 循环。格式一:do while条件表达式循环体loop先判断条件是否为真,假设条件为真,执行循环体,条件为假时退出循环。因此可能一次都不执行循环。格式二:do循环体loop while条件表达式先执行一次循环体,再判断条件是否为真,假设条件为真,执行循环体,条件为假时退出循环。因此至少执行一次循环体。格式三:do循环体loop unti

34、l条件表达式先执行一次循环体,再判断条件是否为假,假设条件为假,执行循环体,条件为真时退出循环。因此至少执行一次循环体。格式四:do until条件表达式循环体loop先判断条件是否为假,假设条件为假,执行循环体,条件为真时退出循环。因此可能一次都不执行循环。注意 : if语句和 do语句中都有的" 条件表达式 " ,一般是一个关系表达式或逻辑表达式,其值不是true 就是 false 。但如果是数值型的表达式的话,会进行强制转换,即数字0 转换成 false, 非 0 转换成 true 。五算法与问题解决一、解析法解析法又称公式法。解析法就是在分析具体问题的基础上,抽取出

35、一个数学模型,这个数学模型能用假设干个解析表达式表示出来。求解了这些表达式,问题也就得以解决。如:求解一元二次方程a*x2+b*x+c=0 的实根dim x1 as double , x2 as doubledim a as double,b as double,c as double if b*b-4*a*c>=0 thenx1=(-b+sqr(b*b-4*a*c)/(2*a)分析:x=bb 24 ac 2ax2=(-b-sqr(b*b-4*a*c)/(2*a) text1.text =str(x1)text2.text = str(x2) elseprint“方程无解 ”end if

36、x1=(-b+sqr(b*b-4*a*c)/(2*a) x2=(-b-sqr(b2-4*a*c)/(2*a)二、穷举法穷举法是将求解对象一一列举 出来,然后 逐一加以分析、处理,并验证结果是否满足给定的条件, 穷举完所有对象,问题将最终得以解决。穷举法也叫枚举法、列举法。穷举法关键是如何列举所有可能的情况,不能遗漏,也不能重复。注意取值范围,减少电脑工作量。适用编程问题:水仙花问题、鸡兔同笼问题、百钱百鸡问题、素数问题。如:已知公鸡每只3元,母鸡每只5元,每 3只小鸡 1元。用 100元钱买 100只鸡,应各买多少只鸡?dim a as integer, b as integer,c as i

37、nteger for a=0 to 33公鸡数for b=0 to 20母鸡数for c=0 to 100小鸡数ifa+b+c=100 and a*3+b*5+c/3=100then print a;b;cend ifnext c next bnext adim a as integer, b as integer dim c as integerfor a=0 to 33公鸡数for b=0 to 20母鸡数c=100-a-b小鸡数if a*3+b*5+c/3=100then print a;b;cend if next bnext a三、数组及其应用数组是一组相同类型的变量集合。数组用一个

38、统一的名字代表逻辑上相关的一批数据,每个元素靠下标变量来区分。有一个下标的数组称为一维数组。数组中的数据,逻辑上是相互关联的。1、使用数组要先声明数组的大小和数据类型。声明数组的格式如下:dim数组名 ( 最大下标常量 ) as数据类型例 1: dim s (9) as integer表示 : 名称为 s的一维数组中包含10个元素,下标从o到9。用来存放整型数据。也可以指定下标的起始值。 例 2: dim x (2 to 10) as single这个数组含有9个元素,下标从2到 10,数据类型属于单精度实型。还可以说明多维数组。例 3: dim d (4, 2 to 6, 3 to 9) a

39、s long说明了一个 3维数组,一共 5*5*7 个数组成员,数据类型属于长整型。2、应注意的问题:1在同一个程序中,任何数组只能声明一次。例如 : dim s(5) as integerdim s(10) as integer这样,运行时会报错:当前范围内的声明重复。2下标必须是常量且为整数( 假设不是整数,程序运行时自动4舍5入为整数 ) 。3同一个程序中,数组名不能与变量名相同。例如 : dim s as integerdim s (10) as integer这样,运行时会报错:变量与数组不能同名。4数组必须先声明后使用否则运行时会报错:子程序或函数未定义。5数组使用时,下标不能超出

40、声明的范围。例如 : dim s (10) as integerprint s(11)这样运行时会报错:下标越界。6数组声明时和变量一样,要注意类型。例如 : dim s (10) as integers(3)=40000这样运行时会报错:溢出。3、数组的应用数组的赋值、计算、输出通常都与for next 循环结合使用。for 语句中的循环变量作为数组元素的下标,通过循环变量的不断改变,到达对每个数组元素依次进行处理的目的。例子:利用数组实现:输出10 个1,100 的随机数,并输出它们的和与平均值。dim a(9) as integer数组的定义dim s as integerrandomi

41、ze将 rnd函数随机化for i = 0 to 9a ( i ) = int(100 - 1 + 1) * rnd) + 1print a( i )s = s + a( i ) next iprint "和为: " sprint "平均值为: " s/10四、顺序查找顺序查找是查找算法中简单、易行的算法。进行查找时一般从数据的第一个元素开始,按照数据的顺序查找指定的关键值。如果被查数据和该关键值相匹配,则表示找到;如果所有数据与关键值都不匹配,则表示被查数据中不存在该关键值,查找失败。顺序查找的数据不要求是有序的。五、二分法查找 二分法查找也叫折半查找

42、 二分法查找要求被查数据是 有序的查找思路:对于有序数列从小到大排,设定下界low 最小元素下标和上界high 最大元素下标,当满足条件low<=high时,求 中点 mid,将 中点元素的值 与所要查找的值比较,假设中点元素值比所要查找元素小,则应找后半段,所以low=mid+1 ,否则应找前半段high=mid-1 ,直到找到为止; 假设 low>high ,则说明找不到。dim a(9) as integer dim mid as integera(0)=12 :a(1)=20 :a(2)=27 :a(3)=36 :a(4)=45 :a(5)=50 :a(6)=55 :a(7

43、)=60 :a(8)=79 :a(9)=105low = 0: high = 9do while low < highmid = (low + high) 2注意: mid是中点位置,而a(mid)是中点位置的值ifa(mid)= 55 then print "找到了 "exit doelseif a(mid) < 55 then low = mid + 1else high = mid - 1 end ifloopif low > high then print "没有 55! "六、冒泡排序排序的种类有交换排序、选择排序、快速排序等

44、。“冒泡法排序”也叫“起泡法排序”,是一种比较简单、易懂的交换排序方法。它通过将相邻元素进行比较和交换,逐步将一个无序序列排列为一个有序序列。简单说:就是对相邻数据两两比较,将符合条件的数据"冒上来 "沉下去,然后用同样的方法再" 冒泡" 处理余下的数据,直至全部数据完成排序。(1) 标准的从后往前的升序dim a(9) as integer for i = 0 to 9a(i) = int(100 - 1 + 1) * rnd) + 1print a(i); next ifor j = 1 to 9for i = 9 to j step -1 if a

45、(i ) < a(i-1) thent = a(i - 1) a(i - 1) = a(i) a(i) = tend if next i next jfor i = 0 to 9 print a(i);next i(2) 标准的从前往后的升序dim a(9) as integerfor i = 0 to 9a(i) = int(100 - 1 + 1) * rnd) + 1print a(i); next ifor j = 9 to 1 step -1 for i = 0 to j-1if a(i) > a(i+1) then t = a(i+ 1)a(i+ 1) = a(i)a(

46、i) = t end ifnext inext jfor k= 0 to 9 print a(k); next k定义数组给数组的每个元素赋值1,100 的随机数并输出将数组中元素从小到大冒泡排序从 a(9) 开始比较、交换小的往前换外循环控制排序的趟数内循环控制每一趟排序比较的成员和次数显示排序后的数组元素定义数组给数组的每个元素赋值1,100 的随机数、输出将数组中元素从小到大冒泡排序从 a(0)开始比较、交换大的往后换外循环控制排序的趟数内循环控制每一趟排序比较的成员和次数显示排序后的数组元素七、递归法1、 自定义函数:编程者自己编写的函数。自定义函数定义格式:function<

47、函数名称 > (<参数列表 > ) as<类型 ><局部常量、变量说明><语句组 >函数名 =返回值end function自定义函数的调用有三种格式:格式1:变量 =函数名称(参数)格式 2: call 函数名称(参数 )格式 3:函数名称参数2、 递归法如果一个函数在定义时,直接或间接地调用了自己,这种算法称为递归法。例如函数 a 自己调用了自己。另外如果函数 a 调用了函数b,函数 b 反过来再调用函数a 的算法,这也是递归算法。用递归写出的算法往往十分简洁。递归法一般需要自定义函数或过程来实现。例 1:用递归函数求n!注意给函数名s 赋的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论