《程序设计语言与程序设计方法.ppt》由会员分享,可在线阅读,更多相关《程序设计语言与程序设计方法.ppt(41页珍藏版)》请在三一办公上搜索。
1、第1章 程序设计语言与程序设计方法,制作者:钱瑛,本章的学习重点和难点,程序设计的基本概念 算法的概念和描述 结构化程序设计方法 面向对象的程序设计概念和方法,1.1 程序设计语言简介,语言机器语言汇编语言高级语言程序一个程序是完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”,程序设计使用某种计算机语言,按照某种算法,编写程序的活动程序=数据结构+算法程序=算法+数据结构+程序设计方法+语言工具和环境,1.2 算法及其描述,1.2.1 算法的概念 算法解决某个问题或处理某件事的方法和步骤,在这儿所讲的算法是专指用计算机解决某一问题的方法和步骤 计算机算法的分类数值计
2、算算法 非数值计算算法1.2.2 算法举例 例题1-1 例题1-2例题1-3,例题1-1,有两个杯子A和B,分别盛放茶和咖啡,要求将杯中的饮料互换,即A中盛放咖啡,B中盛放茶,增加一个空杯C作为过渡算法可以表示为:步骤1:先将A杯中的茶倒入C杯中步骤2:再将B杯中的咖啡倒入A杯中步骤3:最后将C杯中的茶倒入B杯中,A,C,B,茶,茶,咖啡,咖啡,茶,该算法常常被用于实现两个数据内容的互换(1)AC(2)BA(3)CB,例题1-2,求两个数A、B中的最大数 算法可以表示为:步骤1:将数A、B进行比较,如果A大于B,则转向步骤2,否则转向步骤3。步骤2:A是最大数 步骤3:B是最大数 常常通过比较
3、求最值或进行排序,例题1-3,求n!分析:如果n=4,则4!=1*2*3*4,所以可以先假设S代表累乘之积,I代表累乘项算法可以表示为:步骤1:S=1,I=1步骤2:如果In,则执行步骤3,否则停止,S中的值即为所求的n!步骤3:将S与I的乘积存入S中步骤4:使I增1,转向执行步骤2,1.2 算法及其描述,1.2.3 算法的特征 有穷性确定性 有零个或多个输入 有一个或多个输出 有效性1.2.4 算法的表示自然语言伪代码流程图,例题1-4,A和B数据互换增加一个C作为过渡算法可以表示为:步骤1:AC步骤2:BA步骤3:CB,开始,结束,输入数据A、B,输出数据A、B,AC,BA,CB,例题1-
4、5,求两个数A、B中的最大数 算法可以表示为:步骤1:将数A、B进行比较,如果A大于B,则转向步骤2,否则转向步骤3。步骤2:A是最大数 步骤3:B是最大数,开始,结束,输入数据A、B,输出最大数MAX,AMAX,AB,BMAX,True,False,判断框,例题1-6,求n!算法可以表示为:步骤1:S=1,I=1步骤2:如果In,则执行步骤3,否则停止,S中的值即为所求的n!步骤3:将S与I的乘积存入S中步骤4:使I增1,转向执行步骤2,S*IS,开始,结束,False,True,1S1I,In,输出n!的值S,I+1I,输入n,例题1-5,求两个数A、B中的最大数 算法可以表示为:步骤1:
5、将数A、B进行比较,如果A大于B,则转向步骤2,否则转向步骤3。步骤2:A是最大数 步骤3:B是最大数,Private Sub main()Dim A As Integer,B As Integer,max As Integer 变量定义A=InputBox(Please input number A:)输入变量AB=InputBox(Please input number B:)输入变量BIf A B Then比较A与Bmax=AElsemax=BEnd IfDebug.Print max打印最大值End Sub,小结,算法是解决问题的核心内容学会使用流程图来表示的算法,逻辑清楚,形象直观,
6、容易理解掌握相应语言(如VB)的组成要素及编写方法,容易能编写出对应程序,1.3 结构化程序设计,1.3.1 基本算法结构结构化程序设计方法算法的三种基本结构顺序结构分支结构循环结构任何一个程序都是这三种基本控制结构的组合三种基本结构的共同特点只有单一的入口和单一的出口结构中的每个部分都有执行到的可能结构内不存在永不终止的死循环,顺序结构,每个处理步骤(A和B)顺序执行,A,B,N,分支结构,e为判决条件进入分支结构,首先判断e成立与否,再根据判断结果,选择执行处理A或者处理B后退出,A,B,e,True,False,循环结构,A,e,True,False,e,A,False,True,1.3
7、 结构化程序设计,1.3.2 结构化程序设计方法 自顶向下逐步细化(核心)模块化应用举例例题1-7,例题1-7,对于100个正整数,输出其中的回文数(所谓回文数是指左右数字完全对称的自然数。例如:11,121,1221等都是回文数)自顶向下、模块化:(1)输入100个正整数(2)把其中的回文数找出来(3)输出这些回文数,逐步细化分别对于每一部分进一步细化,找出回文数,输入100个正整数,输出回文数,开始,结束,(1)输入100个正整数,考虑通过a1a100来接收这100个数据从第1个数据开始直到第100个,True,False,i100,输入ai,1i,i+1i,(2)找出回文数,对于a1a1
8、00中每一个数逐一判断,若判断它不是回文数,则将它的值置为零,这样最后留下的非零数,即为回文数那么如何判断是否为回文数呢?于是进一步细化,将ai逆序得到x,若ai等于x,则说明它是回文数,True,i100,将ai逆序x,False,1i,0ai,aix,True,i+1i,False,(3)输出回文数,根据第二部分,只要对于a1a100中每一个数逐一判断ai不等于零(它是回文数),即可输出ai,输出回文数ai,ai0,i100,False,1i,True,i+1i,False,True,1.4 面向对象的概念和方法,1.4.1 面向对象的概念“面向对象程序设计”或“面向对象编程”简称为OOP
9、(Object Oriented Programming)建立在传统结构化程序设计的基础上,其最重要的特色是程序围绕被操作的对象来设计,而不是围绕操作本身模块化Visual Basic是一种采用面向对象的程序设计方法的语言重要术语:对象(对象)类 属性,方法 事件 事件驱动,对象,动作体的逻辑模型,称为“对象”对象经常被用来模拟现实世界中的某个具体的实体,例如,你正在读的这本书是一个对象、你手中的这支笔是一个对象、你在大街上看到的某辆汽车也是一个对象在Visual Basic中,对象就是你可控制的某种东西,应用程序的每个窗体和窗体上的种种(界面元素)控件都是VB的对象,实例演示,(对象)类,类
10、是对象的正式的抽象定义,是将某些对象的共性的特征(属性和方法等)抽取出来,形成一个关于这些对象集合的抽象模型对象与类之间的关系对象是具有指定属性和方法的类的实例由类得到对象的过程称为类的实例化,实例演示,属性,对象类定义了类的一般属性“属性”是对对象特性的描述VB为每一类对象都规定了若干属性。对象除了继承对象类规定的各种属性(这称为继承性)之外,还具有它的特殊属性,实例演示,方法,“方法”指的是对象自身可以进行的动作或行为它实际上是对象本身所内含的一些特殊的函数或过程,在面向对象的程序设计过程中,可以通过调用对象的方法实现该对象的动作及行为VB程序中每个窗体或控件对象,也具有改变其行为或实现某
11、个特定动作(操作)的方法。象窗体,就可被“显示”或被“隐藏”等等。显示(show)和隐藏(hide)都是控制窗体对象的方法,实例演示,事件,所谓“事件”,就是预先设置好的、能够被对象识别的动作;它往往能使某个对象进入活动状态(又称激活),并体现了对象对于外部操作或动作响应的能力只要程序设计者为某个对象在某个事件发生时,规定了具体操作,那么该对象响应识别了该事件后,就会按照规定的操作执行用一个“事件”激活某个对象,随着该对象的活动,会引发新的“事件”,这个事件又可能使另一个“对象”激活,对象之间就是以这种方式联系在一起的,实例演示,概念理解,有一个红色、充满氢气的气球,如果人不小心松开手抓的引线
12、,就会飞走;如果用针刺它,则会爆破。请问,对于气球对象,什么是属性、什么是事件、什么是方法?,气球(对象)颜色、充满氢气描述对象的性质属性飞走、爆炸对象自身的动作方法松开引线、用针刺穿对象对外部刺激的响应事件,概念理解,一只漂亮的酒杯被摔碎了,则漂亮,酒杯,摔,碎了是什么?一只白色的足球被踢进球门,则白色、足球、踢、进球门是什么?,属性、对象、事件、方法,作业,事件驱动,传统的程序设计面向过程,按规定流程,执行过程中不可改变事件驱动由用户的动作掌握程序运行的流向Windows程序的事件或消息驱动方式工作模式各个对象的动作以及各个对象之间的关联,完全取决于操作者所做的操作。即程序的运行,并没有固
13、定的顺序,是通过事件驱动的,当在该对象上响应了某个用户或系统触发的事件后,就执行一个事先为该对象事件编写好的事件过程,当没有事件发生时,整个程序就处于等待状态,实例演示,事件驱动,事件驱动方式的应用程序的设计原理VB是Windows环境下运行的一种语言,使用VB不仅可以非常便捷地设计出Windows应用程序的窗口界面,设置界面中各种对象的属性,而且可以通过编写程序代码段为对象规定在被某个“事件”激活时应发生的各种动作以及所要进行的信息处理的具体内容,这样的代码段称为“过程”。为各个对象编写的过程集合在一起,就构成一个完整的应用程序,实例演示,1.4 面向对象的概念和方法,1.4.2 面向对象工
14、程化设计方法系统调查和需求分析 面向对象分析 面向对象设计面向对象实现,1.5 程序设计的步骤,以“对象”为中心的,重点考虑围绕这个对象的功能编写根据实际问题,采用逐步求精的方法分析问题,将问题细化为若干子模块对每一个子模块进一步细化,设计好相应的算法解决考虑程序界面,围绕界面上的对象,并结合每个子模块的算法,考虑在哪个对象的适合的事件过程中编写相应的过程代码最后运行和调试程序,通过测试,直至满足问题的要求为止,实例演示,习题1.8,含羞草是生长在阳光充足的草地上的一种低矮草本植物,大约在盛夏以后开花,粉红色构成绒球状;含羞草生性敏感,当你一摸它,它的叶片就一片片的闭合起来,甚至连同枝干也收缩
15、垂下,属性:低矮草本植物、粉红色绒球状花方法:生长、开花、叶片闭合、枝干收缩垂下事件:触摸,习题1.5(1),根据三边,求三角形的周长和面积周长L=a+b+c面积S=p=(a+b+c)/2数据a、b、c能否构成三角形三边?两边之和大于第三边:a+b c and b+c a and a+c b,习题1.5(2),判断用户的输入的一个整数是奇数还是偶数奇数还是偶数?如一个数能被2整除(余数为0),则为偶数,否则为奇数,习题1.5(3),求解一元二次方程ax2+bx+c=0根=b2-4ac,习题1.5(4),找出10个数据的最大数先将该组数据中的第一个数作为最大值的初值然后依次将这组数据中的其他数据与最大值进行比较,若有大于最大值的情况,则将该数替换目前的最大值,否则继续取下一个数与最大值进行比较,习题1.5(5),将20个考生成绩中不及格者的分数打印出来依次对20个考生成绩进行是否60的判断,若小于60,则输出该成绩,习题1.5(6),求S=1+2+3+4+100n!=1*2*3*4*n步骤1:S=0,I=1步骤2:如果I100,则执行步骤3,否则停止,S中的值即为所求步骤3:将S与I的乘积存入S中步骤4:使I增1,转向执行步骤2,
链接地址:https://www.31ppt.com/p-6011256.html