第一章程序设计基础1VB程序设计主讲教师:孙东海系别:软件工程系电话:8392351Email:sdhupc@163.com2计算机程序设计基础计算机基础教育课程体系规划教材VisualBasic版邱李华郭志强曹青第一章程序设计基础3第1章程序设计基础本章要点:程序设计语言算法▲*结构化程序设计▲面向对象的程序设计第一章程序设计基础4基本概念(结合实例讲解):指令:规定计算机完成一定操作的命令。程序设计语言:要使计算机能够理解人给出的各种指令,就需要在人和计算机之间有一种特定的语言,人和计算机都能够识别,这种特定的语言就是计算机语言,也叫程序设计语言。程序:使用程序设计语言编写的用来使计算机完成一定任务的一段“文章”称为程序。程序设计:编写程序的工作称为程序设计。学习目的:利用程序设计语言进行程序设计,完成一定功能第一章程序设计基础51.1程序设计语言发展:机器语言汇编语言高级语言1.1.1机器语言由0和1组成的二进制编码,计算机能直接识别的机器指令的集合.例:用某机器语言编写的求“9+8”的程序。1011000000001001000001000000100011110100把加数9送到累加器AL中把累加器AL中的内容与另一数8相加,结果存在累加器AL中停止操作特点:优点:机器能直接识别、执行效率高缺点:难学、难记、难写、难检查、难移植第一章程序设计基础61.1.2汇编语言特点:可读性好,容易查错、方便机器不能直接识别、需翻译、可移植性差引入助记符代替指令,如ADD、SUB、MOV、HLT等。例:用汇编语言实现求“9+8”MOVAL,9把加数9送到累加器AL中ADDAL,8把AL中的数与8相加,存在AL中HLT停止操作连接程序汇编程序汇编语言源程序目标程序可执行程序第一章程序设计基础7解释程序高级语言源程序执行结果1.1.3高级语言更接近自然语言,脱离具体机器,与指令系统无关高级语言处理程序:翻译程序翻译程序的工作方式:解释方式和编译方式编译程序连接程序高级语言源程序目标程序可执行程序例:用某高级语言计算9+8的问题,只需写成:S=9+8计算9+8的值,保存到变量S中END结束特点:易编写、易读、易查错、不依赖具体机器需要配合使用翻译程序第一章程序设计基础81.2程序设计程序设计:编制程序的工作实现:选择工具—语言,掌握解题的方法和步骤—算法1.2.1算法1.什么是算法计算机为解决一个问题而采取的方法和步骤。2.算法的特性有穷性、确定性、有效性、有0个到若干个输入、有1个到若干个输出。3.算法的表示形式(1)用自然语言表示算法第一章程序设计基础9例如:将两个变量X和Y的值互换。算法表示如下:步骤1将X值存入中间变量Z中:XZ步骤2将Y值存入变量X中:YX步骤3将中间变量Z的值存入Y中:ZY用自然语言表示算法,虽然容易表达,但文字冗长且易产生“二义性”。(2)用流程图表示算法传统流程图N-S流程图:表示成三种基本的结构(后面介绍)处理框:连接点:起止框:输入/输出框:判断框:流向线:第一章程序设计基础10例:交换两个变量的流程图传统流程图:N-S流程图:开始输出X,Y输入X,YXZYXZY结束输出X,YZYYXXZ输入X,Y第一章程序设计基础111.2.2结构化程序设计1.三种基本结构顺序结构、选择结构和循环结构(1)顺序结构bABaAB传统流程图:N-S流程图:第一章程序设计基础12(2)选择结构传统流程图:N-S流程图:ba条件?AB不成立成立条件成立AB不成立第一章程序设计基础13例:分别用传统流程图和N-S流程图表示求一个数的绝对值的算法。开始输出Y输入X-XY结束X=0?XYYesNo输入X??NoX=0?YesXY-XY输出Y传统流程图:N-S流程图:第一章程序设计基础14(3)循环结构当型循环结构传统流程图:N-S流程图:条件?成立Ab不成立a当条件为真A第一章程序设计基础15直到条件为真A直到型循环结构传统流程图:N-S流程图:aAb不成立成立条件?第一章程序设计基础16例:分别用传统流程图和N-S流程图表示:求1+2+3+…+100的算法。开始输出S1IS+ISI+1I结束0SI100YesNo11直到I1001IS+ISI+1I输出S0SN-S流程图:传统流程图:第一章程序设计基础17三种基本结构有以下共同的特点:只有一个入口、一个出口每个基本结构中的每一部分都有机会被执行到结构内不存在“死循环”2.结构化程序设计方法自顶向下、逐步求精、模块化第一章程序设计基础181.2.3面向对象的程序设计任何现实问题都是由一些基本事物组成,这些事物之间存在着一定的联系,在使用计算机解决现实问题的过程中,为了有效地反映客观世界,最好建立相应的概念去直接表现问题领域中的事物及事物之间的相互联系。面向对象技术中引入了“对象”来表示事物;用消息传递建立事物间的联系。(1)对象(Object)用于描述某一实体。如房屋、人、汽车等:属性:对象的特征。例如:人的身高。事件:发生在对象上的事情。例如:拍人的肩膀方法:对象自身执行的动作。例如:人的移动第一章程序设计基础19(2)面向对象(ObjectOriented,简称OO)(3)消息(Messages)消息是用来请求对象执行某一处理或回答某些信息的要求。某一对象可以在必要时通过传递消息请求其他对象完成某些处理工作或回答某些信息,其他对象在执行所要求的处理活动时,同样可以通过传递消息与别的对象联系。因此,程序的执行是靠在对象间传递消息来完成的。(4)类(Class)及类的实例将带有相似属性和行为的事物组合在一起构成一个类。一个属于某种类的特定对象称为该类的一个实例。第一章程序设计基础20(5)封装(Encapsulation)将数据和操作数据的函数衔接在一起,构成一个具有类类型的对象的描述称为封装。(6)继承(Inheritance)在面向对象的语言中,可以从一个类生成另一个类。派生类(也称子类)继承了其父类和祖先类的数据成员和成员函数。(7)多态性(Polymorphism)多态性是一种面向对象的程序设计功能,当同样的消息被不同的对象接收时,却导致完全不同的行为,即完成不同的功能。第一章程序设计基础21本章小结1.程序设计语言机器语言、汇编语言、高级语言2.程序设计算法的概念结构化程序设计的三种基本结构顺序结构、选择结构、循环结构面向对象程序设计的基本概念对象、面向对象、消息、类及类实例、封装、继承、多态性