2-1算法的概念与描述 课件-2022-2023学年高中信息技术浙教版(2019)必修1(28张PPT)

文档属性

名称 2-1算法的概念与描述 课件-2022-2023学年高中信息技术浙教版(2019)必修1(28张PPT)
格式 pptx
文件大小 2.2MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-11-10 13:59:40

图片预览

文档简介

(共28张PPT)
第二章算法与问题解决1、算法的概念及描述2、算法的控制结构3、用算法解决问题的过程2.1算法的概念及描述132算法的定义算法的特征算法的要素4算法的描述主要内容问题:狼、菜、羊过河有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,请你说说牧羊人应如何过河?过河步骤:过河的步骤:第一步:人将羊运过去第二步:人返回第三步:人将菜运过去第四步:人将羊运回来第五步:人将狼运过去第六步:人返回第七步:将羊运过去那到底什么是算法?算法的定义算法的特征有1个或多个输出有0个或多个输入确定性可行性有穷性用计算机解决问题,本质上是“数据运算”的方式来实现的。算法的要素能否描述算法的要素在洗衣机洗衣服时的体现控制结构案例:某停车场每个车位的上方都装有传感器(车位探测器)前方装有车位指示灯(空车位显示绿色,否则显示红色)。 车位上方的传感器探测下方的车位是否为空,然后根据探测结果控制车位指示灯的颜色并向区域控制器发送该车位的状态信息(“空车位”或“非空车位”)。请用算法描述上面的案例。算法的描述(1)自然语言描述算法:将传感器回传的数据作为输人数据并进行数字化设定,若测得空车位,则用输入数值1表示,否则用输人数值0表示。用变量flag保存该输人数据。输入flag的值,根据flag的值设置车位上方指示灯的颜色,并输出车位状态(“空车位”或“非空车位”)。(1)自然语言描述算法:解决本问题的算法可以用自然语言描述如下:(1)输人变量flag的值。(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。算法的描述——自然语言自然语言描述算法的优缺点算法的描述——流程图算法的描述——流程图图形名称功能开始/结束符表示算法的开始或结束输入/输出表示数据的输入或输出处理框表示数据的运算处理判断框表示算法中的条件判断流程线表示算法中的流向连接点表示算法中的转接常用的流程图基本图形及其功能算法的描述方法——流程图开始输入苹果的重量xX>2 Y=X*1.5Y=2*1.5+(X-2)*1.5*0.8输出应付款y结束YN案例1:(1)输入苹果的重量x(2)判断苹果的重量是否大于2千克(3)如果苹果的重量不大于2千克,应付款y=x*1.5(4)如果苹果的重量大于2千克,应付款y=2*1.5+(x-2)*1.5*0.8(5)输出应付款的金额算法的描述——流程图案例2:用流程图表示交换a和b的值,并输出。开始a a+bb a-ba a-b结束流程图中a和b为变量,“ ”表示赋值。如果a的值为15,b的值为10,代入到流程图中,看看结果是什么?输入变量a,b的值输出变量a,b的值使用流程图描述算法的优缺点优点:直观、形象、结构清晰缺点:情况复杂时,流程线过多,影响理解。不能被计算机识别和执行。算法的描述——N-S图“N-S图”是由美国学者纳西(Nassi)和斯奈德曼(Shneiderman)提出的一种在流程图中完全去掉流程线,全部算法写在一个矩形框内的算法描述方式。相比于原来的流程图描述,结构性显得更好,也更有助于高效地编写程序。前面车位探测中的算法,可用N-S图表示成如下形式。输入flag的值指示灯绿色指示灯红色输出“空车位”输出“非空车位”Flag=1 是否拓展链接:算法的描述——伪代码(3)伪代码描述算法:flag←车位探测结果; #将测得的车位当前状态值输入给变量flagIf flag=1 then(指示灯绿色输出“空车位”)Else(指示灯红色输出“非空车位”)1.条件判断语句格式1:If条件then(语句序列1)Else(语句序列2 )格式2:If条件then(语句序列1 )2.循环语句格式:while条件(循环体)举例:a的值为5While a>1a = a – 1输出a的值本书语法约定:算法的描述方法——代码(4)计算机程序设计语言描述算法:C++程序设计语言:void MainWindow::on_ pushButton _clicked(){int flag = ui->lineEdit->text().toInt();if(fag== 1){ui->label_ 4->setStyleSheet(“color:green;”);ui->label_ _4->setText(“绿色”);ui->label_ 5->setText(“空车位”);} else {ui->label_ 4->setStyleSheet(“color:red;”);ui->label_ 4->setText("红色");ui->label_ 5->setText("非空车位");}}Python程序设计语言:flag=int(input("输入车位状态值: "))if flag= =1:print("绿色")print("空车位")else:print("红色")print("非空车位")算法的描述方法——程序Private Sub Command1_Click()Dim x As Single, y As Singlex = Val(Text1.Text)If x <= 2 Theny = x * 1.5Elsey = 2 * 1.5 + (x - 2) * 1.5 * 0.8End IfText2.Text = yEnd Sub开始输入苹果的重量xX>2 Y=x*1.5Y=2*1.5+(x-2)*1.5*0.8输出应付款y结束YN算法的描述算法的择优解决同一个问题可能有不同的算法著名数学家华罗庚“烧水泡茶”的两个算法。算法一第一步:烧水;第二步:水烧开后,洗刷茶具;第三步:沏茶。算法二第一步:烧水;第二步:烧水过程中,洗刷茶具;第三步:水烧开后沏茶。第二个算法的科学性在于应用了“统筹方法”区别?哪个更高效?一个好算法必须用到科学的方法小结——算法的概念及描述1.算法的定义:解决问题的方法和步骤2.算法的特征:有穷性、确定性、可行性、0个或多个输入、1个或多个输出3.算法的要素:数据、运算、控制转移4.算法的四种描述方法:自然语言、流程图、伪代码、计算机程序设计语言5.解决同一个问题,可能有多种算法,需要我们对可能的算法择优。作业一、自主学习“更相减损术”并与“辗转相除法”比较,在计算效率和数学本质上有什么异同点。二、完成作业本P89-P90Thanks