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

下载本文档

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

文档简介

■Tim^niaBBBarniHiFrBBrraBr■■rnarraaJh~Kirtl'■t-超JJLfW7■Tim^niaBBBarniHiFrBBrraBr■■rnarraaJh~Kirtl'■t-超JJLfW7赋值号■*濂程线3)伪代码描述法:是f迪变dm趟翌一7高中信息技术《算法与程序设计VB(选修)》知识要点相关知识点(一)算法定义相关题解:算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”算法+数据结构二程序。2.算法的描述方法:算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。1) 自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。2) 流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 >输入豔出框 >判断框…*处理框员常用方法。(二)程序设计基础

(1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java1、 面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等2、 控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮常用控件:控件对象的类型前缀名字举例窗体Formfrmfrmfind命令按钮Commandbuttoncmdcmdok标签Labellbllblinput文本框TextBoxtmrtmrClock若命令按钮(Command)的Enabled属性设置为True时按钮有效,设置为False时按钮无效3、对象的属性、方法和事件1)属性属性Name设置对象的名称Caption决定控件中显示的内容(文字)Text决定窗体中文本框中显示的内容(初始为空白)Height决定控件高度Width决定控件宽度TOP决定控件的靠顶部位置Left决定控件的靠左边位置Font设置控件中字体格式BackColor设置控件背景色ForeColor设置控件的前景色BorderStyle设置控件的边框风格Alignment即标签文字对齐属性:(0)LeftJustify时文本左对齐;(l)RightJustify时文本右对齐;设置为(2)Center时文本居中。AutoSize设置为False时输入控件Caption中文字超过控件宽度时超出部分被裁剪掉,设置为True时,控件可水平扩充,以适应控件Caption属性。Visible决定控件是否可见Enabled决定控件运行时是否有效对象•属性=属性值对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下例:给文本框“Txtl23”的“Text”属性赋值为字符串“20”,代码如下Txt123.text=”20”变量=对象.属性如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下例:读取文本框“txt123”的“Text”属性的代码如下a=txtl23.text2)方法[对象].方法[参数名表]例:form.print”欢迎使用”该语句使用print方法在form1窗体中显示字符串“欢迎使用”事件及事件驱动事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。事件过程的形式如下:PrivateSub对象_事件名()……………(事件过程代码)EndSub一个简单的VB程序求圆的周长和面积PrivateSubCommand1_Click()DimrAsSingle'定义r为单精度型DimcAsSingle'定义c为单精度型DimsAsSingle'定义s为单精度型r=Val(Textl.Text)'输入半径rc=2*3.14159*r'计算周长s=3.14159*r*r'计算面积Text2.Text=c '输出周长Text3.Text=s '输出面积EndSubPrivateSubCommand2_Click()End '退出EndSub相关题解:一、 常量:批在程序进行过程中不变的量在VB中一般分数值常量与字符常量两种数值常量:就是数学中说的常数,分整型常量和实型常量两种整型常量:即整数,指不带小数点的数值如1、0、、-10、+35等都是合法的整数实型常量:即实数,指带小数点的数值。实型常量又分为定点数和浮点数两种。例:定点数:3.14159和-6.8,1.99浮点数:2E6、1E5、88E例:1.2345X103可表示为1.2345E3,字母E表示底数10浮点数就是数学上的科学计数法。字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例如:”China”、”VisualBasic”、”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(定长字符串:0——65535个字符,不定长字符串:0——20亿个字符)字符串型数据是指用“”括起来的一串字符。如“欢迎进入VB世界!”、“VisualBasic”、“1234”都是字符串类型。(日期型)Date(100/1/1——9999/12/31)日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的值括起来,如#2003/08/20#表示2003年8月20日。(2)常量和变量的命名、声明及赋值符号常量的声明:Const常量名[As常量类型]=常量值如:ConstpiAsSingle=3.14159常量名为pi变量的声明:Dim<变量名>As<变量类型>如:DimaAsInteger定义一个整型变量,变量名为a变量的赋值VB中使用Let语句给变量赋值,其形式如下:[Let]变量=表达式其中,方括号[]表示这部分内容是可选的,通.常.可.以.省.略.该.关.键.字.。.例题PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerDimstrAsStringLeta=54Letb=114c=a+bstr="HelloWorld"Print"a=";a,"b=";b,"c=";cPrintstrEndSub数据的输出程序中运算得到的结果,除可以使用文本框和标签显示外,对于大批量的数据更适合用Pint方法输出,格式如下[对象].Pint[表达式列表]例题:PrivateSubForm_Click()DimxAsSingle,yAsSingleForm1.Print-61;-34Form1.Print9*2;12Form1.Print"Thisis";"abook"x=3:y=4Print"x=";x,"y=";yEndSub注意:Print方法运算符人指数例:2八2=4/(浮点)除例:5/2=2.5\整除例:5\2=2Mod求余数例:5Mod2=1关系运算=赋值<小于号<> 不等于>大于号>= 大于等于号<号=小于1、算术运算:加--减+注意:关系表达式的运算结果为布尔值True或False*乘等于号例:3>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)求冬乂的最大整数例:int(3.6)=3 int(--3.6)=--4Rnd(x)产生[0,1)之间的随机数(不包括1)Sin(x)Cos(x)Tan(x)Atn(x)Exp(x)Log(x)使用三角函数时,参数应是弧度,如数学中sin30o应写为:sin(30*3・14159/180)字符串函数Len(字符串)求字符串的长度,例:Len(“hello”)=5Left(字符串,截取长度)截取字符串左边部分,例:Left(“hello”,2)=“he”Mid(字符串,起始位置,截取长度),例:Mid(“hello”,2,2)=“el”其他:Right(字符串,长度)截取字符串右边部分。例:Right(“hello”,2)=“lo”999”String(数值,字符)生成指定长度与指定字符的字符串,例:String(3,”9”)=999”常用转换函数Vai(字符串)将字符串转换为数值Str(数值)将数值转换为字符串Chr(字符代码)Asc(字符)Tab定位函数的使用例题PrivateSubForm_Ciick()DimaAsIntegerDimbAsIntegera=4:b=9PrintTab(1);"数";Tab(9);"平方";Tab(18);"立方";Tab(27);"平方根"PrintTab(1);a;Tab(9);a*a;Tab(18);a*a*a;Tab(27);Sqr(a)PrintTab(1);b;Tab(9);b*b;Tab(18);b*b*b;Tab(27);Sqr(b)EndSub用户交互函数VB提供InputBox()和MsgBox()函数用于人机交互InputBox()其语法格式为:InputBox(提示[,标题][,默认值][正坐标][,Y坐标])MsgBox()其语法格式为:MsgBox(提示信息[,按钮][,标题])(三)程序设计的顺序结构程序设计的顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。例题:交换两个变量中的数据。PrivateSubcmdSwap_Click()DimxAsSingle,yAsSingleDimmAsSinglex=Val(txtsx.Text)y=Val(txtsy.Text)m=x:x=y:y=m '交换数据txtdx.Text=Str(x)txtdy.Text=Str(y)EndSubPrivateSubcmdEnd_Click()EndEndSub程序设计的分支结构行If语句行If是指在一行中写完的If语句。其一般格式为:格式一:If条件Then语句执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句格式二:If条件Then语句1Else语句2例题:输入三个不相同的数,求出其中最小数。PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSingleDimMinAsSinglea=InputBox("输入a","输入框")b=InputBox("输入b","输入框")c=InputBox("输入c","输入框")Ifa<bThenMin=aElseMin=bIfc<MinThenMin=cPrint"最小数=";MinEndSub执行这种形式的语句时,先进行判断。若条件成立,则执行语句1;否则执行语句2。块If语句上述If-then语句只能根据条件的真假是否执行一条语句,当Then部分和Else部分包含的内容较多时,则可选用“块If语句”结构。格式三:f条件Then语句块EndIf例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。PrivateSubCommand1_Click()DimaAsSinglea=Val(Text1.Text)Ifa>=60ThenLabel1.Caption="及格"EndIfIfa<60ThenLabel1.Caption="不及格"EndIfEndSub格式四:If条件Then语句块1Else语句块2EndIf例题:编写程序,求函数Y的值(当xW0时,y=3x+l;当x>0时,y=4x+l。PrivateSubForm_Click()DimxAsSingleDimyAsSinglex=Val(InputBox("请输入变量x"))Ifx<=0Theny=3*x+1Elsey=4*x+1EndIfPrint"y=";yEndSub程序设计的循环结构一、For-Next循环For循环变量一般形式是:For循环变量=初值To终值Step循环变量增量循环体Nxt循环变量例题1:求s=1+2+3+4・・・・・+100PrivateSubForm_Click()DimiAsIntegerDimsumAsIntegersum=0Fori=1To100sum=sum+i'循环体NextiPrint"sum=";sumEndSub例题2:Step循环变量增量PrivateSubForm_Click()Forj=3To15Step2PrintjNextjEndSub循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为11、 循环变量取初值;2、 循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;3、 执行一次循环体4、 循环变量增加一个增量5、 重复步骤2~4。以上可以看出,For-Next循环变量是一种当型循环。说明For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。二、Do—Loop循环For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环格式一:DoWhile条件循环体Loop例题:求最大公约数PrivateSubCommand1_Click()DimaAsIntegerDimbAsIntegerDimrAsIntegera=Val(Text1.Text)b=Val(Text2.Text)r=aModbDoWhiler<>0b=rr=aModbLoopText3.Text=Str(b)EndSubPrivateSubCommand2_Click()EndEndSub当VB执行DoWhile-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。格式二:Do循环体LoopUntil条件这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检査条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。PrivateSubForm_Click()DimpAsSingleDimrAsSingleDimnAsIntegerp=1230000000#r=0.015n=0Dop=p*(1+r)n=n+1LoopUntilp>=1500000000#Printn;"年后","人口=";p

EndSub(四)算法与问题解决1、解析法2、穷举法3、递归法4、排序与查找数据一、穷举算法及程序实现枚举算法基本思想是根据问题本身的性质,一一列举出该问题所有可能的情况,并根据题目的条件逐个作出判断,从中挑出符合要求的解。枚举算法属于搜索策略,适用于解变量确定的连续值域的问题。设计枚举算法时要在尽可能小的范围内罗列出所有可能的情况,不能遗漏,也不能重复。例:假如我有一个QQ的密码是一位数字,如果让同学们来破解的话,会把0到9十个数字都试一遍,找到密码,这种方法使用的算法就是枚举算法。枚举算法解题的主要方法,必须把所有的可能情况都一一列出来,这种可能情况,一般通过循环列举出来。例如一份单据被抹除的数字的推算问题。可能的情况有25006至25996一共100种,通过循环把这一百种情况全部列出来,在循环列出来的过程对,对每一种情况进行比较,是否符合要求°n=25006+j*100,j的范围为0至99」此处列出来的表达式只有一个未知数i,所以只需用一重循环就够了。j-J+1n—25006+j*10是37的倍数或j-J+1n—25006+j*10是37的倍数或n是6?的教?/输岀:计数鞭C的僖/j从0至夕乡每决憎加7,把所韦楕况列出

DO循环c=0 „如果需要统计符合要求的单据的张数的话,用c做计数器j=0dowhilej〈100 „j的范围是0至99,此处也可写成j〈=99n=25006+i*100'通过j把单据的所有的可能情况列出来ifnmod37=0ornmod67=0then „判断是否符合要求printnc=c+l„printnc=c+l„符合要求的单据加一张endifi=i+l„j每次增加1直到99loopFOR循环c=0„如果需要统计符合要求的单据的张数的话,用c做计数器Forj=0to99'一重循环,把j所有可能情况列出来n=25006+i*100'通过j把单据的所有的可能情况列出来ifnmod37=0ornmod67=0then „判断是否符合要求printnc=c+l„printnc=c+l„符合要求的单据加一张endifNextj在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=0dowhilex〈=240„第一重循环,x的范围是0至240dowhiley〈=100'第二重循环,y的范围是0至100

n=5*x+12*y'通过x,y把所有的可能装法情况列出来fn=1200then„判断是否符合要求(5*x+12*y=1200)printx,y„通过判断把符合要求的装法情况输出c=c+1endif„符合要求的装法增加一次y=y+1„y每次增加1直到100loop„第二重循环结束x=x+1„x每次增加1直到240loop„第一重循环结束FOR循环c=0forx=0to240„第一重循环,x的范围是0至240fory=0to100'第一重循环,y的范围是0至100n=5*x+12*y'通过x,y把所有的可能装法情况列出来ifn=1200then„判断是否符合要求(5*x+12*y=1200)printx,y„通过判断把符合要求的装法情况输出c=c+1endif„符合要求的装法增加一次nexty„第二重循环结束nextx„第一重循环结束同样在for循环中也不需要x=x+1、y=y+1,因为for循环x、y的值每次会自己增加步长,此处步长省略没写,即表示步长为1,所以x、y每次会自动增加1。二、解析算法及程序实现是指用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。例:同学们在数学的应用题中、物理、化学的计算题中通过理解题意得出表达式,再通过计算得到答案,所使用的算法就是解析算法。解题方法:主要是要得出前提条件与所求结果之间关系的数学表达式,并且在程序中这个数学表达式必须符合VB格式。储蓄问题,不考虑复利,年利率2.8%,M元钱需存多少年,才能得到K元本息?k一m设需要y年,根据题意得出的数学表达式为:y= ,但是在VB中表达式必须符合VB0.028xm

语法:y=(k-m)/(0.028*m),流程图及程序实现略。三、冒泡排序算法及程序实现冒泡排序的基本思想是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工(一趟冒泡)。当第一遍加工完成时,最小的数据已经上升到第一个元素的位置。然后对余下的n-1个元素重复上述过程,直至最后进行余下两个数据的比较和交换。冒泡排序算法举例设有数列{65,13,76,27,49}第1趟比较第1次{65,13,76,2749}第1趟比较第1次{65,13,76,2749}不需要交换第1趟比较第2次{65,13,76,27,49}76,27交换第1趟比较第3次{65,1327,76,49}不需要交换第1趟比较第4次{65,13,27,76,49}65,13交换第1趟结束:{13,65,27,76,49}第1趟比较4次,交换2次第2趟比较第1次:{13}{65,27,7649}76,49交换第2趟比较第2次:{13}{65,2749,76}不需要交换第2趟比较第3次:{13}{6527,49,76}65,27交换第2趟结束:{13,27,65,49,76}第2趟比较3次,交换2次第3趟比较第1次:{13,27}{65,4976}不需要交换第3趟比较第2次:{13,27}{65^49,76}65,49交换第3趟结束:{13,27,49c65,76}第3趟比较2次,交换1次第4趟比较第1次:{13,27,49}{6576}不需要交换第4趟结束:{13,27,49,65,76}第4趟比较1次,没有交换5个元素的数据系列,一共冒泡了4趟,分别比较次数为4、3、2、1,交换次数根据实际情况确定。所以可以总结出,n个元素的数组系列通过冒泡排序,需要经过n-1趟冒泡,总的比较(n1)*n次数为:(n-1)+(n-2)+(n-3)+・・・+1= ㊁次。两个元素中的数据交换一般需要通过第三个变量来进行D(1)=5:D(2)=8交换的过程为:T=D(1)

D(2)=T流程图i*i+1D(2)=T流程图i*i+1Y9i—1rA¥j_血冒泡排序的程序实现:通过例子我们知道,5个元素的数据系列,一共冒泡了4趟,分别比较次数为4、3、2、1。所以在程序设计中工们通过循环来进行控制,需要两重循环,大循环控制冒泡了4趟:Fori=1to4Nexti小循环控制每趟冒泡比较的次数:Forj=5toi(i的值根据大循环分别为1到4)Nexti所以小循环是在大循环里面的通过判断ifd(j)<d(j-1)来控制是否需要交换程序主体部份如下:Fori=1ton-1Forj=ntoIstep-1Ifd(j)<d(j-1)thenT=d(j)D(j)=d(j-1)D(j-1)=tEndifNextjNexti四、查找算法及程序实现1.顺序查找顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若某个数据和给定值相等,则查找成功,找到所查数据的位置;反之,查找不成功。d(1)=65;d(2)=97;d(3)=76;d(4)=13;d(5)=27;d(6)=49;d(7)=58查找key=49程序实现:Fori=1to7Ifd(i)=keythen输出找到是第d(i)个ExitforEndif2.对分查找对分查找及

温馨提示

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

评论

0/150

提交评论