§1.1.2 程序框图与算法的基本逻辑结构

143
§1.1.2 程程程程程程程程程程程程程程 程程程程程程程程程 程程程程 程程程程 程程程程程程程 - 程程程

Upload: joy-nolan

Post on 02-Jan-2016

94 views

Category:

Documents


8 download

DESCRIPTION

§1.1.2 程序框图与算法的基本逻辑结构. 主讲教师 六安市新安中学 - 陈艳阳. 课前复习. 课前复习. 算法. 课前复习. 算法. 课前复习. 算法. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 知识探究(一):算法的程序框图. 2. 我们将上述算法如下表示:. 2. 我们将上述算法如下表示:. 2. 我们将上述算法如下表示:. 2. 我们将上述算法如下表示:. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: §1.1.2   程序框图与算法的基本逻辑结构

§1.1.2 程序框图与算法的基本逻辑结构

③高中新课程数学必修

第一章 算法初步

主讲教师 六安市新安中学 - 陈艳阳

Page 2: §1.1.2   程序框图与算法的基本逻辑结构

课前复习

Page 3: §1.1.2   程序框图与算法的基本逻辑结构

课前复习算法

Page 4: §1.1.2   程序框图与算法的基本逻辑结构

课前复习算法

在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法.

Page 5: §1.1.2   程序框图与算法的基本逻辑结构

课前复习算法

在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法.

我们可以用自然语言表述一个算法,但往往过程复杂,缺乏简洁性,因此,我们有必要探究使算法表达得更加直观、准确的方法,可以通过程序框图来实现.

Page 6: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图

Page 7: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。

Page 8: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。第一步,给定一个大于2的整数n;

Page 9: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。第一步,给定一个大于2的整数n;第二步,令i=2;

Page 10: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。第一步,给定一个大于2的整数n;第二步,令i=2;第三步,用i除n,得到余数r;

Page 11: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。第一步,给定一个大于2的整数n;第二步,令i=2;第三步,用i除n,得到余数r;第四步,判断“r=0”是否成立.若是,则n不是

质数,结束算法;否则,将i的值增加1,仍用i表示;

Page 12: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(一):算法的程序框图1:复习“判断整数n(n>2)是否为质数”的算法。第一步,给定一个大于2的整数n;第二步,令i=2;第三步,用i除n,得到余数r;第四步,判断“r=0”是否成立.若是,则n不是

质数,结束算法;否则,将i的值增加1,仍用i表示;

第五步,判断“i>(n-1)”是否成立,若是,则n

是质数,结束算法;否则,返回第三步.

Page 13: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

Page 14: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

Page 15: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

输入n输入n输入n

Page 16: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

输入n输入n输入n

i=2i=2i=2

Page 17: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

Page 18: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

Page 19: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

Page 20: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

Page 21: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

Page 22: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

结束结束结束

Page 23: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

否否

结束结束结束

Page 24: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

否否

结束结束结束

Page 25: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

否否

输出“n是质数”输出“n是质数”

结束结束结束

Page 26: §1.1.2   程序框图与算法的基本逻辑结构

2. 我们将上述算法如下表示:

开始开始

输入n输入n输入n

i=2i=2i=2

求n除以i的余数求n除以i的余数求n除以i的余数

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

r=0?r=0?

输出“n不是质数”输出“n不是质数”

否否

输出“n是质数”输出“n是质数”

结束结束结束

Page 27: §1.1.2   程序框图与算法的基本逻辑结构

图形符号 名 称 功 能

终端框(起止框)

输入、输出框

处理框(执行框)

判断框

流程线

表示一个算法的起始和结束

表示一个算法输入和输出的信息

赋值、计算

判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”

连接程序框,表示算法步骤的执行顺序

图形符号 名 称 功 能图形符号 名 称 功 能

终端框(起止框)

输入、输出框

处理框(执行框)

判断框

流程线

表示一个算法的起始和结束

表示一个算法输入和输出的信息

赋值、计算

判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”

连接程序框,表示算法步骤的执行顺序

Page 28: §1.1.2   程序框图与算法的基本逻辑结构

算法的基本逻辑结构:开始

r=0?

输出“n不是质数”

求n除以i的余数

i=2

输入n

i的值增加1,仍用i表示

i>n-1或r=0?

结束

输出“n是质数”

顺序结构

循环结构

条件结构

开始

r=0?

输出“n不是质数”

求n除以i的余数

