内容正文:
6.1 程序与框图
第 讲 数学与财经商贸
六
程序与框图
程序与框图
5
情景引入
典型例题
新知探究
布置作业
归纳小结
4
3
1
2
情景引入
猜字谜游戏.
规则如下:
①猜10以内的自然数,答案是随机的,每人有三次机会;
②猜错时,程序会给提示(大了还是小了).
如果三次机会用完,都没有猜中正确答案,则提示“游戏结束”.
算法分析:用a表示字谜的正确答案,用x表示猜谜者报出的数字,每猜一个数字x,对应有以下三种结果.
①若x>a,则提示“大了”;
②若x<a,则提示“小了”;
③若x=a,则提示“猜中了”.
如果三次机会用完,都没有猜中正确答案,则提示“游戏结束”.
情景引入
游戏过程的算法步骤归纳如下.
第一步:给定一个谜底a;
第二步:猜谜者猜一个数字x,如果x=a,则提示“猜中了”“游戏结束”,此时,算法结束.否则,若x>a,提示“大了”,反之提示“小了”,进入第三步.
新知探究
算法通常是指为解决一类问题而采取的确定和有限的步骤.
第三步:第二次猜数字x,如果x=a,则提示“猜中了”“游戏结束”,此时,算法结束.否则,若x>a,提示“大了”,反之提示“小了”,进入第四步.
第四步:第三次猜数字x,如果x=a,则提示“猜中了”“游戏结束”,否则提示“游戏结束”,算法结束.
新知探究
典型例题
例1
写出求1×2×3×...×10的一个算法.
算法分析:实数的乘法满足结合律,按从左到右的顺序依次相乘设计算法,乘法的结果用s表示,首先设s为第1个数,即s=1,算法步骤如下.
第一步:求1×2,即s×2,得到s=2;
第二步:求2×3,即s×3,得到s=6;
典型例题
第三步:求6×4,即s×4,得到s=24;
……
第九步:求362880×10,得到s=3 628 800;
因此1×2×3×...× 10=3628 800.
新知探究
算法可以用自然语言来描述,但是为了使算法的程序或步骤表达得更为直观,我们常用框图来表示,框图是一种用程序框、流程线及文字说明来表示算法的图形,下图就是框图.
新知探究
连接程序框图的两个部分
连接点
连接流程框,指明方向
流程线
用于判断,有两个出口
判断框
赋值和计算
处理框(执行框)
表示输入和输出的信息
输入、输出框
表示一个算法的起始和结束
终端框(起止框)
功能
名称
图形符号
典型例题
例1
画出1×2×3×...×10的程序框图.
结束
开始
否
是
输出s
s=1
i=1
i≤10
i=i+1
s=s+i
新知探究
尽管算法千差万别,但都是由顺序结构、条件结构和循环结构这三种基本逻辑结构构成的.
算法的三种基本逻辑结构
新知探究
顺序结构是由若干个依次执行的处理步骤组成的,这是所有算法都离不开的基本结构.顺序结构框图如图所示.
语句A
语句B
典型例题
例2
利用算法和程序框图计算某学生数学、语文、英语、体育和思想政治这五门公共课程的平均成绩.
算法分析:设数学、语文、英语、体育和思想政治这五门公共课程的成绩用a, b, c, d, e来表示,平均成绩用y表示.算法的步骤如下.
第一步:输入该学生的五门公共课程的成绩a, b, c, d, e;
第二步:计算y=(a+b+c+d+e)/5;
第三步:输出y.
典型例题
程序框图如图所示:
开始
输入a,b,c,d,e
y=(a+b+c+d+e)/5
结束
输出y
新知探究
在一个算法中,我们经常需要判断一些条件,算法的流程根据条件是否成立可以有不同的流向,条件结构就是处理这种过程的结构.条件结构的算法流程图如图所示.
满足条件?
步骤B
否
是
步骤A
典型例题
例3
某快递公司的收费标准如下:甲市到乙市,1千克以内12元,超重按3元/千克计费,不足1千克按1千克计算.请写出该快递公司快递费用的算法,并画出程序框图.
分析:设快递费用为y (元),寄件质量为x (千克),根据收费标准,得
其中,[x]为向上取整,即比x大的最小整数,如[2.3]=3.
典型例题
算法分析:显然,算法要判断寄件质量x是否大于1千克,再选择相应的公式进行计算.算法的详细步骤如下.
第一步:输入寄件质量x;
第二步:如果x≤1,那么y=12,否则y=9+3[x];
第三步:输出y.
典型例题
程序框图如图所示:
开始
否
是
输入x
y=12
x≤1
y=9+3[x]
结束
输出y
新知探究
在一些算法中,经常会出现从某处开始,按照一定条件反复执行某一处理步骤的情况,这就是循环结构.反复执行的处理步骤称为循环体,显然,循环结构中一-定包含条件结构.
新知探究
满足条件?
是
否
循环体
满足条件?
否
是
循环体
直到型循环结构
当型循环结构
典型例题
例4
设计一个计算1+2+3+...+ 200的算法,并画出其程序框图.
分析:这是一个求和问题,设S为求和的结果,其初值为0.我们按从左到右的顺序来计算,过程见表
从表中发现,第i步的结果等于前一步的结果加上i,为简便表示,我们用S来存放每一步的计算结果.即S+i的结果仍用S表示,i分别取1,2,..200,这里i就是循环体的循环次数.
典型例题
算法分析如下.
第一步:令i=1, S=0;
第二步:S=S+i;
第三步:i=i+1;
第四步:若i> 200成立,则输出S,结束算法;否则返回第二步.
典型例题
程序框图如图所示:
i=1
开始
S=0
i=i+1
S=S+I
i≤200?
输出S
结束
是
否
当型
结束
开始
i=1
S=0
i=i+1
S=S+I
i>200?
输出S
否
是
直到型
新知探究
程序设计语言包括赋值语句、输入语句、输出语句、条件语句和循环语句,其在Python软件上的使用规则见表
新知探究
典型例题
例5
设计一个算法,找a, b两个数中的最大值max,绘制框图,并编写Python程序.
分析:如果给出具体的两个数,如32和63,我们很容易就能看出最大值是63.对于任意两个数,我们可以用比较大小的方式找两个数的最大值max.
算法分析:若a>b,则max=a,反之max=b.
典型例题
程序框图如图所示:
开始
否
是
输入a,b
a>b
max=b
结束
输出max
max=a
典型例题
Python程序如图所示:
典型例题
例6
某市居民用户每月用电量划分为三档,月电费收费标准如下:第一档(用电量0~260度)为0.542 1元/度;第二档(用电量260~600度)为0.642 1元/度;第三档(用电量601度及以上)为0.892 1元/度.请设计一个算法求居民用户每月的电费,绘制框图,并编写Python程序.
分析:用x表示用户的用电量,p表示该用户的电费.根据题目要求,设计算法如下.
典型例题
第一步:输入一个月的用电量x;
第二步:若0≤x≤260,计算p=x×0.542 1;
第三步:若260<x≤600,计算p=x×0.642 1;
第四步:若x>600,计算p=x×0.892 1;
第五步:输出p.
典型例题
程序框图如图所示:
开始
否
是
输入x
0≤x≤260
结束
输出p
p=0.5421x
是
260≤x≤600
p=0.6421x
p=0.8921x
否
典型例题
Python程序如图所示:
归纳小结
1.本节课你学习了哪些内容?
2.本节课学习的用途?
布置作业
阅读
教材章节6.2
书写
教材P133思考与练习
思考
程序在数学中的应用
作
业
Thanks
$$