算法与程序设计知识点提要.pdf
精品资料 可编辑修改 算法与程序设计知识点提要 1、算法:解题方法的精确描述,即解题方法步骤化。2、算法的特征 有穷性:一个算法的执行步骤是有限的 确定性:算法中的每个步骤必须有确切的含义 可行性:算法的每个步骤是可行的,是实际能做的 有 0 个或多个输入 有 1 个或多个输出 3、算法表示:自然语言:自然语言是指人们 日常生活 中使用的语言,如汉语、英语、法语等 都是自然语言。用自然语言描述算法符合我们的表达习惯,并且容易理解。流程图:流程图(Flow Chart)也称程序框 图,它是算法的一种 图形化表示方法。用流程图描述算法 与自然语言描述相比,用流程图描述算法形象、直观,更容 易理解。伪代码:伪代码(Pseudocode)是介于自然语言和计算机程序语言之间的一种算精品资料 可编辑修改 法描述。它也是专业软件开发人员描述算法的一种常用方法。计算机语言:利用程序设计语言如 Visual Basic、C、C+、Pascal等编制程序,实现算法。4、对象:在VB中,我们总是和对象打交道。新建一个窗体就是新建了一个窗 体对象;从工具箱中,将一个控件拖放到窗体上,实际上也生成了一个对象。5、属性:对象的属性是用来描述对象的外部特征的。在 VB中,窗体(Form)对象的属性有名称、标题(Caption)、字体(Font)、背景颜色(BackColor);按钮对象的属性有按钮名称、提示、背景颜色等,对象的属性可在“属性”面板 中设置。代码中属性的引用方法为:对象名属性名=属性值 或变量=对象名.属性名 例如,Form1.Caption=你的体重标准吗?n=val(Text1.Text)6、方法:方法是一个对象允许其他对象与之交互的方式,它表明了一个对象所 具有的能力。轉WT F*户百轉:f 一 q*-窗体对业 V-丈本柜対家 1 -按擁对id 精品资料 可编辑修改 代码中调用对象的方法可以用:对象名.方法名 参数列表 例如:Form1.Cls 擦除窗体 List1.AddItem n(i)将幸运学号加入列表框中 7、类:现实生活中,我们通常会把具有共同性质的事物划分成一类,得出一个 抽象的概念“类”。在面向对象程序设计中我们也用这种方法,往往把具有共同属性、方法或事 件的对象归为“类”。类是在对象之上的抽象,是对象的模板;对象是类的具体 化,称类的实例。当我们说“标签”的时候,指的是标签类;当我们说某个标签 的时候,指的是标签类的一个实例。VB 工具箱中的类是可视类,设计程序时,将它们直接拖放到窗体上就可以 生成类的实例(对象)。使用 VB 进行程序设计的方便之处就在于 VB 给我们定义了许许多多的类,从窗体、工具栏、状态栏、命令按钮、图片框、单选框、复选框到时钟、文件、文件夹、驱动器、滚动条、旋转按钮等等,我们在程序设计中用到的类,一般它 都提供了,这大大方便了程序的编写。编写一般的程序,我们只需要生成相应类 的实例(即生成对象)就可以实现想要的功能。8、事件和事件过程:VB 为窗体和大多数控件都规定了一组事件,当应用程序 被启动后,VB 随时准备捕获各种事件。一旦发生了某个事件,VB 就会执行与 该事件相联系的事件过程;执行完后,VB 将等待下一个事件的发生。常用的事件有 Load(载入事件,如 Form_load)、Click(单击事件,如 精品资料 可编辑修改 Command1_Click)、Change(改变事件,如 Text1_Change)等。如用户用 鼠标单击按钮(CommandButton)就触发了 Click 事件,程序就会执行 Click 事件过程(即以下代码中的 Sub 和 End Sub 之间的语句)。Private Sub Command1_Click()Dim r As Double r=Val(Text1.Text)Text2.Text=Str(2*3.14*r)End Sub 9、赋值语句 VB 中赋值语句用“=”来实现,如:a=b 将 b 的值赋给变量 a N=1 将 1 赋给 N 赋值语句“=”后面可以是常量、变量或表达式。赋值语句中的“=”与数学中的“=”是不同的!如:N=N+1 这里的意义是将 N 的值加 1 后重新赋给 N,结果 N 的值比原值增加了 1。10、注释语句 注释是以单引号()开头的一串文字,可以出现在程序中需要说明的位置 上,通过这一串文字,对附近的程序段进行简要的说明,增加程序的可读性。注 释对程序的执行效果没有任何影响,程序运行时自动跳过注释。精品资料 可编辑修改 在 VB 里,注释语句有两种,一种是用“Rem”关键字,还有一种是利用 单引号“”,例如:定义 a 为字符串变量 Rem 定义 a 为字符串变量 以上两句的作用是一致的,但 Rem 语句必须单独占一行。11、变量 变量应该先声明后使用。VB 中变量声明的方法是:Dim As 例如,Dim N As Integer 声明变量 N 为整型 还可以在一行中定义多个变量,如:Dim dtmBeginTime As Date,dtmEndTime As Date Dim a,b,c As integer 变量名可以简单地用 i、j、k 等单个字母表示,也可以包含比较复杂的信息描述,如 intTimeCost 和 intWordCount,表示打字所花时间和输入的字符数。尽管变量命名可 以有很大范围的自由度,但是还必须遵守以下几个约定:1.必须以字母或汉字开头,而不能以数字或其他字符开头。2.只能由字母、汉字、数字和下画线组成,不能含有小数点、空格等字符。3.字符个数不超过 255 个。4.变量名不能使用 VB 中的保留字。如 Print、Sub、End 等 5.VB 不区分变量名中字母的大小写。如 HELLO 和 Hello 是同一个变量。6.为增加程序的可读性,变量名最好取有意义的名称,建议前面加上类型缩写,如 strA。12、常量 如果程序中多次用到同一个常量,往往用一个有意义的符号表示,这种常量称为符号精品资料 可编辑修改 常 量;代表常量的符号称为“常量名”,其定义形式如下:Con st 常量名As 类型=表达式 如:Const PI=3.1415926 Const strA=abcde 13、数据类型-4。的盈州鹫型 取他趁国 整型 liucucr-32768-32767 -Zi474S64S 214748S647 草輔度型 Single 血 ft:-3.402823E38-I.401298E 一 45 ift:1.401298E 一 45-3.4O2823L38 理椿厘型 Double M ft:L7976134E10S-一 4.940656458E 一 i24 正耗:454(Mi5fi45Hh-324,7V7fi93)34H3fiS Stnug 宅戕字将仁0-65535 不立长字特皋:0 20忆+字捋 苇岔型 BtKJcfin rut 或 Eal就 日期型 ate 10(1 L 1 9999.1231 整型、长整型、单精度和双精度都属于数值型,它们表示数值的范围是不同 的。其中,单精度和双精度又合称为浮点型。字符串型数据是指用括起来的一串字符。女卩欢迎进入VB世界!、Visual Basic 1234 都是字符串类型。文本框里输入的是字符串类型。布尔型又称逻辑型,常用于表示逻辑判断的结果,如“真/假”、“是/非”等,其值为True或False,分别表示逻辑真和逻辑假。VB中也常用数值0表 示假值,一 1表示真值。日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的 精品资料 可编辑修改 值括起来,如#2003/08/20#表示2003年8月20日。14、常用函数(1)常用数学函数 精品资料 可编辑修改 函数 功能 实例 结果 Abs(x)求 x 的绝对值 Abs(-4.6)4.6 Sqr(x)求 x 的平方根 Sqr(9)3 Si n(x)求 x 的正弦值 Sin(30*3.14/180)0.499770102643102 Cos(x)求 x 的余弦值 Cos(30*3.14/180)0.866158094405463 Ta n(x)求 x 的正切值 Ta n(60*3.14/180)1.72992922008979 Atn(x)求 x 的反正切值 4*At n(1)3.14159265358979 Exp(x)求指数函数 ex Exp(2.0)7.38905609893065 Log(x)求 x 的自然对数值 Log(10)2.30258509299405 In t(x)取整数函数 In t(99.8)99 Rn d(x)产生 01 之间(不 包括1)的随机数 Rnd()返回一个随机数 要产生a,b区间范围内的随机整数,可以使用公式:如:要产生10,100区间的随机整数,可以使用公式 in t(b-a+1)*rnd+a)。例 in t(91*rnd+10)获得。精品资料 可编辑修改 用数学函数时需要注意以下几点(1)三角函数中的参数应是弧度数,如数学中 sin30。应写为:sin(30*3.14159/180)(2)Rnd函数返回0,1)(即包括0,但不包括1)之间的一个随机数,它往 往和Randomize 结合使用。如果我们班有54名同学开联欢会,要编程抽取一 名幸运同学,可以用以下代码求得:Private Sub cmdOk _ Click()Randomize 初始化随机数生成器 Label1.C aptio n=幸运同学的学号为:&Int(Rnd*54)+1)End Sub(2)常用字符串函数 函数 功能 实例 结果 Len(字符串)求字符串的长度 Len(2008 奥运)6 Left(字符串,截取长度)截取字符串左边部分 Left(2008 奥运,4)2008 Mid(字符串,起始位置,截取长度)从中间指定位置截取字符串 Mid(2008 奥 运,3,2)08 Right(字符串,长度)截取字符串右边部分 Right(2008 奥运,2)奥运 String(数值,字符)生成指定长度 与指定字符的字符 串 Stri ng(3,9)999 (3)常用转换函数 函数 功能 实例 结果 精品资料 可编辑修改 Val(字符串)将字符串转换 为数值 2+Val(12”)14 Str(数值)将数值转为字符串 Str(5)5 1 Chr(字符代码)求字符代码对应的字符 Chr(65)A Asc(字符)求字符对应的字符代码 Asc(A)65 Cint(表达式)将表达式的结果转换 为整 数,小数部分四舍五入 Cint(3.14259*2)6 Fix 返回数的整数部分 Fix(-3.6)-3 15、(1)算术类基本运算 基本运算 运算符 优先级 表达式 表达式的值 乘幕 A 1 5A2 25 取负-2-a a的相反值 乘法*3 3*2.5 7.5 实数除法/3 3/2 1.5 整数除法 4 32 1 求余数 Mod 5 8 Mod 5-7 Mod 3 3-1 加法+6 2+3 5 减法-6 3-1 2 (2)关系类基本运算:=、=、=(7级)(3)逻辑类基本运算:Not(8级)、And(9级)、Or(10级)16、程序的基本结构(1)选择(分支)结构精品资料 可编辑修改 IF 条件 THEN 语句一 ELSE IF 条件 THEN 语句二 ELSE 语句三 END IF IF 条件 THEN 语句 如:If n Mod 5=0 Then Print IF 条件 THEN 语句一 ELSE 语句二 女口:If a 0 Then s=a 八 2 Else s=a*2(2)循环结构 For 语句语法格式 精品资料 可编辑修改 For 循环变量=初值 To 终值 Step 步长 语句块 Next 循环变量 步长是循环变量的增量,其值可以是正数(递增循环)或负数(递减循环)但不能是 0。如果步长为 1,则可以连同保留字 Step 略去不写。初值、终值、步长都必须是整数。执行 next 之后,循环变量的值都会增加一个步长的值。计数器:n=n+1 累加器:s=s+n 在某些情况下,循环的次数无法预先知道,但已知在什么条件下应该循环。这时,使用 Do 语句来描述这样的循环比较合适。Do 语句的一般格式如下:Do While 条件表达式 语句块 精品资料 可编辑修改 Loop精品资料 可编辑修改 F列两段程序结果是相同的,请注意两处不同:s=0 s=0:i=1 Fori=1 To 10 Do While i=10 s=s+i s=s+i Next i i=i+1 Pri nt s Loop Print s (3)顺序结构 代码是按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,我 们把这种结构称为顺序结构。如:c=a a=b b=c 17、循环的嵌套(1)通常,把循环体内不再包含其他循环的循环结构称为单层循环。精品资料 可编辑修改 (2)在处理某些问题时,常常要在循环体内再进行循环操作,这种情况称为多重循环,又称为循环的嵌套。如二重循环、三重循环等。(3)多重循环的执行过程是,外层循环每执行一次,内层循环就要从头开始执行 一轮,如:for i=1 to 9 for j=1 to 9 print i*j next j next i 在以上的双重循环中,外层循环变量 i 取 1 时,内层循环就要执行 9 次;接 着,外层循环变量I 取 2,内层循环同样要重新执行 9 次所以,循环共执行了 9 X 9 次,即 81 次。18、数组变量 数组是由一批同类型的变量构成的一个序列,组成数组的每一个变量被称为数组 的元素,也称为下标变量,下标是一个整数,用来指出某个元素在数组中的位置。Visual Basic 6.0 中所有使用的数组在引用前,必须先声明。一维数组 的声明包括数组变量的定义、数组的元素个数和元素的数据类型。其格 式为:(1)Dim 数组变量名(元素个数)As 数据类型(2)Dim 数组变量名(下界 to 上界)As 数据类型 二维数组变量定义的常用形式为:(3)Dim 数组变量名(下界 to 上界,下界 to 上界)As 数据类型 例 1:Dim S(2)As Integer 定义一维数组S,有3个元素,分别为S(0),S(1),S(2),它们都是整型的。精品资料 可编辑修改 例 2:Dim M(2,3)As Single 定义二维数组 M,数组有 3*4 个元素,分别为:M(0,0)M(0,1)M(0,2)M(0,3)M(1,0)M(1,1)M(1,2)M(1,3)M(2,0)M(2,1)M(2,2)M(2,3)数组下标的下界一般默认为 0,而用户也可以根据需要自行定义上、下界。例如:Dim A(3,1 To 6)定义二维数组,第1维的下标为0-3,第2维的下标为1-6 例如:Dim A(1 To 3,2 To 6)定义二维数组,第1维的下标为1-3,第2维的下标为2-6 例 1、使用键盘给每个元素输入数据。其基本语句为 Dim a(10)As In teger For i=1 to 10 a(i)=val(l nputBox(“请输入第”&I&个元素”)Next i 例 2、以每行 10 个元素输出 For i=1 to n Print a(i);If i mod 10=0 Then Print Next i 19、算法:(1)枚举算法:或称穷举法,根据问题的本身性质,一一列举出该问题所有可 能的情况,并根据题目的条件逐一验证,从中挑选出符合条件的解 如上面的例子的解决过程:精品资料 可编辑修改 列举所有可能的解:25006,25016,25026,25986,25996 逐一验证:能不能被 37 或者 67 整除?能整除的输出。涂抹数字及求水仙花数等均采用此算法。(2)解析算法 用解析的方法找出问题的前提条件与所求结果之间关系的数学表达式,并通 过数学表达式 的计算来实现问题的求解。求一元二次议程的实根、求三角形面积及求总电阻值等都属此算法。