(
课件网) 第二章 算法与程序实现 2.4.1基于解析算法的问题解决 目 录CONTENTS 01 温故知新 02 解决问题 03 项目实战 04 阅读拓展 温 故 知 01 新 温故知新 if 条件表达式: 语句块 if 条件表达式: 语句块1 else: 语句块2 if 条件表达式1: 语句块1 elif 条件表达式2: 语句块2 elif 条件表达式3: 语句块3 …… else: 语句块n 1、条件分支选择语句 2、循环语句1 while语句 温故知新 满足条件? 否 循环体 是 退出循环 While 条件 语句后面加冒号 2、循环语句2 for 语句 温故知新 for 变量 in 序列: 语句块(循环体) for与range() 是天生的一对。 例:循环输出0到100的自然数。 for i in range(0,101): print (i) 题1、左侧程序运行时,从键盘上输入-3,则输出的值为( ) A -3 B 3 C 1 D -1 温故知新 X=float(input(“请输入x的值”)) If x>0: Y=1 Else if x=0 y=0 Else Y=-1 Print (y) 题2、执行如图所示的程序框图,若输出的k=5,,则输入的整数p的最大值为 A 7 B 15 C 31 D 63 温故知新 题3、图中的循环体语句用python语句如何描述? 题4、下面给出的一个用循环语句编写的程序 K=1 Sum=0 While k<10: sum=sum+k 2 k=k+1 Print ( sum ) 温故知新 完成任务: 指出程序所用的是何种循环语句,并指出该程序的算法功能。 请用另一种循环语句的形式把该程序写出来。 (看看老师给出的答案对不对)。 for i in range(1,10): 解 决 问 02 题 问题引入 编写程序, 输入一元二次方程ax2+bx+c=0(a!=0)的系数,输出求解结果。 应用简单的数学知识来分析问题,寻找问题各要素之间的关系,用计算机编程来快速解决。 数学问题 建构模型 解析算法: 在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。 要先读题,找出已知条件、求解问题,观察分析找出各要素之间的关系,建立解析关系表达式。????? 解析就是深入分析、剖析的意思。? ??? 核心概念 解析算法 深入讲解 用解析法编程来解决问题 1.分析问题、建立数学模型。 已知 问题 求解问题 解析关系表达式 关键 2.设计算法,确定范围 4.调试程序 3.编写程序 分析交流 设判别式△=b2-4ac (1)当△>0时,一元二次方程有两个不等的实数根。 (2)当△=0时,一元二次方程有两个相等的实数根。 (3)当△<0时,一元二次方程没有实数根。 一元二次方程的根有三种不同情况: 是 △=b2-4ac △>0? 否 多分支循环 解决问题 将右侧程序补充完整 ax2+bx+c=0 (a!=0) =-c/b b 2-4 a c =(-b+math.sqrt(d))/(2 a) =(-b-math.sqrt(d))/(2 a) 解决问题 Python 的标准库是在安装软件时默认自带的。 标准库提供的组件数量非常庞大,涉及范围十分广泛。标准库包括核心语言的数据类型、内置函数和功能模块。在使用标准库前,需使用import 语句进行导入。 math 库、time 库、turtle 库和pickle 库都是标准库。 标准库是Python不可分割的一部分。 上述程序用到math 库,如不使用库,以数学学科的算法规则,本程序中的语句将如何改写? x1=(-b+math.sqrt(d))/(2 a) #方程的根 x2=(-b-math.sqrt(d))/(2 a) #方程的根 改写后并能在python语言中运行。 探究: 项 目 实 03 战 割圆术 割之弥细 所失弥少 割之又割 以至于不可割 则与圆合体而无所失矣 ? ? ? ? ? ? ? ? ? ?--《海岛算经》刘徽 中国的圆周率比西方早了近一千年 可谓是古人伟大的发现之一 当古时智慧与现代技术相结合 又会碰撞出怎样的火花呢 接下来让我们一起 用现代的Python 循着古时割圆术的思路 求出圆周率这一奇妙的数字 割圆术 1、刘徽发明“割圆术”是为求“圆周率”。那么圆周率究竟是指什么呢? 2、看左侧,你发现了 ... ...