(共16张PPT)
2.3 用算法解决问题的过程
11.11战争
你遇到过这样的情况
或者自己参与过这样的活动吗?
30%
1
每人每天有6次邀请助力的机会,成功邀请助力一次可得10助力金
OFF
某助力活动规则
每人每天有6次邀请助力的次数,成功助力一次可得10助力金
2
完成全部6次助力,当天可额外获得10助力金
3
连续三天以上完成全部助力,从第四天起每天可额外获得5金
本问题的已知数据有哪些?
(1)
本问题的求解目标是什么?
(2)
提炼核心要素
使用变量n表示总天数
变量Xi表示第i天邀请的人数
统计n天过去以后,用户总共领取的助力金总额
用变量total表示
如何计算第i天的助力金Si?
(1)
如何计算n天过去以后,该用户总共领取的助力金总数total?
(2)
建立计算模型
t =
假如有一组数据:
抽象与建模
第一步
用算法解决问题的过程
输入总天数n
1
处理步骤
① 输入数据
表示天数的变量 i 初始化为1
2
若 i<=n,则转④,否则转⑦
3
输入第 i 天的数据Xi
4
根据当前输入的Xi,计算当天的助力金,并累加到total
5
表示天数的变量 i 增加1,然后转③
6
输出变量total的值
7
② 处理数据
③ 输出结果
抽象与建模
第一步
用算法解决问题的过程
第二步
设计算法
输入总天数n
1
处理步骤
① 输入数据
表示天数的变量 i 初始化为1
2
若 i<=n,则转④,否则转⑦
3
输入第 i 天的数据Xi
4
根据当前输入的Xi,计算当天的助力金,并累加到total
5
表示天数的变量 i 增加1,然后转③
6
输出变量total的值
7
② 处理数据
③ 输出结果
这个算法要用到什么结构?
如何细化这个算法?
流程图表示算法
开始
输入总天数n
i<=n
i←1,total←0,c←0
是
输入当天邀请数X
X=6
是
c=c+1
否
c=0
c>=4
是
t=75
否
t=70
t=10X
total=total+t
输出总奖金total
结束
i=i+1
如何细化加框处算法?
抽象与建模
第一步
用算法解决问题的过程
第二步
设计算法
第三步
描述算法
练地上整齐的铺满了边长为1分米的正方形砖块,以某四块砖的交点为圆心,画一个半径为r分米的圆,计算圆内包含的完整的砖块数。
本问题的已知数据:
砖块边长为1,圆的半径为r
本问题的求解目标:
圆内完整的砖块数n
练地上整齐的铺满了边长为1分米的正方形砖块,以某四块砖的交点为圆心,画一个半径为r分米的圆,计算圆内包含的完整的砖块数。
1 2 3 4 5
第一组:
第二组:
……
最后一组:
练习
k ←不超过r的最大整数,c ←0,j ←1
N
开始
Y
结束
j<=k
输出:n
输入:半径r
c = c + v
j = j + 1
1、用 k 表示最大组数
2、用 j 表示当前正在计算第几组
3、用 v 表示当前组完整的砖块数
4、用 c 表示四分之一圆内完整的
砖块数量
n=4*c
总结
抽象与建模
第一步
第二步
设计算法
第三步
描述算法
总结