解析算法
温故知新
1、????2+????????
?
2、2????(??????+????????)(?????????????????)
?
3、X+Y小于10且X-Y要大于0
写出下方的Python表达式
探究一:计算圆的周长及面积
小明今天学习了求解圆的面积以及周长的计算,他平时就很聪明,他决定,用一个程序来解决圆的半径为4时的圆周长和面积的计算问题。
探究一:计算圆的周长及面积
已知条件是什么?
要求的解是什么?
已知与结果之间的表达式怎么写?
分析:
r=4
______①______
r=4
______②______
______③______
print('圆的面积为:',s)
print('圆的周长为:',c)
探究一:计算圆的周长及面积
程序功能:运行程序输出圆的面积和圆的周长
核心概念
解析算法:
在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能够用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。
要先读题,找出已知条件、求解问题,观察分析找出各要素之间的关系,建立解析关系表达式。
解析就是深入分析、剖析的意思
解析算法
深入讲解
用解析法编程来解决问题
1.分析问题、建立数学模型。
已知
问题
求解问题
解析关系表达式
关键
2.设计算法,确定范围
4.调试程序
3.编写程序
1.确保数学表达式的正确。
2.正确描述该数学表达式
再进一步,增强灵活性
import math
__________________
s=math.pi*r**2
c=2*math.pi*r
print('圆的面积为:',s)
print('圆的周长为:',c)
小明想了想,程序现在只能求半径为4的圆,他要修改成能输入半径的程序
更上一层楼
请你根据小明的思路进一步优化程序
小明想让程序能够对输入的半径进行判断。
R<=0,提示输入的半径无效
R>0,计算圆的周长与面积
知识回顾
分支结构的程序实现
import math
r=int(input("请输入圆的半径:"))
if r>0:
s=math.pi*r**2
c=2*math.pi*r
print('圆的面积为:',s)
print('圆的周长为:',c)
else:
print("输入的半径无效!")
程序实现
1.下列问题适合用解析算法求解的是( ? )
A.寻找一堆彩球中的所有红球。
B.计算一个球从100米高的楼顶掉下来落地时的速度。
C.将全班同学根据身高从低到高排队。
D.统计10000以内各位数字之和是18的偶数个数。
课后练习
B
一元二次方程的根有三种不同情况:
设判别式△=b2-4ac
(1)当△>0时,一元二次方程有两个不等的实数根。
(2)当△=0时,一元二次方程有两个相等的实数根。
(3)当△<0时,一元二次方程没有实数根。
设计程序输入参数a,b,c,求一元二次方程的根
将右侧程序补充完整
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)
谢谢