您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 激励人向上的说说感情对失败者来说是一种灾难
程序设计的基本概念我们为什么要写程序Computersaremachines.我们必须告诉计算机我们需要它们做什么程序设计的几个基本概念什么是程序什么是程序设计什么是数据结构什么是算法什么是程序设计语言什么是程序程序:就是一系列遵循一定规则和思想并能正确完成指定工作的代码(也称为指令序列)。对程序的描述,经常有如下等式:程序=数据结构+算法数据结构相当于原料算法就是操作步骤什么是程序设计程序设计=数据结构+算法+程序设计方法学+语言工具环境最通俗的说法是:用计算机语言编写程序数据是程序操作的对象,算法是操作步骤比喻:数据结构相当于原料,算法就是操作步骤。什么是数据结构数据结构:是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间的关系的操作等等的学科。数据结构:指数据对象及其相互关系和构造方法。数据结构:是相互之间存在一种或多种关系的数据元素的概念。什么是算法所谓程序:就是用计算机语言描述的算法。算法(algorithm):进行某一工作的方法和步骤。源于算术:算术方法是一个由已知推求未知的运算过程。例如:菜谱是做菜肴的算法歌谱是一首歌曲的算法算法的性质:(精确性)1.解题算法是一种有穷动作2.此动作序列只有一个初始动作3.序列中每个动作仅有一个后续动作。4.序列终止表示问题得到解答或问题没有解答算法的重要性算法是程序的灵魂程序设计的核心就是算法设计。算法设计的实质就是克服客观的复杂性,建立问题的求解模型。算法的两大要素一:操作:即构成一个算法的操作取自哪个操作集,它与使用的工具系统有关。高级语言中的操作主要包括:算术运算,逻辑运算,关系运算,函数运算,位运算,I/O操作等。二:控制结构:即如何控制组成算法的各操作的执行顺序。基本的三种程序结构顺序:该结构中各个操作是按照书写的顺序执行的。选择:根据指定的条件进行判断,根据判断的结果在若干分支路径中选取其中一条来执行。循环:根据给定条件是否满足决定是否继续执行循环体中的操作。三种基本算法结构顺序结构选择结构(分支结构)循环结构(重复结构)当型循环(While型循环)直到型循环(Until型循环)顺序结构ABab选择结构ABabpYN当p为“真”当p为“假”循环结构Aabp1YWhile型循环N当p1为“真”当p1为“假”Aabp2NUntil型循环Y当p2为“真”当p2为“假”AabpYN两种循环结构的比较While型循环Until型循环Aab!pNY两个循环结构的判断条件相反A一次也没有执行A执行了一次当首次判断p即为“假”(!p为“真”)当执行一次A后,判断p为“假”(!p为“真”)A执行了一次三种基本算法结构的共同特点只有一个入口只有一个出口结构内每一部分都有机会被执行到结构内不存在“死循环”AabBABa描述算法的两种常用方法流程图N/S图一、流程图流程图:描述算法的一种方法。是用一些图框表示各种类型的操作,用线表示这些操作的执行顺序。流程图符号国家标准GB1526-89(国际标准化组织一致)1.数据2.处理3.特定处理4.准备5.判断6.循环(上)界限6.循环(下)界限7.连接符8.端点符9.注解符10.流线例子1任务:磁带A中录有音乐,磁带B中录有外语。请将两盘磁带中的内容交换。例子1算法分析要交换这两盘磁带A和B的内容,必须借助第3盘带。过程如下:·准备一盘中间磁带Temp;·将A盘中的音乐录入Temp;·将B盘中的外语A盘中;·将Temp盘中的音乐录入A盘中。例子1流程图描述Temp=A开始结束A=BB=Temp例1程序示例#includestdio.hintmain(){inta=135,b=246,temp;/*用135表示音乐,246表示外语*/temp=a;a=b;b=temp;printf(“a=%5d,b=%4d”,a,b);return(0);}例2:三数中取大从键盘输入三个数,输出其中最大的一个数问题分析:设三个数为a,b,c,则在三个数中取一个大的数,基本思想可以描述为:if(a最大)输出a;否则if(b最大)输出b;否则输出c;例2流程图输入三个数a,b,c,ab且ac输出bA是输出c输出aba且bc是否否例2程序/*程序名:ex106.c*/#includestdio.hintmain(){inta,b,c;printf(\nEnter3integersseparatedbyspaces:);scanf(“%d%d%d”,&a,&b,&c);if(ab&&ac)printf(“\nThemaxis:%d,a);elseif(ba&&bc)printf(“\nThemaxis:%d,b);elseprintf(“\nThemaxis:%d,c);return(0);}例3:比较两个数从键盘输入两个数,输出其中最大的一个数。问题分析用流程图描述的程序(图在下页)所示。在这个例子中,a和b分别用来保存两个整数,称为变量。max称为中间变量,用于存放两个数中的大者。例3流程图描述开始输入两整数a,babmax=amax=b输出max结束例3程序/*程序名:ex105.c*/#includestdio.hintmain(){inta,b,max;printf(Pleaseinputtwointegers:\n);scanf(%d%d,&a,&b);if(ab)max=a;elsemax=b;printf(“max=%d”,max);return(0);}二、3、N-S流程图描述算法顺序选择循环PTFABABA当P成立A当P成立例:求一元二次方程的根真a=0假真真假假b2-4ac=0b2-4ac0输出两个实根x1,x2输出两个复根p+qi,p-qiaacbbx2421aacbbx2422计算复根的实部和虚部实部p=-b/2a虚部aacbq2)4(2输出两个相等的实根-b/2a输出提示信息|不是二次方程课后作业用N-S图表示求解以下问题的算法:1、求10!2、将100~200之间的素数打印出来3、求两个数m,n的最大公约数面向过程的结构化程序设计面向解题的过程,程序员用语言描述解题的过程,即告诉计算机”怎么做”.结构程序设计方法的要点是:自顶向下,逐步细化,模块化。每个模块都由具有良好结构特征的基本结构组成。结构化程序设计方法结构化算法由基本结构顺序组成的算法结构结构化程序设计方法自顶向下:将一个复杂的算法(或程序)分解成若干个相对独立、功能单一的模块逐步细化:每个模块还可以继续细分为更多的子模块模块化设计:每个模块均可各自独立地分别进行分析、设计、编写、调试、修改和扩充,并且不会影响到其它模块和全局算法结构化编码:相对独立的操作块(或程序段),每个模块都是由三种基本结构组成的结构化模块结构化程序设计的示意图模块A1(小功能)模块A2{小功能)模块A(较小功能)模块CC1C2C3C4模块BB1B2主模块(主功能)面向对象(oop)的程序设计面向对象的程序设计(objectorientedprogramming)客观世界是由许多具体的事物、抽象的概念、规则等组成的,我们将任何感兴趣或要加以研究的事、物、概念统称为对象(Object)。每个对象都有各自的内部状态和运动规律,不同对象之间通过消息传送进行相互作用和联系就构成了各种不同的系统。面向传统的结构化方法强调的是功能抽象和模块化,每个模块都是一个过程。结构化方法处理问题是以过程为中心。面向对象强调的是功能抽象和数据抽象,用对象来描述事物和过程。而对象包含数据和对数据的操作,是对数据和功能的抽象和统一。面向对象方法处理问题的过程是对一系列相关对象的操纵,即发送消息到目标对象中,由对象执行相应的操作。程序=数据结构+算法程序=(数据结构+算法)+(数据结构+算法)……程序=对象+对象……从面向过程到面向对象因此面向对象方法是以对象为中心的,这种以对象为中心的方法更自然、更直接地反映现实世界的问题空间,具有独特的抽象性、封装性、继承性和多态性,能更好地适应复杂大系统不断发展与变化的要求。采用对象的观点看待所要解决的问题,并将其抽象为系统是极其自然与简单的,因为它符合人类的思维习惯,使得应用系统更容易理解。同时,由于应用系统是由相互独立的对象构成的,使得系统的修改可以局部化,因此系统更易于维护。软件开发从本质上讲就是对软件所要处理的问题域进行正确的认识,并把这种认识正确地描述出来。一个例子学生小学生中学生大学生初中生高中生本科生硕士博士赵薇陈坤章子仪刘德华张曼玉周润发C、C++、VisualC++languageprogramming什么是面向对象对象:客观世界中任何一个事物对象是面向对象程序设计中的基本操作元素。对象包括的要素:1.数据2.操作对象就是包含数据以及与这些数据有关的操作的集合。类,父类,子类,继承,属性,方法类:具有相同数据和相同操作的一组相似对象的定义。所以说:类是抽象的,对象是具体的实例:由某个特定的类所描述的一个具体的对象。继承:直接获得已有的性质和特征,而不必重复定义它们。子类自动地共享基类中定义的数据和方法的机制。方法,属性属性:类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类中的每个实例都有自己特有的属性值。方法:就是对象所能执行的操作,也就是类中所定义的服务。定义一个类:大学生1.属性(数据)姓名性别年龄身高体重年级2.方法(操作)上课考试补考重修硕士1.属性(数据)姓名性别年龄身高体重年级导师所属实验室2.方法(操作)上课考试补考重修开题写论文发表文章定义硕士下面的一个实例1.属性值(数据)姓名:张曼玉性别:女年龄:41身高:165体重:46kg年级:二年级导师:王家卫所属实验室:实力派上课考试补考重修开题写论文发表文章定义一个类:圆1.属性圆心坐标(x,y)半径线条颜色填充颜色2.方法显示隐藏放大半径缩小半径移动位置改变颜色椭圆1.属性圆心坐标(x,y)半径线条颜色填充颜色长轴短轴2.方法显示隐藏放大半径缩小半径移动位置改变颜色改变长轴改变短轴定义一个圆的实例:对象圆a1.属性值100,200)3cm红色绿色2.方法显示隐藏放大半径缩小半径移动位置改变颜色面向对象程序设计的特点(1)抽象性(2)封装性(3)继承性(1)抽象性一组对象的共同特征进一步出来,从而形成“类”的概念。抽象是一种从一般的观点看待事物的方法,它要求程序员集中于事物的本质特征,而不是具体细节或具体实现。类的概念来自人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:从特殊到一般的归纳法和从一般到特殊的演绎法。在归纳的过程中,我们从一个个具体的事物中把共同的特征抽取出来,形成一个一般的概念,这就是“归类”;在演绎的过程中,我们又把同类的事物,根据不同的特征分成不同的小类,这就是“分类”。对于一个具体的类,它有许多具体的个体,我们就管这些个体叫做“对象”。抽象化(归纳)具体化(演绎)一组对象类(2)封装性所谓数据封装就是指一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。数据封装就是给数据提供了与外界联系的标准接口,无论是谁,只有通过这些接口,使用规范的方式,才能访问这些数据。数据封装是软件工程发展的必然产物,使得程序员在设计程序时可以专注于自己的对象,同时也切断了不同模块之间数据的非法使用,减少了出错的可能性。(3)继承性从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能,这种思想是面向对象设计方法的主要贡献。软件的生成周期1.问题定义与需求分析;2.总体设计(或者称概要设计)。将一个大的任务划分为若干个子任务,即划分
本文标题:激励人向上的说说感情对失败者来说是一种灾难
链接地址:https://www.777doc.com/doc-930723 .html