第二章算法程序的灵魂
- 格式:ppt
- 大小:1.64 MB
- 文档页数:40
第2章算法—程序的灵魂1、教学要求:要求学生了解算法的概念及其特性;会用自然语言或伪代码方式书写简单算法;掌握用流程图和N-S图表示算法。
2、教学重点、难点:重点是算法的特性,用流程图和N-S图表示算法;难点是N-S图表示算法。
3、教学内容:算法的特性;用自然语言或伪代码方式书写简单算法;用流程图和N-S图表示算法。
一个程序应包括两个方面的内容:•对操作的描述:算法(algorithm)•对数据的描述:数据结构(data structure)完整的程序设计应该是:灵魂加工对象结构化使用那种计算机语言§2.1 什么是算法1、广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
2、对同一个问题,可有不同的解题方法和步骤例:求s=1+2+3+……+1000•方法1:1+2,+3,+4,一直加到100 加99次•方法2:100+(1+99)+(2+98)+…+(49 +51)+50 = 100 + 49×100 +50 加51次3、为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
希望方法简单,运算步骤少。
4、计算机算法可分为两大类别:•数值运算算法:求数值解,例如求方程的根、求函数的定积分等。
•非数值运算算法:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。
§2.2 简单算法举例例2.1: 求1×2×3×4×5算法一:步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120如果要求1×2×…×1000,则要写999个步骤分析:本题运算特点是多次重复地进行两数相乘运算。
引入变量,利用循环操作将大大简化上述操作。
变量:回忆数学中函数的概念,如f(x)、g(x)等,其中x 的值是可以变化的,不是固定的,引入到C 语言中,将它称为变量。
第二章(备课笔记)问题:输入三个数a,b,c,按照从大到小的顺序排列输出。
(假设输入三个数5,9,4,经过大小对比,从大到小排列为9,5,4。
如果把更多的数按照从大到小的顺序排列呢,计算量就随之变大,仅靠人脑会很吃力。
考虑借助计算机来解决。
)如何用计算机解决?用计算机求解问题的一般步骤:★问题的分析★算法分析及设计算法★设计编制程序★调试程序★运行与维护程序其中,第二步:算法的分析与设计,即解决问题的操作步骤,是最为关键的一步,称之为程序灵魂。
比如说,从徐州到上海,可以坐飞机,坐动车,坐火车等等,这些不同的方法或者步骤,在计算机的求解问题中,就是选用不同的算法。
下面就具体介绍第二章程序的灵魂——算法。
第2章程序的灵魂——算法2.1 算法的概念★几个基本概念❖数据:是计算机程序处理的对象,可以是整数、实数、字符,也可以是图像、声音等的编码表示。
❖数据结构:程序中指定数据的类型与数据的组织形式●在程序设计语言中,与数据结构密切相关的便是数据的类型和数据的存放。
❖软件= 程序+ 文档。
❖程序:用程序设计语言表达问题的求解过程。
●程序=数据结构+算法。
❖算法:用某种工具(文字、数学公式、框图、计算机伪代码等)解决问题的步骤。
程序设计1. 对于较小的简单问题,一般采用下列步骤进行程序设计:●确定数据结构,如:变量、数组●确定算法●编写程序代码●上机调试●整理并写出文档资料2. 对于较大的复杂问题采用的是“模块化、自顶向下、逐步细化”的程序设计方法。
2.2 算法的基本表达方法(1) 什么是算法?简单地理解,算法是为解决一个特定问题而采取的确定的、有限的方法和步骤。
(2) 算法的特性(P19)正确的算法应该满足5个特性:•有穷性:一个算法应包含有限的操作步骤,而不是无限的。
•确定性:算法中的每个步骤都应该是确定的,不应含糊不清。
(不应产生歧义)•有效性:每个步骤都应有效执行,得到确定结果。
如果b=0,则执行a/b就不能有效执行。
第2章算法——程序的灵魂2第章算法——程序的灵魂算法+数据结构=程序数据结构对数据的描述。
在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。
算法对操作的描述。
即要求计算机进行操作的步骤沃思数据结构程序设计方法语言工具算法程序员算法广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
对同一个问题,可以有不同的解题方法和步骤。
为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
数值运算的目的是求数值解。
由于数值运算往往有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,算法比较成熟。
非数值运算算法算法计算机在非数值运算方面的应用远超在数值运算方面的应用。
非数值运算的种类繁多,要求各异,需要使用者参考已有的类似算法,重新设计解决特定问题的专门算法。
数值运算算法1.算法算法定义算法特征定义:现实生活中解决问题时,一般都要制订一个针对具体问题的步骤和方法,以此为据去实现目标。
将为了解决问题所制订的步骤、方法称为算法(Algorithm)。
算法描述:计算下面的分段函数。
(1)输入x的值;(2)判断x是否大于0,若大于0,则y为2x-1,然后转第5步;否则进行第3步;(3)判断x是否等于0,若等于0,则y为0,然后转第5步;否则进行第4步;(4)y 为3x+1;(5)输出y的值后结束。
C语言程序设计1.算法算法定义算法特征特征:(1)有穷性:算法中所包含的步骤必须是有限的,不能无穷无止,应该在一个人所能接受的合理时间段内产生结果;(2)确定性:算法中的每一步所要实现的目标必须是明确无误的,不能有二义性;(3)有效性:算法中的每一步如果被执行了,就必须被有效地执行。
例如,有一步是计算X除以Y的结果,如果Y为非0值,可有效执行,但如果Y为0值,则无法得到有效执行;(4)有零或多个输入:根据算法的不同,有的在实现过程中需要输入一些原始数据,而有些算法可能不需要输入原始数据;(5)有一个或多个输出:设计算法的最终目的是为了解决问题,为此,每个算法至少应有一个输出结果,来反应问题的最终结果。