i=2

输入n

i的值增加1,仍用i表示

i>n-1或r=0?

结束

输出“n是质数”

开始开始

r=0?r=0?

输出“n不是质数”输出“n不是质数”

求n除以i的余数求n除以i的余数求n除以i的余数

i=2i=2i=2

输入n输入n输入n

i的值增加1,仍用i表示i的值增加1,仍用i表示i的值增加1,仍用i表示

i>n-1或r=0?i>n-1或r=0?i>n-1或r=0?

是是

是是

结束结束结束

否否

否否

输出“n是质数”输出“n是质数”

顺序结构

循环结构

条件结构

Page 29: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(二):算法的顺序结构

Page 30: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(二):算法的顺序结构1: 任何一个算法各步骤之间都有明确的顺序性,在算法的程序框图中,由若干个依次执行的步骤组成的逻辑结构,称为顺序结构,用程序框图可以表示为:

步骤n

步骤n+1

步骤n

步骤n+1

Page 31: §1.1.2   程序框图与算法的基本逻辑结构

( )( )( )S p p a p b p c= - - -

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

Page 32: §1.1.2   程序框图与算法的基本逻辑结构

( )( )( )S p p a p b p c= - - -

第一步,输入三角形三条边的边长 a, b, c.

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

Page 33: §1.1.2   程序框图与算法的基本逻辑结构

( )( )( )S p p a p b p c= - - -

第一步,输入三角形三条边的边长 a, b, c.

第二步,计算 . 2

a b cp

+ +=

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

Page 34: §1.1.2   程序框图与算法的基本逻辑结构

( )( )( )S p p a p b p c= - - -

第一步,输入三角形三条边的边长 a, b, c.

第二步,计算 . 2

a b cp

+ +=

第三步,计算 .( )( )( )S p p a p b p c= - - -

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

Page 35: §1.1.2   程序框图与算法的基本逻辑结构

( )( )( )S p p a p b p c= - - -

第一步,输入三角形三条边的边长 a, b, c.

第二步,计算 . 2

a b cp

+ +=

第三步,计算 .( )( )( )S p p a p b p c= - - -

第四步,输出 S.

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

例1若一个三角形的三条边长分别为a,b,c,令p=(a+b+c)/2,则三角形的面积

试用这个公式设计一个计算三角形面积的算法步骤.

( )( )( )S p p a p b p c

Page 36: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示

Page 37: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示开始开始

Page 38: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示开始开始

输入a,b,c输入a,b,c

Page 39: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示

2a b c

p+ +

=

开始开始

输入a,b,c输入a,b,c

Page 40: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示

2a b c

p+ +

=

( )( )( )S p p a p b p c= - - -

开始开始

输入a,b,c输入a,b,c

Page 41: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示

2a b c

p+ +

=

( )( )( )S p p a p b p c= - - -

开始开始

输入a,b,c输入a,b,c

输出S输出S

Page 42: §1.1.2   程序框图与算法的基本逻辑结构

3. 将上述算法的用程序框图表示

2a b c

p+ +

=

( )( )( )S p p a p b p c= - - -

结束结束

开始开始

输入a,b,c输入a,b,c

输出S输出S

Page 43: §1.1.2   程序框图与算法的基本逻辑结构

4.练习:已知下图是“求一个正奇数的平方加5的值”的程序框图,若输出的数是30,求输入的数n的值. 开始

结束

输入正整数n

输出y

y=x2+5

x=2n-1

开始

结束

输入正整数n

输出y

y=x2+5

x=2n-1

Page 44: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(三):算法的条件结构

Page 45: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(三):算法的条件结构

1.在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两种形式:

Page 46: §1.1.2   程序框图与算法的基本逻辑结构

满足条件?

步骤A 步骤B

否满足条件?

步骤A

否满足条件?

步骤A 步骤B

否满足条件?

步骤A 步骤B

否满足条件?

步骤A

否满足条件?

步骤A

Page 47: §1.1.2   程序框图与算法的基本逻辑结构

2.例2: 判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?

Page 48: §1.1.2   程序框图与算法的基本逻辑结构

2.例2: 判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?

第一步,输入三个正实数a,b,c.

Page 49: §1.1.2   程序框图与算法的基本逻辑结构

2.例2: 判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?

第二步,判断a+b>c,b+c>a,c+a>b是否同时成立. 若是,则存在这样的三角形;否则,不存在这样的三角形.

