(共27张PPT)
1、输入语句、输出语句和赋值语句对应于算法中的哪种结构?这三种语句的一般格式是什么?
2、什么是条件结构?用程序框图表示这种结构
顺序结构
输入语句
输出语句
赋值语句
INPUT “提示文字”;变量
PRINT “提示内容”;表达式
变量=表达式
满足条件?
语句1
语句2
是
否
复习
满足条件?
是
否
语句
1、理解基本算法语句—条件语句,及其与条件结构的关系.
2、初步体验如何由程序框图转化为程序语句.
3、通过条件语句的学习,进一步体会算法的基本思想.
学习目标
程序框图
条件语句的一般格式
IF 条件 THEN
语句体(步骤A)
END IF
如果(IF)条件满足,那么(THEN)执行语句体,否则执行END IF之后的语句.
步骤A
满足条件?
是
否
学习过程
满足条件?
步骤A
步骤B
是
否
程序框图
条件语句的一般格式
IF 条件 THEN
语句体1(步骤A)
ELSE
语句体2(步骤B)
END IF
如果(IF)条件满足,那么(THEN)执行语句体1,否则(ELSE)执行语句体2.
1.IF与END IF要配对使用.
2.END IF是结束条件语句,END则是结束整个程序.
在某些情况下,也可以只使用IF—THEN语句:(即IF—THEN 格式)
IF 条件 THEN
语句
END IF
满足条件?
是
否
语句
练习1.编写一个程序,从键盘上输入一个数,若是正数就将其输出。
程序: INPUT “x=” ;x
IF x>0 THEN
PRINT x
END IF
END
练习2.把下列语句的意义翻译成程序框图
(1)
IF x>0 THEN
y=1
ELSE
y=0
END IF
(2)
IF x<0 THEN
x=ABS(x) END IF PRINT“x的绝对值为:”;x
程序框图
算 法
第一步 输入一个实数 . 第二步 判断 的符号.若 ,则输出 ;否则,输出 .
是
输出
开始
输入
结束
否
输出
INPUT x
IF x>=0 THEN
PRINT x
ELSE
PRINT - x
END IF
END
程 序
例1 设计一个程序,求实数 的绝对值.
例2 编写程序,输出两个不相等的实数a、b的最大值.
算法一:
第一步,输入a, b的数值.
第二步,判断a,b的大小关系,若a>b,则输出a的值,否则,输出b的值.
程序框图
程序如下:(“IF—THEN—ELSE”语句)
INPUT “a,b”;a,b
IF a>b THEN
PRINT a
ELSE
PRINT b
END IF
END
算法二:
第一步,输入a,b的数值.
第二步,判断a,b的大小关系,若b>a,
则将b的值赋予a;否则,直接执行第三步.
第三步,输出a的值,结束.
(程序框图如下图)
程序如下:(“IF—THEN”语句)
INPUT “a,b”;a,b
IF b>a THEN
a=b
END IF
PRINT a
END
练习 编写求一个数是偶数还是奇数的程序,从键盘上输入一个整数,输出该数的奇偶性。
程序:INPUT “x=”;x
y= x MOD 2
IF y=0 THEN
PRINT x ; “该数是偶数”
ELSE
PRINT x ; “该数是奇数”
END IF
END
程序: INPUT “x=”;x
IF x>0 AND x<=20 THEN
y=0.35﹡x
ELSE
y=0.35﹡20+0.65﹡(x-20)
PRINT “y=”;y
END IF
END
探究交流:火车托运行李的收费方法如下:
y是收费,x为行李重量,当0<x≤20(千克)时,按每千克0.35元收费。当x>20(千克)时,20千克的部分按0.35元的单价收费,超出20千克的部分,则按0.65元的单价收费。请根据上述收费方法编写程序。
(0(x > 20)
某市公用电话(市话)的收费标准为:
3分钟之内(包括3分钟)收取0.30元;
超过3分钟部分按0.10元/分钟加收费.
设计一个程序,根据通话时间计算话费.
练习
TNPUT “通话时间”;t
IF t<=3 and t>0 THEN
c=0.30
ELSE
c=0.30+0.10*(t-3)
END IF
PRINT “通话费用”;c
END
例4.编写程序,使得任意输入3个整数按从大到小的顺序输出.
算 法
第四步,将b与c比较,并把小者赋给c,大者赋给b
第一步,输入3个整数
第二步,将 与b比较,并把小者赋给b,大者赋给
第三步,将 与c比较,并把小者赋给c,大者赋给
第五步,按顺序输出
INPUT “a,b,c=”;a,b,c
程序
开始
t=a,a=b,b=t
t=a,a=c,c=t
t=b,b=c,c=t
输入a,b,c
输出a,b,c
b>a
c>a
c>b
否
否
否
结束
程序框图
是
是
是
IF b > a THEN
t = a
a = b
b = t
END IF
IF c > a THEN
t = a
a = c
c = t
END IF
IF c > b THEN
t = b
b = c
c = t
END IF
PRINT a,b,c
END
高等数学中经常用到符号函数,符号函数的定义为y=
试编写程序输入x的值,输出y的值.
(嵌套结构)
程序框图
解:程序一
程序如下:
INPUT x
IF x>0 THEN
y=1
ELSE
IF x=0 THEN
y=0
ELSE
y=-1
END IF
END IF
PRINT y
END
(嵌套结构)
程序二
程序框图(右图):
程序如下:
INPUT x
IF x>0 THEN
y=1
END IF
IF x=0 THEN
y=0
END IF
IF x<0 THEN
y=-1
END IF
PRINT y
END
(叠加结构)
例5.编写程序,输入一元二次方程 的系数,输出方程的实数根.
算 法
第一步:输入三个系数
第二步:计算
第四步:判断
是否成立.若是,则输出
否则,计算
并输出
第三步:判断
是否成立.若是,则计算
否则,输出“方程没有实数根”,结束算法.
程序框图
开始
输入
输出
结束
是
输出
是
方程没有实数根
否
否
否
输入a,b,c
开始
=b2-4ac
≥0
是
p=-b/2a
=0
x1=p+q
x2=p-q
输出x1,x2
无解
输出p
结束
是
否
程 序
p= – b/(2*a)
q=SQR(d)/(2*a)
IF d>=0 THEN
IF d=0 THEN
PRINT “xl,x2=”;p+q,p-q
END IF
ELSE
PRINT “No real root.”
END IF
END
INPUT “a,b,c=”;a,b,c
PRINT “x1=x2”;p
ELSE
d=b^2-4*a*c
满足条件?
步骤A
是
否
程序框图
条件语句的一般格式
IF 条件 THEN
语句体
END IF
满足条件?
步骤A
步骤B
是
否
IF 条件 THEN
语句体1
ELSE
语句体2
END IF
P29)练习1程序
INPUT “a,b,c=“;a,b,c IF a+b>c AND a+c>b AND b+c>a THEN PRINT “YES” ELSE PRINT “NO” END IF END
P29)练习2程序
INPUT “Please input an integer:”;x
IF 9a=x\10
b=x MOD 10
x=10 b+a
PRINT x
END IF
END
P29)练习3程序
INPUT “Please input an integer:“;a
IF a MOD 2=0 THEN
PRINT “Even.”
ELSE
PRINT “Odd.”
END IF
END
P29)练习4程序 INPUT “Please input a year:“;y b=y MOD 4 c=y MOD 100 d=y MOD 400 IF b=0 AND C<>0 THEN PRINT “Leap year.” ELSE IF d=0 THEN PRINT “Leap year.” ELSE PRINT “Not leap year.” END IF END IF END(共22张PPT)
1.1.2 程序框图与算法 的基本逻辑结构
第二课时
问题提出
1.用程序框、流程线及文字说明来表示算法的图形称为程序框图,它使算法步骤显得直观、清晰、简明.其中程序框有哪几种基本图形?它们表示的功能分别如何?
终端框 (起止框)
输入、输出框
处理框 (执行框)
判断框
流程线
2.顺序结构是任何一个算法都离不开的基本逻辑结构,在一些算法中,有些步骤只有在一定条件下才会被执行,有些步骤在一定条件下会被重复执行,这需要我们对算法的逻辑结构作进一步探究.
知识探究(一):算法的条件结构
思考1:在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两种形式:
满足条件?
步骤A
步骤B
是
否
满足条件?
步骤A
是
否
你如何理解这两种程序框图的共性和个性?
思考2:判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?
第二步,判断a+b>c,b+c>a,c+a>b是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角形.
第一步,输入三个正实数a,b,c.
思考3:你能画出这个算法的程序框图吗?
开始
输入a,b,c
a+b>c,b+c>a,c+a>b是否同时成立?
是
存在这样的三角形
结束
否
不存在这样的三角形
知识探究(二):算法的循环结构
思考1:在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包含条件结构吗?
思考2:某些循环结构用程序框图可以表示为:
循环体
满足条件?
是
否
这种循环结构称为直到型循环结构,你能指出直到型循环结构的特征吗?
在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.
思考3:还有一些循环结构用程序框图可以表示为:
循环体
满足条件?
是
否
这种循环结构称为当型循环结构,你能指出当型循环结构的特征吗?
在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环.
思考4:计算1+2+3+…+100的值可按如下过程进行:
第1步,0+1=1.
第2步,1+2=3.
第3步,3+3=6.
第4步,6+4=10.
……
第100步,4950+100=5050.
我们用一个累加变量S表示每一步的计算结果,即把S+i的结果仍记为S,从而把第i步表示为S=S+i,其中S的初始值为0,i依次取1,2,…,100,通过重复操作,上述问题的算法如何设计?
第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.
第一步,令i=1,S=0.
第二步,计算S+i,仍用S表示.
第三步,计算i+1,仍用i表示.
思考5:用直到型循环结构,上述算法的程序框图如何表示?
开始
i=1
i>100?
是
输出S
结束
S=0
i=i+1
S=S+i
否
思考6:用当型循环结构,上述算法的程序框图如何表示?
开始
i=1
结束
输出S
否
是
S=0
S=S+i
i≤100?
i=i+1
例1 设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.
理论迁移
算法分析:
第一步,输入三个系数a,b,c.
第二步,计算△=b2-4ac.
第三步,判断△≥0是否成立.若是,则计 算 ;否则,输出“方程没有 实数根”,结束算法.
第四步,判断△=0是否成立.若是,则输出 x1=x2=p,否则,计算x1=p+q,x2=p-q, 并输出x1,x2.
程序框图:
开始
输入a,b,c
△= b2-4ac
△≥0?
△=0?
否
x1=p+q
输出x1,x2
结束
否
是
x2=p-q
输出x1=x2=p
是
输出“方程没有实数根”
例2 某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.
第三步,判断所得的结果是否大于300. 若是,则输出该年的年份; 否则,返回第二步.
第一步, 输入2005年的年生产总值.
第二步,计算下一年的年生产总值.
算法分析:
(3)控制条件:当“a>300”时终止循环.
(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.
(2)初始值:n=2005,a=200.
循环结构:
开始
n=2005
a=200
t=0.05a
a=a+t
n=n+1
a>300?
结束
输出n
是
否
程序框图:
(3)条件结构和循环结构的程序框图各有两种形式,相互对立统一.
条件结构和循环结构的基本特征:
小结作业
(1)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框.
(2)循环结构中包含条件结构,条件结构中不含循环结构.
作业:
P20习题1.1A组:2,3.