1、算法与程序设计复习纲要概要算法与程序设计复习纲要“算法与程序设计”是高中信息技术课程的选修模块,以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。学生通过本模块的学习能体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。现以标准中“算法与程序设计”部分的内容标准为依据制订以下考试内容: 软件环境:VB6.0 1.利用计算机解决问题的基本过程了解利用计算机解决问题的基本过程。计算机并非能帮助人类解决所有问题,但它能解决的问题的范围越来越多。需要解决的问题是否有明确的算法?需要处理的数据是
2、否都能数字化? 是计算机能否帮助我们解决该问题的前提。利用计算机解决问题的一般过程:“运行程序,验证结果”需要人工验证,计算机并不能帮我们验证,问题分析有遗漏或算法设计有错误或编写的程序与算法不一致,都将可能导致程序运行结果不正确,这时需要回过头来检查错误是发生在“分析问题”阶段?还是“设计的算法”有误?还是“编写的程序”与算法不一致?更正错误后,再运行,再验证,直到问题得到正确解决。因此上述流程能确保问题得到正确解决。了解问题分析与算法设计之间的关系。 问题分析是确定需要解决的任务的已知数据、需要输入什么数据、需要进行什么运算处理、需要输出什么结果? 算法设计是按计算机的工作机制设计出解决问
3、题的方法与步骤。了解算法的基本特征。算法具有以下特征:1)有穷性 2)确定性 3)可行性 4)有零个或多个输入数据 5)至少有一个输出结果能用自然语言、流程图或伪代码描述算法。算法的描述方法有三种:1)自然语言描述法 2)流程图描述法 3)伪代码描述法了解程序设计语言产生与发展过程。书P11认识程序设计语言:机器语言是计算机唯一能直接识别(理解)、执行的语言,所有指令都用二进制代码表示,同样的指令,如加运算在不同类型的CPU上,可能用不同的二进制代码表示,所以机器语言与计算机的硬件紧密相关。如8086系列指令系统、Z80指令系统等。所有参加运算的数据也都用二进制表示,称为指令的操作数。这种语言
4、的缺点是:不好学、不好记忆、机器语言程序不好修改,因与硬件关系密切,程序不好移植。优点是:程序的执行效率最高。汇编语言是机器语言的符号化,汇编语言编写的程序电脑并不能直接识别,需要编译或解释转换为及其语言,电脑才能执行。这种语言的优点是:比机器语言好记忆,移植性较好,执行效率还不错。缺点是:尽管比机器语言好记忆,但普通人还是不好学、好用。机器语言和汇编语言同属“低级语言”。是相对高级语言而言。 高级语言:比较接近自然语言,好学、好用,编写的程序同样需要编译或解释电脑才能执行。常用的高级语言有:C/C+语言、Pascal、Basic、Cobol、Java、Fortran、Visual Basic
5、等。2.程序设计基础能够使用可视化程序开发工具设计简单的用户界面。Visual Basic语言提供了美观、友好的开发界面,通过视图菜单,能个性化定制用户界面,主要包括;系统菜单栏、工具栏、工程管理器、窗口设计区、对象(控件)属性窗口、代码窗口、常用工具箱(常用控件)、布局窗口等。用可视化、形象化的图像表示抽象化的控件对象,编程设计工作形象直观。知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型。数字化数据有不同类型,在Vb6.0中,主要的数据类型有:Integer(整型),数值区间:-32768到32767间的整数Long(长整型),数值区间:-2147483648到21474
6、83647间的整数Single(单精度),数值区间:见书本P21Double(双精度),参见书本P21String(字符串型), 指所有用双引号(半角)括起来的文字符号。Boolean(布尔型),也叫逻辑型,这种类型的数据只有两个,一个是True,另一个是False。Date(日期型),这种类型的数据指所有有效的按规定书写格式表示的日期。数据的表达有两种方式:常量或变量特别注意:字符串常量是所有用双引号括起来的文字符号,如:”100” 日期常量的书写格式:#2009-5-12# 或 #5-12-2009#变量都要有名称,即变量名,请参见书本关于变量名的命名规则(重点)P23一个变量原则上能存储
7、任意类型的数据,但若用Dim命令显式声明一个变量的类型,则被声明的变量只能存储声明的类型的数据,否则赋予变量什么类型的数据,则该变量就是相应数据类型。如:Dim x As Integer,则x变量只能存储整型数据再如:Y=”100”,因y未显式声明为何种类型数据,当用该赋值命令赋予”100”给变量y,则这时y是字符串型的,这种用法隐含说明y是字符串型的,也叫变量的隐式声明。我们提倡大家选择显式声明,但要考虑合理的数据类型。注意:不同类型的数据,能够参加的运算有很多不一样。但同种类型的数据都能比较运算,整型、长整型、单精度、双精度等这些数值型数据按常规比较大小;字符串的大小比较原则是:按位比较,
8、比较位上的字符若相同,电脑将继续比较下一位,比较位不同,则该位字符的大小就是整个字符串的大小。字符大小的比较依据是字符的字典顺序(半角符号按ASC码大小、全角符号按机内码大小),一般有:汉字全角符号半角符号;汉字从小到大的顺序是拼音顺序。如:“汉字”sadsfdsfdfdsf” :成立“a”222133543545” :成立“中”李” :成立“2”124343403434” :成立“a”A” :成立知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的表达式。算术运算符: - * / / Mod + - 关系运算符:= = = 优先级都一样逻辑运算符:And Or Not字符
9、串连接符: + &日期运算符: + -掌握上述运算符的作用,运算的优先级必须清楚,P26 总的来说优先级的顺序是:算术运算字符串连接运算关系运算逻辑运算需要掌握的函数:算术函数有:Abs(x) Sqr(x) Sin(x) Cos(x) Tan(x) Atn(x) Exp(x) Log(x) Int(x) Rnd(x) Sgn(x) Fix(x)说明:随机函数Rnd(x), 随机产生一个大于或等于0,且小于1的实数。Int(x):得到不大于X的最大整数取正负号函数Sgn(x),若x为正数则输出1,若为负数则输出-1,X为0或非数值则输出0Fix(x)取x的整数部分,小数部分无条件舍去所有的三角函
10、数,参数必须转换为弧度字符串函数:Len(s) Left(s,n) Mid(s,n1,n2) Right(s,n) String(n,s)都很重要。说明:Len(s):返回字符串的文字个数,如:len(“aaa”)=3 len(“泉州”)=2Mid(s,n1,n2):从字符串s中取子串,从第n1位开始取,取n2个字符,若n2参数省略,则从n1位开始取到尾。如:mid(“abc123”,4,2)=”12” mid(“abc123”,4)=”123”String(n,s):如String(3,”a”)=”aaa” String(3,” “)=” “数据类型转换函数:Val(s) Str(n) Ch
11、r(n) Asc(s) Cint(x)说明:Cint(x)四舍五入,小数部分是0.5时获得最靠近的偶数,如:Cint(2.51)=3Cint(2.5)=2Cint(3.5)=4Val(s):把字符串s转换为数值, 如:val(“123”)=123 val(“12ads”)=12 val(“abc”)=0日期函数:year(d) Month(d) Day(d)参数d必须是日期常量或日期变量或值为日期型的表达式学会使用顺序结构设计程序的基本方法。具有顺序结构特性的命令主要是:Dim 赋值命令“=” InputBox MsgBox Print等学会使用分支结构设计程序的基本方法。具有分支结构特性的命
12、令是:If Then语句 三种格式Select Case End Select语句学会使用循环结构设计程序的基本方法。Do While . Loop循环For Next循环Vb6.0主要命令学习参考:一、赋值语句(命令)命令格式:=功能:计算机将先计算表达式的值,然后把表达式的值赋给左边的“变量”或“对象的属性”,该命令执行完后的结果是变量的值为该表达式的值,变量之前的值将丢弃,不再保留。注意:这里的等于号不同于关系运算符中的等于号,一般把它叫做赋值号x=y+1如果是关系式,那是要判断x与y+1是否相等,运算的结果是一Boolean值,表达式不能单独作为命令使用, 而只能作为命令的组成部分,如
13、:if x=y+1 then end if关系表达式x=y+1改写为y+1=x结果是一样的。但如果把x=y+1作为单独作为命令行,如:x=y+1那么计算机就不把它当关系表达式看待,而是作为赋值命令,那么这时就不是要判断x与y+1是否相等, 而是要把表达式y+1的值赋给变量x, 并且不能写为y+1=x示例:下列程序段中出现的Form1为已创建的form窗体名称Dim x1 as single, a as single, b as single, c as singleDim x as integer, y as integer, z as boolean, s as stringx1=(-b+s
14、qr(b*b-4*a*c)/2/ay=int(rnd()*10)z=y=3a+b=cs=”y=3”x+y= a+b+cform1.Caption=”MyForm”form1.Width=6000练习:下列选项中可作为赋值语句的有:a、d、g;可作为关系表达式的有:a、b、c、d、e、f、g。a) x=y b) ”abc”=”ab” c) x+y=1 d) x=y+1 e) y+1=x f) “a”=a g) a=”a”二、条件判断语句的几种用法: 用法一: 格式:if then 说明:计算机执行该语句时首先判断是否成立: 如果成立,则执行then后面的,执行完毕后,继续执行if then的后续
15、语句。 如果不成立,则不执行then后面的,而是直接执行if then的后续语句。 示例:(xj1,xj2为字符串变量,分别存储一个学生的评优和学科竞赛情况;x变量表示总分) If xj1=”三好生” then x=x+10 If xj2=”福建省一等奖” then x=x+20 . - 用法二: 格式:if then End if 说明:计算机执行该语句时首先判断是否成立: 如果成立,则执行then后面的,执行完毕后,继续执行End if的后续语句。 如果不成立,则不执行then后面的,而是直接执行End if的后续语句。 示例: Dim out_str as string pbs=b*b-
16、4*a*c out_str=”无实根” If pbs=0 then x1=(-b+sqr(pbs)/2/a x2=(-b-sqr(pbs)/2/a out_str=”x1=” & x1 & “:x2=” & x2 End if - 用法三: 格式:if then Else End if 说明:计算机执行该语句时首先判断是否成立: 如果成立,则执行then后面的,执行完毕后,继续执行End if的后续语句。 如果不成立,则Else后面的,执行完毕后,继续执行End if的后续语句。 示例: 求一元二次方程的根Dim out_str as string pbs=b*b-4*a*c If pbs=0
17、 then x1=(-b+sqr(pbs)/2/a x2=(-b-sqr(pbs)/2/a out_str=”x1=” & x1 & “:x2=” & x2 Else out_str=”无实根” End if - 用法四: 格式:if then ElseIf then ElseIf then ElseIf then Else End if 说明:该用法也称多分支结构,计算机执行该语句时首先判断是否成立: 如果成立,则执行,执行完毕后,继续执行End if的后续语句。 如果不成立,则继续判断是否成立,如果成立,则执行,执行完毕后,继续执行End if的后续语句。 如果不成立,则继续判断是否成立,
18、如果成立,则执行,执行完毕后,继续执行End if的后续语句。 如果不成立,则继续判断是否成立,如果成立,则执行,执行完毕后,继续执行End if的后续语句。 如果不成立,则执行Else后面的,执行完毕后,继续执行End if的后续语句。 示例: If x=90 then c9=c9+1 Elseif x=80 then c8=c8+1 Elseif x=70 then c7=c7+1 Elseif x=60 then c6=c6+1 Else c5=c5+1 End if . 三、多分支语句(分情形语句)格式:Select Case Case 情形1 语句集 Case 情形2 语句集 Cas
19、e 情形3 语句集 . Case Else 语句集End Select多分支的情况下,更倾向于选择case语句,若分支不超过三个则没有必要使用该语句。实例:输入一个年份和月份输出该年该月的天数。y表示年份m表示月份S为要计算的月份的天数s=0Select Case m Case 1,3,5,7,8,10,12 s=31 Case 2 If y mod 400=0 or y mod 4=0 and y mod 1000 then s=29 Else s=28 End If Case 4,6,9,11 s=30End SelectPrint y ; 年 ; m ; 月的天数是 ; s四、循环语句:
20、For Next循环,适用于已知循环次数的情况格式: For = To Step 循环体 Next 循环变量注意:为避免死循环,不要在循环内部重置循环变量的值 当初值终值时,步长值为正实数(1时可省略) 当初值终值时,步长值为负实数功能:s=0for i=1 to 100 step 2 s=s+1nexts的值是多少?50s=0for i=1 to 100 s=s+inexts的值是多少?5050out_string=”for i=100 to 999 a=i 100 b=i 10 mod 10 c= i mod 10 if a3+b3+c3=I then out_string=out_str
21、ing & “,” & i end ifnextout_string的值是什么?五、Do While .Loop循环语句适用于未知循环次数的情况格式: Do While 循环体 Loop功能:若while放在loop后面,则循环先执行一次再作判断。i=1s=0Do while i=100 and s mod 2=0) s=int(rnd() *1000)loops的值是什么?六、InputBox输入语句:格式:=InputBox(提示,标题,默认值)功能:弹出对话框,输入变量的值,若未用Dim显示声明变量的类型,则输入的值为String型,否则输入的值自动转换为声明的类型实例:Dim n As
22、 Integern=InputBox(请输入n的值:)七、MsgBox消息框格式:MsgBox 提示,按钮,标题 这里的后两个参数要么同时都有要么都没有功能:弹出消息框,显示“提示”内容按钮的取值:vbOkOnly vbOkCancel vbYesNo vbYesNoCancel实例:s=0n=100i=1Do While i=n s=s+i i=i+1Loopx=MsgBox(1+2+3+.+ &n &= &s,vbOkOnly,输出结果)八、Print输出语句格式:对象名.Print 用;或,隔开的表达式;|,功能:在“对象名”所标识的对象上输出显示表达式的值,分号隔开时为“紧凑格式”输出
23、,逗号隔开时为“标准格式”输出,末尾未带逗号或分号时,输出完后换行,否则不换行。单独执行print后面不跟任何变量时,仅起到换行的作用。“对象名”省略时,默认在Form窗体上输出,有Print方法的对象只有Form和Pictures=0n=100i=1Do While i=n s=s+i i=i+1LoopPrint 1+2+3+.+;n;=;s或者Print 1+2+3+.+ &n &= &sVb程序的编码规则:1)原则上一行输入一个完整的命令,即命令行2)若命令行较长,需要分割为多行来输入的话,则可用续行符一个空格+“_” (下划线),在行分割的行尾输入一个空格和一个“_”,后无任何空格。
24、如:If x mod 400=0 or x mod 4=0 and x mod 1000 then分成两行的话,写成:If x mod 400=0 or x mod 4=0 _and x mod 1000 then3) 多个命令写在同一行时,命令间用冒号“:”隔开如:x=100 : y=10 : z=”abc”4)命令不区分大小写了解程序的编辑与翻译过程方法,比较编译型语言与解释型语言的优势与不足。编译型语言优点:执行效率(速度)高;完整翻译后再执行 缺点:不好调试、修改程序不便解释型语言缺点:执行效率低一点;逐句翻译,边翻译边执行 优点:好调试程序Vb6.0是既提供解释执行,又提供编译执行的计算机语言,所以好用。3.算法与程序实现(参考教材,了解一下)理解解析法的基本思想。了解枚举算法求解问题的过程。理解使用数组存储批量数据的基本方法。理解顺序查找、二分查找算法思想。了解一到两种经典排序算法思想(如插入排序、冒泡排序)。了解递归思想与递归的数学意义。4.程序设计思想和方法(参考教材,了解一下)了解模块化程序设计的基本思想与方法。了解面向对象程序设计的思想与方法。了解面向对象程序设计的基本特征。请参考书本的附录:熟练掌握Vb中常用控件(对象)的属性项名称,事件名等
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1