基本程序语言:循环语句

文档属性

名称 基本程序语言:循环语句
格式 rar
文件大小 149.7KB
资源类型 教案
版本资源 人教新课标A版
科目 数学
更新时间 2009-08-01 21:36:00

图片预览

文档简介

课件25张PPT。基本程序语言 城步一中:刘本红 循环语句情境引入:圆周率是一个极其弛名的数,德国数学家康托说:“历史上一个国家所算得的圆周率的准确程度,可作为衡量这个国家当时数学发展水平的指标。”那么:
1,你知道我国的祖冲之计算出的圆周率是多少?而现在计算机计算出的圆周率是小数点后多少位数吗?
温故而知新思考:前面我们学了几种算法语句?4、条件语句1、输入语句 INPUT “提示内容 ”;变量2、输出语句 PRINT “提示内容 ”;表达式3、赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF循环结构的定义: 在一些算法中,从某处开始,按照一定条件,反复执行
某些步骤的情况,这就是循环结构。
反复执行的步骤称为循环体。探究:两种循环结构有什么差别? 成立P不成立循环体P成立不成立While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。先判断指定的条件是否成立,若条件成立,执行循环体,条件不成立退出循环。先执行 后判断先判断 后执行循环体循环结构循环体P成立不成立While(当型)循环算法中的循环结构是由循环语句来实现的。 成立循环体P不成立Until(直到型)循环两种循环语句:WHILE 条件
循环体
WEND(1)WHILE语句的一般格式: 当计算机遇到WHILE语句时,先判断条件是否成立,如
果条件成立,就执行WHILE与WEND之间的循环体;然
后再检查上述条件,如果条件仍符合,再次执行循环体,
这个过程反复进行,直到某一次条件不符合为止.这时,
计算机将不执行循环体,直接跳到WEND语句后,接着执
行WEND之后的语句.练习、根据1.1.2例3中的程序框图,编写
计算机程序来计算1+2+…+100的值i=1
s=0
WHILE i<=100
s=s+i
i=i+1
WEND
PRINT s
END程序:Until(直到型)循环DO
循环体
LOOP UNTIL 条件(2)UNTIL语句的一般格式:思考1:参照直到型循环结构,说说计算机是按怎样
的顺序执行UNTIL语句的? 思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.i=1
s=0
DO
s=s+i
i=i+1
LOOP UNTIL i>100
PRINT s
END结束程序框图:程序:探究:当型循环语句与直到型循环语句的区别?i=1
s=0
DO
s=s+i
i=i+1
LOOP UNTIL i>100
PRINT s
ENDi=1
s=0
WHILE i<=100
s=s+i
i=i+1
WEND
PRINT s
END思考3:比较下面这两个程序运行的结果程序2
i=6
S=1
DO
S=S*i
i=i-1
LOOP UNTIL i?=5
PRINT S
END 程序1
i=6
S=1
WHILE i?0 AND i?=5
S=S*i
i=i-1
WEND
PRINT S
ENDS=1S=6我们再回到引入中的问题例题3.根据你画出的用二分法求方程x2-2=0的
近似根的程序框图,写出相应的程序语句。2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值。1.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)例题1.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)例题2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值。例题3.根据你画出的用二分
法求方程x2-2=0的
近似根的程序框图,
写出相应的程序语句。结束f(a)=a2-2否练习INPUT a,b,c
DO
m=(a+b)/2
f(a)=a^2-2
f(m)=m^2-2
IF f(m)=0 THEN
PRINT "方程根为:";m
ELSE
IF f(a)*f(m)<0 THEN
b=m
ELSE
a=m
END IF
END IF
LOOP UNTIL ABS(b-a)<=c
PRINT "方程的近似根为:";m
END结束结束” |b-a|DO
m=(a+b)/2
g=a^2—2
f=m^2—2
IF g*f<0 THEN
b=m
ELSE
a=m
END IF
LOOP UNTIL ABS(a—b)PRINT m
END探讨:这个程序框图是否正确?如果正确请写出相应的程序。探究:比较这两个程序的优劣NPUT a,b,c
DO
m=(a+b)/2
f(a)=a^2-2
f(m)=m^2-2
IF f(m)=0 THEN
PRINT "方程根为:";m
ELSE
IF f(a)*f(m)<0 THEN
b=m
ELSE
a=m
END IF
END IF
LOOP UNTIL ABS(b-a)<=c
PRINT "方程的近似根为:";m
ENDINPUT“a,b,c=”;a,b,c
DO
m=(a+b)/2
g=a^2—2
f=m^2—2
IF g*f<0 THEN
b=m
ELSE
a=m
END IF
LOOP UNTIL ABS(a—b)PRINT m
END
巩固提高1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的程序。INPUT n
i = 0
WHILE i < n
i = i + 1
t = i ^ 2
PRINT t
WEND
ENDINPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = n
END2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的程序。i = 0s= 0DOi = i + 1s= s + iLOOP UNTIL s>10000PRINT iENDs= 0DOi = i + 1s= s + iLOOP UNTIL s>10000PRINT iENDi=1探讨:下面的程序正确吗?2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的程序。
小 结WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件谢谢!请多指教!