版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构不厌其烦的重复的执行的相同工作。计算机的优点:实际生活中,很多工作都是具有重复性的。如计算整个初一年级的考试成绩。同样的程序段,反复地执行多次,这就是循环的概念。11.顺序结构2.选择结构3.循环结构语句1语句2End.布尔表达式语句1语句2程序设计的三种基本结构:TrueFalse布尔表达式语句1后面的语句truefalse2三种循环语句(1)for语句(2)当型循环while语句(3)直到型循环repeat语句3for语句for语句的一般格式:for<循环控制变量>:=<初值>to
<终值>do
语句;for<循环控制变量>:=<初值>downto<终值>do
语句;1.递增型循环2.递减型循环(初值<=终值)(初值>=终值)4for语句1.递增型循环2.递减型循环var
i:integer;beginfori:=1to10dowrite(i:3);end.var
i:integer;beginfori:=10downto1dowrite(i:3);end.5for语句的执行过程:1.先将初值赋给“循环控制变量(也称循环变量)”;2.判断循环变量的值是否超过终值(对递增型来说,“超过”是大于,对递减型来说,“超过”是小于),如果超过则跳到步骤6;3.如果未超过终值,则执行do后面的语句(循环体);4.如果不是最后一次循环,那么循环变量递增(对to)1或递减(对downto)1;5.返回执行步骤26.循环结束,执行for循环下面的语句;var
i:integer;beginfori:=1to10dowrite(i:3);end.6i<=10Write(i)下一个语句i:=i+1i:=1TFfori:=1to10dowrite(i:3);i>=1Write(i)下一个语句i:=i-1i:=10TFfori:=10downto1dowrite(i:3);1.递增型循环2.递减型循环7使用for语句的注意事项:1.循环变量一般习惯使用i,j,k等字母来表示,循环控制变量必须为顺序类型。如整型,字符型等,但不能为实型和int64类型……);var
i:real;beginfori:=1.5to2.5dowrite(i:3);end.8使用for语句的注意事项:2.循环变量的值递增或递减的规律是:选用to则为递增,按succ(x)(后继)函数规律变化;
选用downto则为递减,按pred(x)(前驱)函数规律变化;var
i:char;beginfori:=‘a’to‘z’dowrite(i:3);end.整数则加减1;字符型,则按ASCII码表的顺序计算
succ(‘a’)=‘b’pred(‘d’)=‘c’9var
i,k:integer;beginfori:=1to10do;
k:=k+1;end.使用for语句的注意事项:3.do后面如果有分号,说明循环体是空var
i,k:integer;beginfori:=1to10dok:=k+1;end.do后面有分号,所以循环体是空执行完for语句后,再执行1次k:=k+1for语句的循环体是k:=k+1每次循环都要执行,共执行10次10var
i:integer;beginfori:=1to10do
begin
k:=k+1;
writeln(k);
end;end.使用for语句的注意事项:4.循环体可以是一个语句也可以是一个多个语句;如果是多个语句,则用begin和end括起来,构成一个复合语句;11使用for语句的注意事项:var
i:integer;beginfori:=1to10do
i:=5;end.5.不得在循环体内随意修改循环变量的值;循环变量的初值和终值一经确定,循环次数就确定了。循环变量的值有自己的变化规律,如果随意在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死循环,所以禁止在循环体重随意修改循环变量的值。以上for循环是一个死循环,i永远等于5,不可以达到终止值1012使用for语句的注意事项:var
a,b,i:integer;begina:=1;b:=4;fori:=atobdobegina:=3;b:=5;write(i:3);endend.执行for语句,初值a=1,终值b=4已经确定,则循环次数也已确定为4次。虽然在执行循环体时,a、b又被赋了新值3、5,但着并不影响循环的次数。6.For语句中的初值、终值可以是顺序类型的常量、变量和表达式;13使用for语句的注意事项:fori:=1to10dobeginifi=2thenbreak;end;fori:=1to10dobeginifimod2=0thencontinue;
ans:=ans+i;end;7.终止循环用break语句;结束本次循环直接进入下次循环用continue语句;{循环计到i=2就结束了,后面的3~10不用执行}1~10的循环中,奇数次i就执行ans:=ans+i偶数次i就跳过,不需执行ans:=ans+i
14使用for语句的注意事项:s:=0;fori:=1to1dos:=s+1;8.若循环变量的初值=终值,循环体执行一次;若循环变量的初值>终值,循环体不执行;{循环体s:=s+1执行1次,s的值为1}s:=0;fori:=1to0dos:=s+1;{循环体s:=s+1没有执行,s的值为0}15编程练习1.输出1~20之间的所有偶数。【输入】无【输出】输出1-20之间所有的偶数,输出的偶数之间用空格隔开。Var
i:integer;beginfori:=1to20doifimod2=0thenwrite(i,‘‘);end.16编程练习2.输出1~30之间的所有偶数的个数.【输入】无【输出】输出1-30之间所有偶数的个数。Var
I,s:integer;beginfori:=1to30doifimod2=0thens:=s+1;
writeln(s);end.【分析】设i为循环控制变量,偶数个数放在s中,利用循环变量i的值从1变化到30的规律,逐一寻找偶数的个数,找到偶数就s:=s+1.17编程练习3.输出1~n之间的所有奇数的个数.【输入】一个整数n(n<1000)【输出】1~n之间的所有奇数的个数。【输入样例】7【输出样例】4Var
I,s,n:integer;Begin
readln(n);fori:=1tondoifimod2<>0thens:=s+1;
writeln(s);end.18累加器4.求1+2+3+…+100的和.
s:=0;{变量s存储累加和}fori:=1to100do
s:=s+i;write(s);195.求1+2+3+…+n的和。(n<10000)
编程练习【输入】一个整数n(n<10000)【输出】输出1+2+3+...+n的和。【输入样例】100【输出样例】5050类型标识符名称数据范围字节数格式integer整型-32768~327672带符号16位longint长整型-2147483648~21474836474带符号32位int64int64-9223372036854775809~9223372036854775808【分析】因为n<10000,当n=100时,和为5050,但n=1000,和为500500,但integer的范围是-32768~32767,所以若定义s存储累加和,肯定不够“装”,故需定义更大的数据类型,如longint,甚至更大的int64。206.求12+22+…+n2的和。(n<100)
编程练习【输入】一个整数n(n<100)【输出】12+22+…+n2的和。【输入样例】3【输出样例】14fori:=1tondo
s:=s+i*i;21编程练习7.输出1~n之间的所有偶数的和.【输入】一个整数n(n<200)【输出】1~n之间的所有偶数的和。【输入样例】7【输出样例】12fori:=1tondoifimod2=0then
s:=s+i;22编程练习【输入】一个整数n(n<=1000)【输出】1+1/2+1/3+…+1/n的和。【输入样例】100【输出样例】5.198.求1+1/2+1/3+…+1/n的和。(n<=1000)【保留两位小数】fori:=1tondo
s:=s+1/i;23编程练习【输入】无【输出】abc…zZYX..CBA
。9.打印出字母串“abc…xyzZYX..CBA”fork:='a'to'z'do
write(k);fork:=‘Z'
downto
‘A'do
write(k);能否用writeln?24阶乘n的阶乘:1~n的累乘即n!=1*2*3*…*n规定:0!=1
1!=1n!=n*(n-1)!∵n!=n*(n-1)*(n-2)*…*3*2*1
(n-1)!∴n!=n*(n-1)!
25累乘器10.求1*2*3*…*n的积.即求n!
s:=1;{变量s存储累乘的积,必须初始化为1,不能为0,因为0乘以任何数都是0}fori:=1tondo
s:=s*i;write(s);
readln(n);26累乘器s:=1;fori:=1tondo
s:=s*i;write(s);
readln(n);10.求1*2*3*…*n的积.即求n!这条语句少了,思考一下,会出现什么现象?当n的值为10时,S的值已经是3628800虽然s定义成longint,但当输入12以上的数时,会出现错误的结果,说明结果超出了longint能够储存范围。这时需要定义更大的类型,如int64,或干脆定义成实型变量用科学计数法来近似表示这个数,如real、extended。27上例中用到了“递推”算法。所谓递推算法是指在一个数的序列值中,下一项的值在前一项的值的基础上推算出来的,即下一项对前一项有某种依赖关系。例如,为求5!,应先知道4!的值,然后再乘以5;为求6!必先求出5!。也就是说,从1!可以推出2!,从2!可以推出3!,从3!可以推出4!,以此类推。求n!的递推公式为:
a1=1 (n=1)an=n*an-1 (n>1)a1=1是“初始条件”或“边界条件”。只要找出递推关系,就可以由循环来处理,一项一项地推算出来以后各项。在程序中用同一个变量s来存储每一次推出来的值,由前一个s推出后一个s是递推。28例4.5
已知一对兔子,每个月可以生一对小兔,而小兔经过一个月生长后也可每月生一对小兔。即兔子的对数是:第一个月1对,第二个月2对,第三个月3对,第四个月5对,…,假设兔子的生育期是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?【分析】
根据题目给出的条件,得到算法:设当前月兔子有x对,它的前一个月有lastx对,前二个月有prevx对,明显存在一个递推关系,即x=lastx+prevx。Programex4_5;Vari,lastx,prevx,x:integer;beginprevx:=1;lastx:=2;fori:=3to12dobeginx:=lastx+prevx;prevx:=lastx;lastx:=x;end;writeln(x);end.运行结果:23329简单枚举11.一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y刚好比x大36,请编程求出所有这样的两位数。【输入】无【输出】输出符合条件的两位数,数与数之间换行输出。【分析】①用for循环列举出所有的两位数,x为循环变量;②用公式a:=xdiv10分离出x的十位数字;③用公式b:=xmod10分离出x的个位数字;④用公式y:=b*10+a合成新数y;⑤用式子y-x=36筛选出符合条件的数x并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建公务员面试模拟29
- 北京行政职业能力模拟67
- 2012年4月22日上午浙江省面试真题
- 24.4 解直角三角形 华师大版数学九年级上册教案
- 地方公务员西藏申论52
- 2024年房地产中介佣金协议正式
- 2024年全新60岁离婚协议书范文
- 河南面试模拟56
- 2024年停车场管理系统升级合同
- 2017年4月24日广州单考区公务员考试面试真题
- 2024年江苏鑫邮投资发展集团限公司(国企业)公开招聘工作人员高频难、易错点500题模拟试题附带答案详解
- 统编版高二语文选择性必修上册同步备课第一单元专项练习(非连续文本阅读)(原卷版+解析)
- 2024年区块链应用操作员职业技能竞赛理论参考试题库(含答案)
- 《红星照耀中国》知识点
- 2024年中国弹性塑胶跑道市场调查研究报告
- 2024全国各地区语文中考真题汇编《第一期》
- 项目建筑智能化工程施工招标文件模板
- 辅助生殖技术并发症的护理
- 校园绿化病虫害防治服务合同2024年
- 2024-2030年中国烟熏香味剂行业市场深度调研及发展趋势与投资前景研究报告
- 2023-2024学年北京东城区初二语文(上)期中考试卷附答案解析
评论
0/150
提交评论