《算法与程序设计VB(选修)》复习知识点.doc_第1页
《算法与程序设计VB(选修)》复习知识点.doc_第2页
《算法与程序设计VB(选修)》复习知识点.doc_第3页
《算法与程序设计VB(选修)》复习知识点.doc_第4页
《算法与程序设计VB(选修)》复习知识点.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

高中信息技术算法与程序设计VB(选修)知识要点相关知识点(一)算法1.定义相关题解:算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构程序。2算法的描述方法:算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。1)自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。输入或输出判断处理或运算开始或结束2)流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。3)伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。(二)程序设计基础(1)常用高级编程语言:BASIC、VB、Pascal、C、C+、Java1、面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等2、控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。常用控件:控件对象的类型前缀名字举例窗体Formfrmfrmfind命令按钮Command buttoncmdcmdok标签Labellbllblinput文本框TextBoxtmrtmrClock若命令按钮(Command)的Enabled属性设置为True时按钮有效,设置为False时按钮无效3、对象的属性、方法和事件1)属性 属性Name设置对象的名称Caption决定控件中显示的内容(文字)Text决定窗体中文本框中显示的内容(初始为空白)Height决定控件高度Width决定控件宽度TOP决定控件的靠顶部位置Left决定控件的靠左边位置Font设置控件中字体格式BackColor设置控件背景色ForeColor设置控件的前景色BorderStyle设置控件的边框风格Alignment即标签文字对齐属性:(0)Left Justify时文本左对齐;(1)Right Justify时文本右对齐;设置为(2)Center时文本居中。AutoSize设置为False时输入控件Caption中文字超过控件宽度时超出部分被裁剪掉,设置为True时,控件可水平扩充,以适应控件Caption属性。Visible决定控件是否可见Enabled决定控件运行时是否有效对象.属性属性值对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下Txt123.text =”20”变量对象.属性如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下例:读取文本框“txt123”的“Text”属性的代码如下a = txt123.text2)方法对象.方法参数名表例:form.print ”欢迎使用”该语句使用print方法在form1窗体中显示字符串“欢迎使用”3)事件及事件驱动事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。事件过程的形式如下:Private Sub 对象_事件名( )(事件过程代码)End Sub一个简单的VB程序求圆的周长和面积Private Sub Command1_Click()Dim r As Single 定义r为单精度型Dim c As Single 定义c为单精度型Dim s As Single 定义s为单精度型r = Val(Text1.Text) 输入半径rc = 2 * 3.14159 * r 计算周长s = 3.14159 * r * r 计算面积Text2.Text = c 输出周长Text3.Text = s 输出面积End SubPrivate Sub Command2_Click()End 退出End Sub相关题解:一、常量:批在程序进行过程中不变的量在VB中一般分数值常量与字符常量两种数值常量:就是数学中说的常数,分整型常量和实型常量两种整型常量:即整数,指不带小数点的数值如1、0、-10、+35等都是合法的整数实型常量:即实数,指带小数点的数值。实型常量又分为定点数和浮点数两种。例:定点数:3.14159和-6.8,1.99浮点数:2E6、1E5、88E例:1.2345103 可表示为1.2345E3,字母E表示底数10浮点数就是数学上的科学计数法。字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例如:”China”、”Visual Basic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。二、变量:在程序执行过程中,其值可以改变的量称为变量变量命名注意要点:1、必须以字母开头,不能以数字或其他字符开头。2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。3、最长不超过255个字符4、不能以VB保留字作变量名,如语句定义符、函数名等。5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。数据及运算(1)常用数据类型:(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double、(字符串型)String、(布尔型)Boolean、(日期型)Date其中(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double属于数值型表示范围:(整型)Integer (-32768 32767,存储为 16 位 , 2 个字节)(长整型)Long(-21亿 21亿,可以表示人口数量)(布尔型)Boolean(True 真、是 或 False假、非)(字符串型)String(定长字符串:065535个字符,不定长字符串:020亿个字符) 字符串型数据是指用 “ ”括起来的一串字符。如“欢迎进入VB世界!”、“ Visual Basic” 、“1234 ”都是字符串类型。(日期型)Date(100/1/19999/12/31) 日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的值括起来,如#2003/08/20#表示2003年8月20日。(2)常量和变量的命名、声明及赋值符号常量的声明:Const 常量名 As 常量类型 = 常量值如:Const pi As Single = 3.14159 常量名为pi变量的声明:Dim As 如:Dim a As Integer 定义一个整型变量,变量名为a变量的赋值VB中使用Let语句给变量赋值,其形式如下:Let 变量 = 表达式其中,方括号表示这部分内容是可选的,通常可以省略该关键字。例题Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Dim str As String Let a = 54 Let b = 114 c = a + b str = Hello World Print a=; a, b=; b, c=; c Print strEnd Sub数据的输出程序中运算得到的结果,除可以使用文本框和标签显示外,对于大批量的数据更适合用Pint方法输出,格式如下对象 . Pint 表达式列表例题:Private Sub Form_Click() Dim x As Single, y As Single Form1.Print -61; -34 Form1.Print 9 * 2; 12 Form1.Print This is; a book x = 3: y = 4 Print x=; x, y=; yEnd Sub注意:Print 方法运算符1、 算术运算:+ 加 - 减 *乘 指数 例:22 = 4/ (浮点)除 例:5 / 2 = 2.5 整除 例: 5 2 = 2Mod 求余数 例:5 Mod 2 = 1关系运算=赋值、小于号不等于大于号=大于等于号 2 结果为 True(真或是)逻辑运算Not(取反)And(与) Or(或)运算结果为布尔型(Boolean)True 或 False逻辑运算符的优先级为:No And Or日期运算符与日期表达式日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式“#2003/09/01# +30”的运算结果是“2003-10-1”;表达式“#2003/10/20# - #2003/10/10#”的运算结果为整数10字符运算字符串连接符为“+”和“&”“123” + “45” = “12345”“123” & “45” = “12345”123 + “45” = 168“123” + 45 = 168运算符的执行顺序在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。不同性质的运算符优先级如下。算术运算符 字符串运算符 关系运算符 逻辑运算符常用函数数学函数Abs(x) 求x 的绝对值,例:abs(-3.6) = 3.6Sqr(x) 求 x 的平方根,例:sqr(100) = 10Int(x)求x的最大整数 例:int(3.6) = 3 int(-3.6) = -4Rnd(x)产生0,1)之间的随机数(不包括1)Sin(x)Cos(x)Tan(x)Atn(x)Exp(x)Log(x)使用三角函数时,参数应是弧度,如数学中sin300应写为:sin(30*3.14159/180)字符串函数Len(字符串) 求字符串的长度 ,例:Len(“hello”) = 5Left(字符串,截取长度) 截取字符串左边部分,例:Left(“hello”,2) = “he”Mid(字符串,起始位置,截取长度) ,例:Mid(“hello”,2,2) = “el”其他:Right (字符串,长度)截取字符串右边部分。例: Right (“hello”,2) = “lo” String(数值,字符)生成指定长度与指定字符的字符串,例:String(3,”9”) = ”999”常用转换函数Val(字符串) 将字符串转换为数值Str(数值) 将数值转换为字符串Chr(字符代码)Asc(字符)Tab定位函数的使用例题Private Sub Form_Click() Dim a As Integer Dim b As Integer a = 4: b = 9 Print Tab(1); 数; Tab(9); 平方; Tab(18); 立方; Tab(27); 平方根 Print Tab(1); a; Tab(9); a * a; Tab(18); a * a * a; Tab(27); Sqr(a) Print Tab(1); b; Tab(9); b * b; Tab(18); b * b * b; Tab(27); Sqr(b)End Sub用户交互函数VB提供InputBox( )和MsgBox( )函数用于人机交互InputBox( )其语法格式为:InputBox( 提示,标题,默认值,X坐标,Y坐标)MsgBox( ) 其语法格式为:MsgBox(提示信息,按钮,标题 )( 三 )程序设计的顺序结构程序设计的顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。例题:交换两个变量中的数据。Private Sub cmdSwap_Click() Dim x As Single, y As Single Dim m As Single x = Val(txtsx.Text) y = Val(txtsy.Text) m = x: x = y: y = m 交换数据 txtdx.Text = Str(x) txtdy.Text = Str(y)End SubPrivate Sub cmdEnd_Click() EndEnd Sub程序设计的分支结构行If语句行If是指在一行中写完的If语句。其一般格式为:格式一:If条件Then语句执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句格式二:If条件 Then 语句 1 Else 语句 2例题:输入三个不相同的数,求出其中最小数。Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim Min As Single a = InputBox(输入a, 输入框) b = InputBox(输入b, 输入框) c = InputBox(输入c, 输入框) If a b Then Min = a Else Min = b If c = 60 ThenLabel1.Caption = 及格 End IfIf a 0时,y=4x+1)。Private Sub Form_Click()Dim x As SingleDim y As Singlex = Val(InputBox(请输入变量x)If x = 0 Then y = 3 * x + 1Else y = 4 * x + 1End IfPrint y=; yEnd Sub程序设计的循环结构一、For-Next循环For循环变量一般形式是:For循环变量=初值To终值Step循环变量增量 循环体Nxt循环变量例题1:求s1+2+3+4.+100Private Sub Form_Click() Dim i As Integer Dim sum As Integer sum = 0 For i = 1 To 100 sum = sum + i 循环体 Next i Print sum=; sumEnd Sub例题2:Step循环变量增量Private Sub Form_Click()For j = 3 To 15 Step 2Print jNext jEnd Sub循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为11、 循环变量取初值;2、 循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;3、 执行一次循环体4、 循环变量增加一个增量5、 重复步骤24。以上可以看出,For-Next循环变量是一种当型循环。说明(a) For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。(b) 当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。二、DoLoop循环For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环格式一:Do While 条件循环体Loop例题:求最大公约数Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim r As Integer a = Val(Text1.Text) b = Val(Text2.Text) r = a Mod b Do While r 0 a = b b = r r = a Mod b Loop Text3.Text = Str(b)End SubPrivate Sub Command2_Click() EndEnd Sub当VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。格式二: Do 循环体Loop Until条件这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。Private Sub Form_Click() Dim p As Single Dim r As Single Dim n As Integer p = 1230000000# r = 0.015 n = 0 Do p = p * (1 + r) n = n + 1 Loop Until p = 1500000000# Print n; 年后, 人口=; pEnd Sub(四)算法与问题解决1、解析法2、穷举法3、递归法4、排序与查找数据一、穷举算法及程序实现枚举算法基本思想是根据问题本身的性质,一一列举出该问题所有可能的情况,并根据题目的条件逐个作出判断,从中挑出符合要求的解。枚举算法属于搜索策略,适用于解变量确定的连续值域的问题。设计枚举算法时要在尽可能小的范围内罗列出所有可能的情况,不能遗漏,也不能重复。例:假如我有一个QQ的密码是一位数字,如果让同学们来破解的话,会把0到9十个数字都试一遍,找到密码,这种方法使用的算法就是枚举算法。枚举算法解题的主要方法,必须把所有的可能情况都一一列出来,这种可能情况,一般通过循环列举出来。例如一份单据被抹除的数字的推算问题。可能的情况有25006至25996一共100种,通过循环把这一百种情况全部列出来,在循环列出来的过程对,对每一种情况进行比较,是否符合要求。n=25006+j*100,j的范围为0至99,此处列出来的表达式只有一个未知数j,所以只需用一重循环就够了。DO循环c=0 如果需要统计符合要求的单据的张数的话,用c做计数器j=0do while j100 j的范围是0至99,此处也可写成j=99 n=25006+j*100 通过j把单据的所有的可能情况列出来 if n mod 37=0 or n mod 67=0 then 判断是否符合要求 print n 通过判断把符合要求的单据的值输出 c=c+1 符合要求的单据加一张 end if j=j+1 j每次增加1直到99 loopFOR循环c=0 如果需要统计符合要求的单据的张数的话,用c做计数器For j=0 to 99 一重循环,把j所有可能情况列出来 n=25006+j*100 通过j把单据的所有的可能情况列出来 if n mod 37=0 or n mod 67=0 then 判断是否符合要求 print n 通过判断把符合要求的单据的值输出c=c+1 符合要求的单据加一张 end ifNext j在for循环中不需要j=j+1,因为for循环j的值每次会自己增加步长,此处步长省略没写,即表示步长为1,所以j每次会自动增加1。例如玩具装盒问题:小盒最多装5个,大盒最多装12个,1200个玩具多少种装法。设小盒为x个,则x的范围是:0至240;设大盒为y个,则y的范围是:0至100要求符合的条件为5*x+12*y=1200,此处有两个未知数x、y,所以的用二重循环(三个未知数即用三重、四个未知数即用四重循环)DO循环c=0:x=0:y=0do while x=240 第一重循环,x的范围是0至240 do while y=100 第二重循环,y的范围是0至100n=5*x+12*y 通过x,y把所有的可能装法情况列出来 if n=1200 then 判断是否符合要求(5*x+12*y=1200) print x,y 通过判断把符合要求的装法情况输出 c=c+1 符合要求的装法增加一次 end if y=y+1 y每次增加1直到100 loop 第二重循环结束 x=x+1 x每次增加1直到240loop 第一重循环结束FOR循环c=0for x=0 to 240 第一重循环,x的范围是0至240for y=0 to 100 第二重循环,y的范围是0至100n=5*x+12*y 通过x,y把所有的可能装法情况列出来 if n=1200 then 判断是否符合要求(5*x+12*y=1200) print x,y 通过判断把符合要求的装法情况输出 c=c+1 符合要求的装法增加一次 end ifnext y 第二重循环结束next x 第一重循环结束同样在for循环中也不需要x=x+1、y=y+1,因为for循环x、y的值每次会自己增加步长,此处步长省略没写,即表示步长为1,所以x、y每次会自动增加1。二、解析算法及程序实现是指用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。例:同学们在数学的应用题中、物理、化学的计算题中通过理解题意得出表达式,再通过计算得到答案,所使用的算法就是解析算法。解题方法:主要是要得出前提条件与所求结果之间关系的数学表达式,并且在程序中这个数学表达式必须符合VB格式。储蓄问题,不考虑复利,年利率2.8%,M元钱需存多少年,才能得到K元本息?设需要y年,根据题意得出的数学表达式为:y=,但是在VB中表达式必须符合VB语法:y=(k-m)/(0.028*m),流程图及程序实现略。三、冒泡排序算法及程序实现冒泡排序的基本思想是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工(一趟冒泡)。当第一遍加工完成时,最小的数据已经上升到第一个元素的位置。然后对余下的n-1个元素重复上述过程,直至最后进行余下两个数据的比较和交换。冒泡排序算法举例 设有数列 65,13,76, 27,49第1趟比较第1次 65,13,76, 27,49不需要交换第1趟比较第2次 65,13,76, 27,4976,27交换第1趟比较第3次 65,13,27, 76,49不需要交换第1趟比较第4次 65,13,27, 76,4965,13交换第1趟结束:13,65,27,76,49 第1趟比较4次,交换2次第2趟比较第1次:1365,27,76,4976,49交换第2趟比较第2次:1365,27,49,76不需要交换第2趟比较第3次:1365,27,49,7665,27交换第2趟结束:13,27,65,49,76 第2趟比较3次,交换2次第3趟比较第1次:13,2765,49,76不需要交换第3趟比较第2次:13,2765,49,7665,49交换第3趟结束:13,27,49c65,76 第3趟比较2次,交换1次第4趟比较第1次:13,27,4965,76不需要交换第4趟结束:13,27,49,65,76 第4趟比较1次,没有交换5个元素的数据系列,一共冒泡了4趟,分别比较次数为4、3、2、1,交换次数根据实际情况确定。所以可以总结出,n个元素的数组系列通过冒泡排序,需要经过n-1趟冒泡,总的比较次数为:(n-1)+(n-2)+(n-3)+1=次。两个元素中的数据交换一般需要通过第三个变量来进行D(1)=5:D(2)=8交换的过程为:T=D(1)D(1)=D(2)D(2)=T流程图:冒泡排序的程序实现:通过例子我们知道,5个元素的数据系列,一共冒泡了4趟,分别比较次数为4、3、2、1。所以在程序设计中,我们通过循环来进行控制,需要两重循环,大循环控制冒泡了4趟:For i=1 to 4 Next i小循环控制每趟冒泡比较的次数:For j=5 to i(i的值根据大循环分别为1到4)Next i所以小循环是在大循环里面的通过判断if d(j)d(j-1)来控制是否需要交换程序主体部份如下:For i=1 to n-1 For j=n to I step -1 If d(j)d(j-1) then T=d(j) D(j)=d(j-1) D(j-1)=t End if Next jNext i四、查找算法及程序实现1顺序查找顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若某个数据和给定值相等,则查找成功,找到所查数据的位置;反之,查找不成功。流程图: d(1)=65;d(2)=97;d(3)=76;d(4)=13;d(5)=27;d(6)=49;d(7)=58查找key=49程序实现:For i=1 to 7If d(i)=key then 输出找到是第d(i)个 Exit forEnd ifNext i2对分查找对分查找及二分法查找,其基本思想是在有序的数据列中,首先将要查找的数据与有序数组内处于中间位置的数据进行比

温馨提示

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

评论

0/150

提交评论