第一章如何用计算机解决问题1.解决问题的过程:(P3)1.分析问题——设计算法——界面设计、编写程序——运行程序、验证结果。2.计算机程序:就是指示计算机如何去解决问题或完成任务的一组可执行的指令。3.程序设计:就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。4.程序设计语言:泛指一切用于书写计算机程序的语言。(与计算机语言区别)5.程序设计语言发展经历了机器语言、汇编语言到高级语言。(P11)2.算法的概念:解决问题的方法和步骤。(P5)3.算法的特征:有穷性(有限性)、确定性、有零个或多个输入、有一个或多个输出、可行性。4.算法的描述:自然语言、流程图、伪代码等。(P8)流程图:①处理框:框中指定要处理的内容,有一个入口和一个出口。②输入/输出框:用来表示数据的输入或计算结果的输出。③判断框:用来表示分支情况,有一个入口和两个出口。④连接框:连接符号可串连多张流程图。⑤开始/结束框:用来表示算法的开始和结束。第二章程序设计ABC2.1可视化程序开发工具1.VB是基于basic语言的可视化程序设计语言,是一种面向对象的程序设计语言。(P14)2.控件:以图标的方式放在“工具箱”中,如文本框,命令按钮等。(P16)常用控件对象的类型窗体Form命令按钮CommandButton标签Label文本框TextBox3.对象的属性、方法和事件在VB中,文本框、标签、命令按钮都是对象。(1)属性:对象的特征(P127附录三)Name设置对象的名称Caption控件中显示的内容(文字)Text中文本框中显示的内容Height决定控件高度Width决定控件宽度Top决定控件的靠顶部位置Left决定控件的靠左边位置Font设置控件中字体格式BackColor设置控件背景色ForeColor设置控件的前景色BorderStyle设置控件的边框风格Alignment即标签文字对齐属性AutoSize设置为False时,输入控件Caption值超过控件宽度时超出部分被裁剪掉;设置为True时,控件可水平扩充,以适应控件Caption属性。Visible决定控件是否可见Enabled决定控件运行时是否有效对象的属性可以在设计界面时通过属性窗口设置,也可以在运行时通过程序代码设置。对象.属性=属性值例:使文本框中显示20。Text1.Text=”20”要获取对象的状态或特性,就要读取对象的属性值。变量=对象.属性例:获取文本框“Text1”的“Text”属性。a=Text1.Text(2)方法:对象能够执行的操作。(P19)[对象].方法[参数名表]例:Form.Print”欢迎使用”(3)事件及事件驱动:事件是对象对外部操作的响应。(P19)Vb中提供的事件有:单击(click)、双击(dblclick)、加载(load)等。PrivateSub对象_事件名()(事件过程代码)EndSub(4)保存文件:(P15).vbp文件:与VB工程有关的文件和对象清单,是一个文本文件。.frm文件:包含窗体及控件的属性设置、相关程序代码等。.bas文件:标准模块文件。2.2数据的表示与处理1.数据类型(P20)数据类型符关键字取值范围所占内存整型%Integer-32768~3276716位/2字节长整型&Long4字节单精度型!Single4字节双精度型#Double8字节字符串型$String定长字符串:0~65535个字符布尔型BooleanTrue或False2字节日期型Date100/1/1~9999/12/318字节2.常量、变量(P22)(1)常量:常量是在程序执行过程中其值不变的存储单元或数据。在VB中,常量有整数常量、实数常量、字符串常量和逻辑常量这几种类型。Const常量名[As类型]=表达式。如:Constpi=3.1415926(2)变量:变量用来表示数据的存储区,在程序运行过程中,这些存储区中的值是可以改变的。Dim变量名As类型(P23)命名原则:变量名由字母、汉字、数字和下划线等字符组成;必须以字母开头;在变量名中不区分大小写字母;不能使用保留字;不能超过255个字符。3.运算符与表达式(P25-26)运算符类别符号含义运算优先级实例结果算术运算符^指数12^101024-取负2-2+53*、/乘法、除法3\整除45\22Mod求余55Mod21+、-加、减6字符串运算符+、&连接两个字符串时尽量使用“&”。“+”在遇到数字字符串和数值型数据连接时,执行加运算。关系运算符=、、、、=、=结果为True或False,无优先级。关系成立,结果为True;否则是False。运算规则:当数据均为数值型,按数值大小比较;当数据均为字符串型,按该字符的ASCII码值从左到右一一比较,直到出现不同为止。逻辑运算符Not(取反)、And(与)、Or(或)运算结果为布尔值True或False,存在优先级。And(与):操作数均为True,结果才为True;Or(或):操作数只要有一个为True,结果就为True。日期运算符+、-进行日期的计算。执行顺序:算术运算符字符运算符关系运算符逻辑运算符4.常用语句(1)赋值语句:格式1:变量名=表达式;格式2:[对象名.]属性名=表达式(2)Print:在窗体上输出文本,常用分号和逗号隔开。格式:[对象名.]Print[表达式列表]Tab(n):定位从第n列开始输出。(3)注释语句:在字符“’”后加注释内容或用“Rem”注释内容”(Rem独立成行)(4)结束语句:End,强制程序结束运行5.与用与用户交互函数InputBox()函数和MsgBox()函数;前者常用于输入,后者常用于输出。格式:InputBox(“提示”,”标题”,”默认值”)6.函数(1)数学函数函数功能实例结果Abs(x)求x的绝对值Abs(-4.6)4.6Sqr(x)求x的平方根Sqr(9)3Sin(x)求x的正弦值x的值为弧度制Sin(30*3.14/180)0.49Cos(x)求x的余弦值Cos(30*3.14/180)0.86Tan(x)求x的正切值Tan(60*3.14/180)1.72Atn(x)求x的反正切值Exp(x)求指数函数exExp(2.0)7.38Log(x)求x的自然对数值ln(x)Log(10)2.30Int(x)取整,取=x的最大整数Int(99.8)99Int(-4.5)-5Fix(x)去除小数部分Fix(4.9)4CInt(x)小数部分为0.5时,取最近偶数。Cint(3.5)4Rnd(x)产生[0,1)之间的随机数Rnd()返回一个随机数Sgn(x)符号函数,x0返回1;x=0返回0;x0返回-1。(2)日期、时间函数Time():系统当前时间;Hour();Minute();Second();Date():日期;Year():年;Month():月;Day():日;(3)字符串函数:函数功能Len(字符串)求字符串的长度Left(字符串,截取长度)截取字符串左边部分Mid(字符串,起始位置[,截取长度])从中间指定位置截取字符串Right(字符串,长度)截取字符串右边部分String(数值,字符)生成指定长度与指定字符(第一个)的字符串Instr(字符串1,字符串2)在字符串1中寻找字符串2,若存在则返回字串2第一次完整出现在字符串1中的位置;否则返回0。(4)转换函数函数功能实例结果Val(字符串)将字符串转换为数值12+Val(2)14Str(数值)将数值转为字符串Str(5)5Chr(字符代码)求字符代码对应的字符Chr(65)AAsc(字符)求字符对应的字符代码Asc(C)67CInt(表达式)将表达式的结果转换为整数,小数部分四舍五入。CInt(3.14259*2)6常用ASCII码:a:97;A:65;0:48;2.3程序的基本结构1.顺序结构2.选择结构(选择结构可以嵌套)单分支:If条件表达式Then语句1EndIf写在一行:If条件表达式Then语句双分支:If条件表达式Then语句组1Else语句组2EndIf多分支:If条件1Then语句组1ElseIf条件2Then语句组2……Else语句组nEndIf多重选择语句:SelectCase表达式Case表达式列表1语句组1Case表达式列表2语句组2……CaseElse语句组nEndSelect3.循环结构(循环语句可以嵌套)For循环语句:For循环变量=初值to终值step步长循环体(语句组)Next循环变量Do循环:(1)DoWhile条件表达式循环体(语句组)Loop(2)Do循环体(语句组)LoopWhile条件表达式(3)DoUntil条件表达式循环体(语句组)Loop(4)Do循环体(语句组)LoopUntil条件表达式第三章算法的程序实现1.解析法:在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示,解决这些表达式,问题就得以解决。2.穷举法:也叫枚举法、列举法,是将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有的对象,问题将最终得以解决。3.递归法:一个函数在定义时,直接或间接地调用自己。递归法一般需要定义函数来实现。自定义函数:public|privateFunction函数名称([形式参数表])[as类型]局部常量、变量定义语句组函数名=返回值EndFunction自定义过程:public|privateSub过程名([形式参数表])局部常量、变量定义过程语句组EndSub4.数组:是一组相同类型的变量集合,集合中的每个元素都是独立的变量,能通过数组序号被引用。在数组中查找数据:顺序查找:从第一个元素开始,按数据的顺序查找指定的关键值。如果被查数据和该关键值相匹配则表示找到,如果所有数据与关键值都不匹配则表示被查数据中不存在该关键值,查找失败。二分法查找:也叫折半查找,在被查的有序数据中,取中间数与关键值比对,再确定关键值在这些数据中的前半部分还是后半部分;再取这些数的中间数比对,以此类推,直到找到为止。它要求被查数据是有序的。对数据进行排序:冒泡法排序:也叫起泡法排序,将相邻两元素进行比较和交换,逐步将一个无序序列排列为一个有序序列。(从前向后,从后向前)第四章程序设计思想和方法1.结构化程序设计的思想包括以下三个方面:(1)一个大程序可以划分为若干个模块,每个模块又可以继续分为更小的子模块,最终分出的模块能完成一个独立的功能,模块之间按层次关系进行组织。(2)程序都可以由三种基本结构组成,即顺序、选择、循环结构。(3)设计时应采用自顶向下,逐步细化的实施方法。2.面向对象程序设计:以所处理的数据入手,是对结构化程序设计的继承与发展。涉及到几个概念:对象、属性、方法、事件与事件驱动、类。最突出的特性:封装、继承和多态性。这三大特征是互相关联的,封装性是基础,继承性是关键,多态性是补充,而多态性又必须存在于集成的环境中。