资源简介 (共30张PPT)2.1 算法的概念及描述算法的概念广义地讲,“算法”指的是解决问题或完成任务的一系列步骤。在计算机科学领域内,“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。针对同一个问题,可能会有多种算法,每种算法的效率可能会有所差别。换水问题三个杯子,A杯装有“可乐” ,B杯是“雪碧”,C杯是空杯。如何把两个杯子中的饮料互换。方法1:A杯可乐倒入C杯中;B杯雪碧倒入A杯中;C杯可乐倒入B杯中。方法2:B杯雪碧倒入C杯中;A杯可乐倒入B杯中;C杯雪碧倒入A杯中。这就是算法!算法的特征1、有穷性:算法必须保证它的执行步骤是有限的,即它是能终止的。2、确定性:算法中的每个步骤必须是明确的。错误示范:输出:L/正整数正确示范:输出:L/103、可行性:算法中的每一步操作都要是可实施的。错误示范:计算y=x+1的所有整数解正确示范:x=5,计算y=x+1的整数解错误示范:当d<0时输出:正确示范:当d>0时输出:4、有0个或多个输入:算法在执行时需从外界获取可变的数据,如果问题求解时所有数据都是不变且已知的,可以不输入数据。5、有一个或多个输出:算法的目的是求解问题,问题求解的结果应该以一定的方式输出。没有输出的算法没有意义。算法的特征正确示范1:输出:3+2*8正确示范2:输入身高h、体重w,bmi=w/h2,输出bmi错误示范:输入身高h、体重w,计算bmi正确示范:输入身高h、体重w,计算bmi,输出bmi思考把大象放冰箱是不是算法?不是算法,不满足算法的可行性。算法的要素1、数据参与运算的初始数据、中间数据、结果数据。2、运算明确每一步的运算是什么、对哪些数据运算。3、控制转移根据数据或运算结果的特点进行不同的处理,需要控制转移执行不同的操作。算法的要素案例BMI(体重)指数:(1)输入身高h、体重w(2)计算BMI指数(BMI=w/h2)(3)若BMI>=24,输出“超重”;否则,输出“正常”数据运算控制转移算法的描述方法2、流程图3、伪代码1、自然语言4、计算机程序设计语言1.自然语言例:停车场车位探测中的算法(1)输入变量flag的值(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”2、流程图的基本图形及其功能程序框 名称 功能开始/结束 算法的开始和结束输入/输出 输入和输出信息处理 计算与赋值判断 条件判断流程线 算法中的流向2.流程图3.伪代码(1)条件判断语句格式1:if 条件 then (语句序列1) else (语句序列2)格式2:if 条件 then (语句序列1)(2)循环语句格式:while 条件 (循环体)3.伪代码flag 车位探测结果;If flag=1 then(指示灯绿色输出“空车位”)Else(指示灯红色输出“非空车位”)4.计算机程序设计语言flag=int(input(“输入车位状态值:”))if flag==1:print(“绿色”)print(“空车位”)else:print(“红色”)print(“非空车位”)四种描述方法对比 自然语言 流程图 伪代码 计算机语言优点 通俗易懂 结构清晰、寓意明确 直观简洁、写法灵活 能让计算机理解并执行缺点 容易产生歧义 情况复杂时,过多的流程线影响算法的理解 错误不易排查,计算机无法理解并执行 有一定程序设计语言基础的人才能看懂2.2 算法的控制结构一、顺序结构开始结束输入身高、体重计算BMI=体重/身高2输出BMI计算体重指数BMI?按照顺序从上往下依次执行,每条语句必须而且只能执行一次。二、分支结构判断你胖不胖?开始结束输入身高、体重计算BMI=体重/身高2输出“哇,你有点胖了哟”BMI>24输出“羡慕,你一点也不胖”YN我又举个栗子又称选择结构。执行过程根据条件判断选择不同分支执行:条件为真时执行处理Step1,否则执行处理Step2。选择模式对条件是否成立只判断1次。三、循环结构循环结构是一种重复某一部分操作的结构。即在条件控制下,某些操作步骤需要重复执行(循环),在不满足重复处理条件时,循环结束。我要判断100个人胖不胖该怎么办?我还举个栗子开始结束输入身高、体重计算BMI=体重/身高2输出“哇,你有点胖了哟”BMI>24输出“羡慕,你一点也不胖”YNNn=0Yn=n+1n<100三种基本结构流程图AB条件?AB否是A条件?是否3.循环结构2.分支结构1.顺序结构2.3 用算法解决问题的过程1、抽象与建模问题: 设计一算法,求和:1+2+3+…+10算法:第一步:从1开始将自然数1、2、 3、…、10逐个相加;第二步:输出累加结果。思考:1、上边的式子有怎样的规律呢?S=0S=S+ 1S=S + 2S=S + 3…S=S + 102、怎么用流程图表示呢?i = i + 1S=S + i4、如何使程序结束?3、i有什么作用 S呢?S=S + i流程图如图开始i=1s=0i=i+1s=s+1i≤10输出s结束否是课堂总结算法的概念算法的特征:有穷性、可行性、确定性、0个或多个输入、1个或多个输入算法的要素:数据、运算、控制转移算法的描述:自然语言、流程图、伪代码、计算机程序语言1.在求一元二次方程实数根的算法中,当方程不存在实数根时,也要求输出“方程无实数根”。这一要求主要体现了算法特征中的A.有穷性 B.确定性C.有1个或多个输出 D.有0个或多个输入2.不能用算法解决“输出所有偶数”的问题,因为不符合算法特征中的A.有穷性 B.有输出 C.确定性 D.唯一性练一练CA3.下列问题不能用算法描述的是A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数解B.计算某个班级英语成绩的平均分C.列出方程y=2x+1的所有实数解D.根据矩形的长和宽求面积C练一练练一练4.关于算法,下列叙述正确的是 A.一种算法只能用一种程序语言来实现B.流程图是算法的一种表示形式C.解决任何一个具体问题只有一种算法D.算法是解题方法的精确描述,它可以有无限个步骤B5.已知圆柱体底面圆半径r和高h,求圆柱体体积V的算法如下:①V=πr2h ②输入底面圆半径r ③输出体积V ④输入圆柱体高h计算圆柱体体积V,正确的次序是 A.①②④③ B.③②④① C.④②③① D.②④①③D练一练6.用伪代码描述算法:①输入a、b的值;②c←a;③a←b;④b←c;⑤输出a、b的值;当输入a的值为3,b的值为5时,输出结果中a和b的值分别为( )A.3 5 B.3 3 C.5 5 D.5 3D 展开更多...... 收起↑ 资源预览