第一步,输入三个正实数a,b,c.

Page 50: §1.1.2   程序框图与算法的基本逻辑结构

3 .请画出这个算法的程序框图。

2.例2: 判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?

第二步,判断a+b>c,b+c>a,c+a>b是否同时成立. 若是,则存在这样的三角形;否则,不存在这样的三角形.

第一步,输入三个正实数a,b,c.

Page 51: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

Page 52: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

Page 53: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

a+b>c,b+c>a,c+a>b是否同时成立?

a+b>c,b+c>a,c+a>b是否同时成立?

Page 54: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

a+b>c,b+c>a,c+a>b是否同时成立?

a+b>c,b+c>a,c+a>b是否同时成立?

存在这样的三角形

存在这样的三角形

Page 55: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

a+b>c,b+c>a,c+a>b是否同时成立?

a+b>c,b+c>a,c+a>b是否同时成立?

存在这样的三角形

存在这样的三角形

结束结束

Page 56: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

a+b>c,b+c>a,c+a>b是否同时成立?

a+b>c,b+c>a,c+a>b是否同时成立?

存在这样的三角形

存在这样的三角形

结束结束

不存在这样的三角形

不存在这样的三角形

Page 57: §1.1.2   程序框图与算法的基本逻辑结构

开始开始

输入a,b,c输入a,b,c

a+b>c,b+c>a,c+a>b是否同时成立?

a+b>c,b+c>a,c+a>b是否同时成立?

存在这样的三角形

存在这样的三角形

结束结束

不存在这样的三角形

不存在这样的三角形

Page 58: §1.1.2   程序框图与算法的基本逻辑结构

3. 练习题( 0)

( 0)

x xy

x x

画出求函数 的函数值的程序框图.

Page 59: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

Page 60: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

Page 61: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

算法分析:

例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

Page 62: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

算法分析:第一步,输入三个系数 a, b, c.

例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

Page 63: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

算法分析:第一步,输入三个系数 a, b, c.

第二步,计算△ =b2 - 4ac.

例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

Page 64: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

算法分析:第一步,输入三个系数 a, b, c.

第二步,计算△ =b2 - 4ac.

例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

第三步,判断△ ≥ 0是否成立.若是,则计算

否则,输出“方程没有实数根”,结束算法.

,2 2b

p qa a

第三步,判断△ ≥ 0是否成立.若是,则计算

否则,输出“方程没有实数根”,结束算法.

,2 2b

p qa a

Page 65: §1.1.2   程序框图与算法的基本逻辑结构

理论迁移

算法分析:第一步,输入三个系数 a, b, c.

第二步,计算△ =b2 - 4ac.

例3设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.

第三步,判断△ ≥ 0是否成立.若是,则计算

否则,输出“方程没有实数根”,结束算法.

,2 2b

p qa a

第三步,判断△ ≥ 0是否成立.若是,则计算

否则,输出“方程没有实数根”,结束算法.

,2 2b

p qa a

第四步,判断△ =0是否成立.若是,则输出x1=x2=p,否则,计算x1=p+q,x2=p-q,并输出x1、x2.

Page 66: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

Page 67: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

Page 68: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

Page 69: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

Page 70: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?

Page 71: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

Page 72: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

Page 73: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?

Page 74: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

Page 75: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

x2=p-qx2=p-q

Page 76: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

x2=p-qx2=p-q

输出x1,x2输出x1,x2

Page 77: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

x2=p-qx2=p-q

输出x1,x2输出x1,x2

结束结束

Page 78: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

x2=p-qx2=p-q

输出x1,x2输出x1,x2输出x1=x2=p输出x1=x2=p

结束结束

Page 79: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

开始

输入a,b,c输入a,b,c

△ = b2-4ac△ = b2-4ac

△≥ 0?△≥ 0?是

2b

pa

2b

pa

2q

a

2

qa

△ =0?△ =0?△ =0?否x1=p+q否x1=p+q

x2=p-qx2=p-q

输出x1,x2输出x1,x2输出x1=x2=p输出x1=x2=p

输出“方程没有实数根”

输出“方程没有实数根”

结束结束

Page 80: §1.1.2   程序框图与算法的基本逻辑结构

练习题

0 ( 0)

1 (0 1)

( 1)

x

y x

x x

画出求函数 的函数值的程序框图.

Page 81: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(四):算法的循环结构

Page 82: §1.1.2   程序框图与算法的基本逻辑结构

