循环结构程序设计Word下载.docx
《循环结构程序设计Word下载.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
图5—4—1
其中循环变量超过终值的规则是:
步长为正,大于终值;
步长为负,小于终值。
一般地循环次数可用下列公式计算:
循环次数=INT((终值一初值)/步长)+1
2.条件循环语句
DOWHILE条件
语句组(循环体)
LOOP
(2)功能:
当条件成立(即为真)时,执行DO和LOOP之间的语句组(循环体),否则终止循环,转到LOOP语句的下一句执行。
3.计数循环程序设计关键是确定循环的次数和重复循环的操作;
条件循环程序设计的关键是确定循环的条件和重复循环的操作
三、应用实例
1.编程求1+2+4+8+16+……+2n(n<
64)的值
解:
(1)此题的计算公式是一个和式,加数为2的乘方,可考虑用累加求和的方法来计算。
设累加变量为s,加数为2K,K=O…n。
构造一个关于K的循环,重复执行s←s+2^K,即可算出和式的值。
根据分析,可编程序如下:
INPUTN
LETS=0
FORK=OTON
LETS=S+2^K
NEXTK
PRINT“S=”:
S
END
运行结果如下:
?
63
S=1.844674E19
(2)数列各项为2的0、l、2……n次乘方,即乘数始终为2的累乘积,可构造一个n次循环,用卜T*2累乘(T的初值为1)依次生成数列各项,用S←s+T依次累加各项。
循环结束,其累加和s的值即所求和式的值。
根据分析,可编程序如下:
LETT=1
LETS=T
FORK=lTON
LETT=T*2
LETS=S+T
PRINT“S=”;
运行结果如下:
四、练习实践
1.写出下列程序的运行结果
(1)FORA=1T05
PRINTA,A*A,2^A
NEXTA
(2)LETM=1
INPUTA,B,C
FORI=AToBSTEPC
LETM=M*I
NEXTI
PRINTM
END
①输入l,5,1②输入50,-l,-1
结果为:
结果为:
(3)LETT=1
LETA=0
FORK=lT05
LETA=A+T*K
T=-T
PRINTA
(4)LETM=0
FORX=1TO10
IFINT(X/2)=x/2THEN
LETM=M+X
ENDIF
NEXTX
(5)LETS=O
LETX=2
DOWHILES<
30
LETS=S+X*X
PRINTS
(6)LETA=l
LETB=l
D0WHILEB<
20
PRINTA,B
LETA=A+B
LETB=A+B
2.根据题意,把程序填写完整
(1)求1/2+2/3+3/4+…+99/100的值。
FORI=lTO
LETS=
(2)把输入的6个数中绝对值大于5的数打印出来,并统计这样的数的个数。
LETT=0
FORJ=1T06
INPUTX
IFTHEN
PRINTX,
ENDIF
NEXTJ
PRINT“T=”;
T
教学后记:
第二节小小统计员-----WHILE—WEND语句
一、学习目标
了解WHILE—WEND语句的特点。
WHILE—WEND语句的使用方法。
WHILE—WEND语句的应用。
二、WHILE循环结构 WHILE <
条件>
<
循环体>
WEND
注:
<
是终止循环的逻辑表达式,<
应随循环的执行而变化,最终退出循环。
如:
s=0
i=1
WHILE i<
=100
s=s+i
WEND
构成“死循环”——无终止的循环。
这时可用Ctrl+Break终止其程序运行。
例1(P152例7.5):
如果我国工农业生产每年以12%速度增长,问多少年后产值翻一番:
基值设为100。
(逐年计算产值,看是否达到200)
p=100
r=.12
n=0
WHILEp<
200
p=p*(1+r)
n=n+1
WEND
PRINTn;
"
years"
"
p="
;
p
END
例2(P152例7.6):
给出两个正整数,求它们的最大公约数。
算法:
(辗转相除法)
(1)、以大数m作被除数,小的数n作为除数,相除后余数为r。
(2)、如果r=0,则n就是最大公约数。
否则将n=>
m,r=>
n,重复
(1)。
程序及框图 :
INPUT"
m,n="
m,n
r=mMODn
WHILE r<
>
0
m=n
n=r
r=mMODn
PRINT "
最大公约数为:
"
n
例3(P153例7.7):
给一个整数n(>
2),判别它是否素数(质数)。
判别n是否素数,只要将n被1~(n-1)各数轮流作除数除,若都不被整除,则为素数。
若n不是素数,则n=n1*n2,而n1和n2中必然有一个大于或等于n的开方根,另一个小于或等于n的开方根。
即若n是非素数,则必然有一个因子小于或等于n开方根。
程序及框图:
INPUT "
n="
n
k=INT(SQR(n))
i=2
flag=0
WHILEi<
=kANDflag=0
ifnMODi=0THENflag=1ELSEi=i+1
WEND
IFflag=0THEN
PRINTn;
是素数!
ELSE
不是素数!
ENDIF
END
第三节大浪淘沙----DO---LOOP语句
教学目标:
知识目标:
1.了解条件循环语句的结构
2.掌握条件循环语句执行过程
3.知道条件循环语句编程过程
4.掌握条件循环的格式及执行过程。
能力目标:
能够能读懂条件循环程序并编写简单的条件循环程序。
情感目标:
让学生了解要想做成一件事,应具备一定的条件。
教学重点:
条件循环的格式,执行过程。
教学难点:
循环执行的条件,重复循环的操作。
教学方法:
提问法
学生讨论交流法
训练反馈法
练习巩固法
教学过程:
一、复习旧课
求1+2+3+……+100的方法(计数循环)
二、引入新课
求1+2+3+……到和大于1000为止,怎样求?
叫学生思考,讨论。
通过前面已学习的知识解决这个问题较为困难,于是引出新知——条件循环,它就可完成此题。
格式:
DOWHILE条件
语句组(循环体)
LOOP
功能:
当条件成立(即为真)时,执行DO和LOOP之间的语句组(即循环体);
否则终止循环,转到LOOP语句的下一句执行。
流程图
例题一
统计某班某科考试成绩平均分
S=0
R=0
INPUTX
DOWHILEX>
=0
S=S+X
R=R+1
PRINTS/R
例题二
求从1开始的自然数相加直到和大于1000为止。
X=1
DOWHILES<
=1000
X=X+1
PRINT“S=”;
S
END
练习一
求在等式3□X8256=□3X6528里□中的最小值。
DOWHILE
PRINT
练习二
年产值为1000万,若年增长率为8%,几年后产值翻上两番。
T=1000
N=0
N=N+1
T=
RPINT
总结
介于DOWHILE和LOOP之间的语句是循环体。
确定循环的条件和重复循环的操作。
在循环体中要有能使条件改变的语句。
作业
第一题
X=2
30
S=S+X*X
PRINTS
第二题
A=1
B=1
DOWHILEB<
20
PRINTA,B
A=A+B
B=A+B
板书设计(把主要和重要的容放在黑板的醒目位置——中间)
例题一格式习题
流程图总结
例题二功能作业
时间分配
复习旧课,引入新课(3分钟)
格式,功能,流程图(12分钟)
例题(11分钟)
习题(11分钟)
总结,作业(8分钟)
第四节环环相扣---循环嵌套
一、学习目标
了解循环嵌套的特点。
循环嵌套的使用方法。
循环嵌套的应用。
教学内容、步骤与方法
一个循环体内包含另一个循环
找出100-200间的全部素数。
forn=101to200step2k=int(SQR(n)) i=2 f=0 whilei<
=kandf=0ifnmodi=0thenf=1elsei=i+1
wend iff=0thenprintn,nextn end
例打印乘法九九表
fori=1to9forj=1to9
p=i*j
printp,
nextj
print
nexti
end 打印表