课件28张PPT。§1.2.3 算法基本语句
算法初步温故而知新1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句 INPUT “提示文字”;变量输出语句 PRINT “提示文字”;表达式赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF3、设计一个计算1+2+3+……+100的算法,并画出程序框图. 循环结构的定义: 在一些算法中,从某处开始,按照一定条件,反复执行
某一处理步骤的情况,这就是循环结构。
反复执行的处理步骤称为循环体。两种循环结构有什么差别?While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。先执行 后判断先判断 后执行3、循环结构的程序框图思考:如何用程序语句表示呢?WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。 当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。 i = 1S = 0WHILE i<=100i = i + 1S = S + iWENDPRINT SEND例1、根据1.1.2例3中的程序框图,编写
计算机程序来计算1+2+…+100的值i = 1S = 0DOi = i + 1sum = sum + iLOOP UNTIL i>100PRINT SEND例1、根据1.1.2例3中的程序框图,编写
计算机程序来计算1+2+…+100的值1、下面是一个计算20以内的正偶数的积的算法。请填写程序框图和相应的程序。i=——
S=——
WHLIE ________
________
________
WEND
PRINT S
END21S=S*i12i=i+2i<=20?S=S*ii=i+2i<=20?练习 P322、编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)开始结束i=i+1m=m*im=1,i=1输入n输出mi>n?1122算法步骤:第一步,输入n第二步,令m=1,n=1第三步,计算m=m*i,i=i+1第四步,若i>n则输出m,
否则返回第三步程序框图:YNm=1
i=1
INPUT "请输入n的值:";n
DO
m=m*i
i=i+1
LOOP UNTIL i>n
PRINT "这个数的阶乘为:";m
END程序语句:思考:编写一个程序,输入正整数n,计算sum=1!+2!+...+n!3、根据下面的程序,画出
其算法的程序框图i=-1
WHILE i<=1
x=i
y=x*x*x
i=i+0.2
PRINT “y=”;y
WEND
END开始结束i<=1i=-1i=i+0.2y=x*x*xx=i输出yNY4、根据下面的程序语句画出对应的程序框图,并分析程序的结果。s=0
i=2
WHILE i<=18
s=s+i
i=i+3
WEND
PRINT “s=”;s
END(1)(2)i=1
sum=0
m=1
DO
m=m*i
sum=sum+m
i=i+1
LOOP UNTIL i>10
PRINT sum
ENDS=574037913sum=1!+2!+...+n!课堂小结1、循环结构的程序表示2、循环语句的一般格式3、程序框图和程序语言的相互转换循环语句WHILE 条件成立
循环体
WENDDO
循环体
LOOP UNTIL 条件成立作业课本P50 A组第4题循环结构的程序框图循环语句WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件例题:例8、编写程序,计算函数f(x)=x3+3x2-24x+30当连续输入11个自变量-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值。练习、用直到型循环语句设计一个计算10个数平均数的算法,并写出程序.开始结束输出A输入xs=0,i=1i=i+1s=s+xi>10?A=s/101122NY程序框图:算法语句:s=0,i=1
DO
INPUT x
s=s+x
i=i+1
LOOP UNTIL i>10
A=s/10
PRINT A
END例9.根据你画出的用二分法求方程x2-2=0的
近似根的程序框图,写出相应的程序语句。INPUT”a,b,d=“;a,b,d
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)<=d or f=0
PRINT "方程的近似根为:";x
ENDa=1,b=2,d=0.005
DO
m=(a+b)/2
g=a^2-2
f=m^2-2
IF f=0 THEN
PRINT "方程根为:";x
ELSE
IF g*f<0 THEN
b=m
ELSE
a=m
END IF
END IF
LOOP UNTIL ABS(a-b)<=d
PRINT "方程的近似根为:";x
END该程序若是区间端点恰为方程的根,则陷入死循环,入方程改为x^2-4=0[1,3]P32按照图1.1-2中的程序
框图编写程序,判断大于2的整数是否为质数。 INPUT “n=”;n
i=2
DO
r= n MOD i
i=i+1
LOOP UNTIL i>=n-1 OR r=0
IF r=0 THEN
PRINT n;“is not a prime number."
ELSE
PRINT n;“is a prime number."
END IF
END INPUT “n=”;n
i=2
DO
r= n MOD i
IF r=0 THEN
PRINT n;“is not a prime number."
ELSE
i=i+1
END IF
LOOP UNTIL i>=n-1
PRINT n;“is a prime number."
END5、设计一个算法框图:求满足1+2 + 3 + … + n>1000的最小正整数n,并写出相应的QBASIC程序。i = 0sum = 0DOi = i + 1sum = sum + iLOOP UNTIL sum>1000PRINT iEND练习巩固6、设计一个算法框图:逐个输出12,22,32,…,n2,并写出相应的QBASIC程序。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
END作业:课本P33
习题1.2B组第2题