知识探究(四):算法的循环结构

思考1:在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包含条件结构吗?

Page 83: §1.1.2   程序框图与算法的基本逻辑结构

思考2:某些循环结构用程序框图可以表示为:

循环体

满足条件?

循环体

满足条件?

Page 84: §1.1.2   程序框图与算法的基本逻辑结构

思考2:某些循环结构用程序框图可以表示为:

循环体

满足条件?

循环体

满足条件?

这种循环结构称为直到型循环结构,你能指出直到型循环结构的特征吗?

Page 85: §1.1.2   程序框图与算法的基本逻辑结构

思考2:某些循环结构用程序框图可以表示为:

循环体

满足条件?

循环体

满足条件?

这种循环结构称为直到型循环结构,你能指出直到型循环结构的特征吗?

在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.

Page 86: §1.1.2   程序框图与算法的基本逻辑结构

思考3:还有一些循环结构用程序框图可以表示为:

循环体

满足条件?是

循环体

满足条件?是

Page 87: §1.1.2   程序框图与算法的基本逻辑结构

思考3:还有一些循环结构用程序框图可以表示为:

循环体

满足条件?是

循环体

满足条件?是

这种循环结构称为当型循环结构,你能指出当型循环结构的特征吗?

Page 88: §1.1.2   程序框图与算法的基本逻辑结构

思考3:还有一些循环结构用程序框图可以表示为:

循环体

满足条件?是

循环体

满足条件?是

在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环.

这种循环结构称为当型循环结构,你能指出当型循环结构的特征吗?

Page 89: §1.1.2   程序框图与算法的基本逻辑结构

第1步,0+1=1.第2步,1+2=3.第3步,3+3=6.第4步,6+4=10.

……第100步,4950+100=5050.

思考4:计算1+2+3+…+100的值可按如下过程进行:

Page 90: §1.1.2   程序框图与算法的基本逻辑结构

第1步,0+1=1.第2步,1+2=3.第3步,3+3=6.第4步,6+4=10.

……第100步,4950+100=5050.

思考4:计算1+2+3+…+100的值可按如下过程进行:

我们用一个累加变量S表示每一步的计算结果,即把S+i的结果仍记为S,从而把第i步表示为S=S+i,其中S的初始值为0,i依次取1,2,…,100,通过重复操作,上述问题的算法如何设计?

Page 91: §1.1.2   程序框图与算法的基本逻辑结构

第一步,令 i=1 , S=0.

Page 92: §1.1.2   程序框图与算法的基本逻辑结构

第一步,令 i=1 , S=0.

第二步,计算 S+i ,仍用 S 表示 .

Page 93: §1.1.2   程序框图与算法的基本逻辑结构

第一步,令 i=1 , S=0.

第二步,计算 S+i ,仍用 S 表示 .

第三步,计算 i+1 ,仍用 i 表示 .

Page 94: §1.1.2   程序框图与算法的基本逻辑结构

第一步,令 i=1 , S=0.

第二步,计算 S+i ,仍用 S 表示 .

第三步,计算 i+1 ,仍用 i 表示 .

第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.

Page 95: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示?

Page 96: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

Page 97: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

Page 98: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

S=0

Page 99: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

S=0

S=S+i

Page 100: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

S=0

i=i+1

S=S+i

Page 101: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

i>100 ?

S=0

i=i+1

S=S+i

Page 102: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

i>100 ?是

输出 S

S=0

i=i+1

S=S+i

Page 103: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

i>100 ?是

输出 S

结束

S=0

i=i+1

S=S+i

Page 104: §1.1.2   程序框图与算法的基本逻辑结构

思考5:用直到型循环结构,上述算法的程序框图如何表示? 开始

i=1

i>100 ?是

输出 S

结束

S=0

i=i+1

S=S+i

Page 105: §1.1.2   程序框图与算法的基本逻辑结构

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 106: §1.1.2   程序框图与算法的基本逻辑结构

开始

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 107: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 108: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

S=0

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 109: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

S=0

i≤100 ?

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 110: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

输出 S

S=0

i≤100 ?

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 111: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

结束

输出 S

S=0

i≤100 ?

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 112: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

结束

输出 S

S=0

S=S+i

i≤100 ?

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 113: §1.1.2   程序框图与算法的基本逻辑结构

开始

i=1

结束

输出 S

S=0

S=S+i

i≤100 ?

i=i+1

