资源简介 (共16张PPT)3.3.1 解析算法DATA ACQUISITION AND CODING《数据与计算》0.用算法解决问题的过程抽象与建模找到核心要素得出计算模型设计算法明确输入输出描述数据处理编写程序用计算机程序语言描述,形成计算机程序调试运行程序关注语法错误逻辑错误等1.基本思想【解析算法】是指根据问题的前提条件与所求结果之间的关系,找出求解问题的数学表达式,并通过表达式的计算来实现问题的求解。解题思路:明确问题的前提条件明确要求的解找出前提条件与所求解之间关系的数学表达式1.基本思想【解题关键】要确保数学表达式的正确性在程序中正确描述该数学表达式。(python运算符的正确使用)2. 实例分析Q1:一个小球从高处自由落体落下,经过5秒后到达地面,已知重力加速度g为10m/s,请问小球从距离地面多高的地方落下?1.抽象与建模找到核心要素(问题的前提条件和要求的解)得出计算模型前提条件:自由落体运动时间为5秒,设为t重力加速度g为10m/s,设为g要求的解:小球下落的高度,假设为h根据自由落体运动:h=1/2gt22. 实例分析Q1:一个小球从高处自由落体落下,经过5秒后到达地面,已知重力加速度g为10m/s,请问小球从距离地面多高的地方落下?2.设计算法输入数据处理数据输出数据无h=1/2gt2输出h输入本金p输入期数t输出ht=5g=10h=1/2gt22. 实例分析Q1:一个小球从高处自由落体落下,经过5秒后到达地面,已知重力加速度g为10m/s,请问小球从距离地面多高的地方落下?3.编写程序t=5g=10h=g*t**2/2print(h)输入本金p输入期数t输出ht=5g=10h=1/2gt22. 实例分析Q2:判断一个数是否是3和7的公倍数,请用程序实现上述功能。1.抽象与建模找到核心要素得出计算模型假设要判断的数为 x判断条件:3和7的公倍数3和7的公倍数x%3==0 and x%7==0x是公倍数或x不是公倍数2.设计算法输入数据处理数据输出数据输入xx%3==0 and x%7==0输出x是公倍数或x不是公倍数3.编写程序x=int(input())if x%3==0 and x%7==0:print(‘x是公倍数’)else:print(‘x不是公倍数’)2. 实例分析Q3:判断一个三位数是否是水仙花数(水仙花数:三位数各个位上的数的三次方之和等于它本身,例如:153=1^3+5^3+3^3),请用程序实现上述功能。1.抽象与建模找到核心要素得出计算模型假设要判断的数为y判断条件:各个位上的数的三次方之和等与本身个位:g=y//1%10十位:s=y//10%10百位:b=y//100%10g**3+s**3+b**3==yy是水仙花数或x不是水仙花数2.设计算法输入数据处理数据输出数据输入y个位:g=y//1%10十位:s=y//10%10百位:b=y//100%10g**3+s**3+b**3==y输出y是水仙花数或x不是水仙花数3.编写程序解析算法的概念课堂小结是指根据问题的前提条件与所求结果之间的关系,找出求解问题的数学表达式,并通过表达式的计算来实现问题的求解。解析算法的解题思路明确问题的前提条件明确要求的解找出前提条件与所求解之间关系的数学表达式用算法解决问题的一般过程抽象建模,设计算法,编写程序,调试程序3. 课堂小结4. 课堂实战Q1:输入三角形三条边的边长a,b,c,利用海伦公式求出三角形的面积,请编写程序实现上述功能。4. 课堂实战Q2:公共自行车24小时内租赁费用计算。某市的公共自行车24小时内租车收费标准为:每次1小时内免费,超时后按1元/小时收取(不足1小时按1小时计),24小时内最高限额为10元。输入租赁时常后,输出费用,请完成填空,并用程序实现上述功能。(1)若用变量pay存储租车费用,用变量time存储租赁时间,根据题中收费标准,租车费用pay与租赁时间time之间的关系可用数学公式描述为 ;(2)公共自行车租赁费用pay的计算可用解析算法,具体描述如下,请补充完善。①给定24小时内的租赁起始时间和结束时间:输入租赁开始的时间和结束的时间。注:时间的输入格式为hh:mm:ss,如10:23:11。②计算租赁时间time:计算租赁起始时间和结束时间的时间差time。③计算租赁费用pay:若time小于等于1,则pay为0;若 ,则pay为time;若time大于10,则pay为10。4. 课堂实战(3)编写程序。用变量stime、etime、time、pay分别存储租赁开始时间、结束时间、租赁时间和租赁费用。计算公共自行车租赁费用的某Python程序如下,请在划线处填入相应代码,实现程序功能。stime=input('租车开始时间:')etime=input('租车结束时间:if int(etime.split(":")[0])>=int(stime.split(":")[0]):time=int(etime.split(":")[0])-int(stime.split(":")[0])if int(etime.split(":")[1])>int(stime.split(":")[1]):time=time+1elif int(etime.split(":")[1])==int(stime.split(":")[1]) andint(etime.split(":")[2])>=int(stime.split(":")[2]) :time=time+1if time<=1:pay=0elif :pay=timeelse:②print(pay)(4)完善该程序后,运行程序,输入租车开始时间为“9:40:6”,租车结束时间为“15:35:32”,则程序运行结果为 。4. 课堂实战Q3:配股案例。某股于3月21日起停牌进入配股缴款期,配股缴款截止日期为3月27日。由于配股后股价将除权,忘记或者不参与配股者或不是全额参与配股者,复牌后将面临损失。根据安排,该股本次配股价格为7.02元/股,按照每10股配售1.9股的比例向全体股东配售,其中:配股除权价=(除权登记日收盘价+配股价*每股配股比例)/(1+每股配股比例)全额参与配股的最大配售量计算规则:(1) 该股的配售比例是0.19。也就是说,假如你有10000股该股股份,最大配售量即为10000*0.19=1900(股)。(2)如果所获配股份额不足1股,则0.65股及以上的为1股,0.65股以下的为0股。回答下列问题:(1)若该股的除权登记日收盘价为16.05元,则此次该股的配股除权价为 元;(2)假如你有15000股该股股份,最大配售量为 股;(3)如果不参与配股,该股配股除权后,将直接损失 %;(4)编写程序。用变量spj、pgj、bili、num、cqj、maxps分别存储除权登记日收盘价、配股价、每股配股比例、持有的该股股份数、配股除权价和最大配售量。计算此次该股的配股除权价和最大参与配股配售量的Python程序4. 课堂实战flag=Falsepgj=7. 02 #配股价bili=0.19 #每股配股比例spj=float(input("请输入除权登记日收盘价:"))num =float(input("请输入持有的金风科技股份数:"))cqj = ① #配股除权价maxps= num*bili #最大配售量if ② :flag=Trueif flag :print("配股除权价:", cqj,"最大配售量:",int(maxps)+1)else:print("配股除权价:", cqj,"最大配售量:",int(maxps))5.课后思考思考:如果要找出100以内的所有3和7的公倍数,该如何用程序实现? 展开更多...... 收起↑ 资源预览