思考6:用当型循环结构,上述算法的程序框图如何表示?

Page 114: §1.1.2   程序框图与算法的基本逻辑结构

例4:某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%. 设计一个程序框图,输出预计年生产总值超过300万元的最早年份.

Page 115: §1.1.2   程序框图与算法的基本逻辑结构

算法分析:

例4:某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%. 设计一个程序框图,输出预计年生产总值超过300万元的最早年份.

Page 116: §1.1.2   程序框图与算法的基本逻辑结构

第一步, 输入 2005 年的年生产总值 .

算法分析:

例4:某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%. 设计一个程序框图,输出预计年生产总值超过300万元的最早年份.

Page 117: §1.1.2   程序框图与算法的基本逻辑结构

第一步, 输入 2005 年的年生产总值 .

第二步,计算下一年的年生产总值 .

算法分析:

例4:某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%. 设计一个程序框图,输出预计年生产总值超过300万元的最早年份.

Page 118: §1.1.2   程序框图与算法的基本逻辑结构

第一步, 输入 2005 年的年生产总值 .

第二步,计算下一年的年生产总值 .

算法分析:

例4:某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%. 设计一个程序框图,输出预计年生产总值超过300万元的最早年份.

第三步,判断所得的结果是否大于300. 若是,则输出该年的年份;否则,返回第二步.

Page 119: §1.1.2   程序框图与算法的基本逻辑结构

循环结构:

Page 120: §1.1.2   程序框图与算法的基本逻辑结构

循环结构:

(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.

Page 121: §1.1.2   程序框图与算法的基本逻辑结构

( 2 )初始值: n=2005 , a=200.

循环结构:

(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.

Page 122: §1.1.2   程序框图与算法的基本逻辑结构

( 3 )控制条件:当“ a>300” 时终止循环 .

( 2 )初始值: n=2005 , a=200.

循环结构:

(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.

Page 123: §1.1.2   程序框图与算法的基本逻辑结构

程序框图:

Page 124: §1.1.2   程序框图与算法的基本逻辑结构

开始

程序框图:

Page 125: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005程序框图:

Page 126: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

程序框图:

Page 127: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

程序框图:

Page 128: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

程序框图:

Page 129: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

n=n+1

程序框图:

Page 130: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

n=n+1

a>300 ?

程序框图:

Page 131: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

n=n+1

a>300 ?

输 出n

程序框图:

Page 132: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

n=n+1

a>300 ?

结束

输 出n

程序框图:

Page 133: §1.1.2   程序框图与算法的基本逻辑结构

开始

n=2005

a=200

t=0.05a

a=a+t

n=n+1

a>300 ?

结束

输 出n

程序框图:

Page 134: §1.1.2   程序框图与算法的基本逻辑结构

顺序结构的程序框图的基本特征:

小 结

Page 135: §1.1.2   程序框图与算法的基本逻辑结构

顺序结构的程序框图的基本特征:

小 结

(1)必须有两个起止框,穿插输入、输出框和处理框,没有判断框.

Page 136: §1.1.2   程序框图与算法的基本逻辑结构

顺序结构的程序框图的基本特征:

小 结

( 2 )各程序框从上到下用流程线依次连接 .

(1)必须有两个起止框,穿插输入、输出框和处理框,没有判断框.

Page 137: §1.1.2   程序框图与算法的基本逻辑结构

条件结构的程序框图的基本特征:

小 结

Page 138: §1.1.2   程序框图与算法的基本逻辑结构

条件结构的程序框图的基本特征:

小 结

(1)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框.

Page 139: §1.1.2   程序框图与算法的基本逻辑结构

( 2 )条件结构的程序框图各有两种形式 .

条件结构的程序框图的基本特征:

小 结

(1)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框.

Page 140: §1.1.2   程序框图与算法的基本逻辑结构

循环结构的程序框图的基本特征:

小 结

Page 141: §1.1.2   程序框图与算法的基本逻辑结构

循环结构的程序框图的基本特征:

小 结

(1)循环结构中包含条件结构,条件结构中不含循环结构.

Page 142: §1.1.2   程序框图与算法的基本逻辑结构

( 2 )循环结构的程序框图各有两种形式 .

循环结构的程序框图的基本特征:

小 结

(1)循环结构中包含条件结构,条件结构中不含循环结构.

Page 143: §1.1.2   程序框图与算法的基本逻辑结构

作业 : 习案