循环结构1for语句_第1页
循环结构1for语句_第2页
循环结构1for语句_第3页
循环结构1for语句_第4页
循环结构1for语句_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、循环结构不厌其烦的不厌其烦的重复的重复的执行的执行的相同相同工作。工作。计算机的优点:计算机的优点:实际生活中,很多工作都是具有重复性的。实际生活中,很多工作都是具有重复性的。如计算整个初一年级的考试成绩。如计算整个初一年级的考试成绩。同样的程序段,反复地执行多次,这就是循环的概念。同样的程序段,反复地执行多次,这就是循环的概念。21.顺序结构2.选择结构3.循环结构语句语句1语句语句2End.布尔表达式布尔表达式语句语句1语句语句2程序设计的三种基本结构:TrueFalse布尔表达布尔表达式式语句语句1后面的语句后面的语句truefalse3三种循环语句三种循环语句(1 1)forfor语句

2、语句(2 2)当型循环)当型循环 whilewhile语句语句(3 3)直到型循环)直到型循环 repeat repeat 语句语句4forfor语句语句for语句的一般格式:for := to do 语句;语句;for := downto do 语句;语句; 1.递增型循环递增型循环2.递减型循环递减型循环(初值(初值 = 终值)终值)5forfor语句语句1.递增型循环递增型循环2.递减型循环递减型循环var i:integer;begin for i:=1 to 10 do write(i:3);end.var i:integer;begin for i:=10 downto 1 do

3、write(i:3);end.forfor语句的执行过程语句的执行过程:1.先将先将初值初值赋给赋给“循环控制变量循环控制变量(也称循环变量也称循环变量)”;2.判断循环变量的值判断循环变量的值是否超过终值是否超过终值(对递增型来说,(对递增型来说,“超过超过”是大于,对递减型来是大于,对递减型来说,说,“超过超过”是小于),如果超过则跳到步骤是小于),如果超过则跳到步骤6;3.如果如果未超过终值未超过终值,则执行,则执行do后面的语句后面的语句(循环体循环体););4.如果如果不是最后一次循环不是最后一次循环,那么循环变量,那么循环变量递增递增(对对to)1或或递减递减(对对downto)1

4、;5.返回执行步骤返回执行步骤26.循环结束,执行循环结束,执行for循环下面的语句;循环下面的语句;var i:integer;begin for i:=1 to 10 do write(i:3);end.i=1Write(i)下一个语句下一个语句i:=i-1i:=10TFfor i:=10 downto 1 do write(i:3);1.递增型循环递增型循环2.递减型循环递减型循环8使用使用for语句的注意事项:语句的注意事项:1.循环变量一般习惯使用循环变量一般习惯使用i,j,k等字母来表示,等字母来表示, 循环控制变量必须为循环控制变量必须为顺序类型顺序类型。 如整型如整型,字符型等

5、,但字符型等,但不能为实型和不能为实型和int64类型类型);var i:real;begin for i:=1.5 to 2.5 do write(i:3);end.9使用使用forfor语句的注意事项:语句的注意事项:2.循环变量的值递增或递减的规律是:循环变量的值递增或递减的规律是: 选用选用to则为则为递增递增,按,按succ(x)(后继后继)函数规律变化函数规律变化; 选用选用downto则为则为递减递减,按,按pred(x)(前驱前驱)函数规律变化;函数规律变化;var i:char;begin for i:=a to z do write(i:3);end.整数则加减整数则加减1

6、;字符型,则按字符型,则按ASCII码表的顺序计算码表的顺序计算 succ(a)=b pred(d)=cvar i,k:integer;begin for i:=1 to 10 do; k:=k+1; end.使用使用forfor语句的注意事项:语句的注意事项:3. do后面如果有分号,说明循环体是空后面如果有分号,说明循环体是空var i,k:integer;begin for i:=1 to 10 do k:=k+1; end.do 后面有分号,所以循环体是空执行完for语句后,再执行1次k:=k+1for语句的循环体是k:=k+1每次循环都要执行,共执行10次11var i:intege

7、r;begin for i:=1 to 10 do begin k:=k+1; writeln(k); end;end.使用使用forfor语句的注意事项:语句的注意事项:4.循环体可以是一个语句也可以是一个多个语句;循环体可以是一个语句也可以是一个多个语句; 如果是多个语句,则用如果是多个语句,则用begin和和end括起来,构成一个复括起来,构成一个复合语句;合语句;使用使用forfor语句的注意事项:语句的注意事项:var i:integer;begin for i:=1 to 10 do i:=5; end.5. 不得不得在在循环体循环体内随意内随意修改循环变量的值修改循环变量的值;

8、循环变量的初值和终值一经确定,循环次数就确定了。循循环变量的初值和终值一经确定,循环次数就确定了。循环变量的值有自己的变化规律,如果随意在循环体内对循环变环变量的值有自己的变化规律,如果随意在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死循环,所量的值进行修改,常常会使得循环提前结束或进入死循环,所以禁止在循环体重随意修改循环变量的值。以禁止在循环体重随意修改循环变量的值。 以上以上for循环是一个死循环,循环是一个死循环,i永远等于永远等于5,不可以达到终止值,不可以达到终止值10使用使用forfor语句的注意事项:语句的注意事项:var a,b,i:integer;begi

9、n a:=1; b:=4; for i:=a to b do begin a:=3; b:=5; write(i:3); endend. 执行执行for语句,初值语句,初值a=1,终值,终值b=4已经确定,则循环次数也已确定已经确定,则循环次数也已确定为为4次。虽然在执行循环体时,次。虽然在执行循环体时,a、b又被赋了新值又被赋了新值3、5,但着并不影响循,但着并不影响循环的次数。环的次数。6.For语句中的初值、终值可以是顺序类型的常量、变量和表语句中的初值、终值可以是顺序类型的常量、变量和表达式;达式;使用使用forfor语句的注意事项:语句的注意事项:for i:=1 to 10 do

10、begin if i=2 then break; end;for i:=1 to 10 do begin if i mod 2=0 then continue; ans:=ans+i; end;7.终止循环用终止循环用break语句语句; 结束本次循环直接进入下次循环用结束本次循环直接进入下次循环用continue语句语句; 循环计到i=2就结束了,后面的310不用执行 110的循环中,奇数次i就执行ans:=ans+i偶数次i就跳过,不需执行ans:=ans+i 15使用使用forfor语句的注意事项:语句的注意事项:s:=0;for i:=1 to 1 do s:=s+1 ;8.若循环变量

11、的初值若循环变量的初值=终值,循环体执行一次;终值,循环体执行一次; 若循环变量的初值若循环变量的初值终值,循环体不执行;终值,循环体不执行; 循环体 s:=s+1 执行1次,s的值为1 s:=0;for i:=1 to 0 do s:=s+1 ; 循环体 s:=s+1 没有执行,s的值为0 16编程练习编程练习1.输出120之间的所有偶数。【输入】无【输出】输出1-20之间所有的偶数,输出的偶数之间用空格隔开。Var i:integer;begin for i:=1 to 20 do if i mod 2=0 then write(i, );end.编程练习编程练习2.输出130之间的所有偶

12、数的个数.【输入】无【输出】输出1-30之间所有偶数的个数。Var I,s:integer;begin for i:=1 to 30 do if i mod 2=0 then s:=s+1; writeln(s);end.【分析】设i为循环控制变量,偶数个数放在s中,利用循环变量i的值从1变化到30的规律,逐一寻找偶数的个数,找到偶数就s:=s+1.18编程练习编程练习3.输出1n之间的所有奇数的个数.【输入】一个整数n(n1000)【输出】 1n之间的所有奇数的个数。【输入样例】7【输出样例】 4Var I,s,n:integer;Begin readln(n); for i:=1 to n

13、 do if i mod 20 then s:=s+1; writeln(s);end.19累加器累加器4.求1+2+3+100的和. s:=0; 变量s存储 累加和for i:=1 to 100 do s:=s+i;write(s);205.求1+2+3+n的和。(n10000) 编程练习编程练习【输入】一个整数n(n10000)【输出】输出1+2+3+.+n的和。【输入样例】100【输出样例】 5050类型标识符类型标识符名称名称数据范围数据范围字节数字节数格式格式integerinteger整型整型-32768-3276832767327672 2带符号带符号1616位位longintl

14、ongint长整型长整型-2147483648-2147483648214748364721474836474 4带符号带符号3232位位int64int64int64int64-9223372036854775809-922337203685477580992233720368547758089223372036854775808【分析】因为【分析】因为n10000,n10000,当当n=100n=100时,和为时,和为50505050,但,但n=1000n=1000,和为,和为500500500500,但,但integerinteger的范围是的范围是-32768-327683276732

15、767,所以若定义,所以若定义s s存储累加和,肯定不够存储累加和,肯定不够“装装”,故需定义更大的数据类型,如故需定义更大的数据类型,如longintlongint,甚至更大的,甚至更大的int64int64。216.求12+22+n2的和。(n100) 编程练习编程练习【输入】一个整数n(n100)【输出】 12+22+n2的和。【输入样例】3【输出样例】 14for i:=1 to n do s:=s+i*i;22编程练习编程练习7.输出1n之间的所有偶数的和.【输入】一个整数n(n200)【输出】 1n之间的所有偶数的和。【输入样例】7【输出样例】12for i:=1 to n do

16、if i mod 2=0 then s:=s+i;23编程练习编程练习【输入】一个整数n(n=1000)【输出】 1+1/2+1/3+1/n的和。【输入样例】100【输出样例】5.198.求1+1/2+1/3+1/n的和。(n1)a1=1是“初始条件”或“边界条件”。只要找出递推关系,就可以由循环来处理,一项一项地推算出来以后各项。在程序中用同一个变量s来存储每一次推出来的值,由前一个s推出后一个s是递推。 29例例4.5 已知一对兔子,每个月可以生一对小兔,而小兔经过一个月已知一对兔子,每个月可以生一对小兔,而小兔经过一个月生长后也可每月生一对小兔。即兔子的对数是:第一个月生长后也可每月生一

17、对小兔。即兔子的对数是:第一个月1对,第对,第二个月二个月2对,第三个月对,第三个月3对,第四个月对,第四个月5对,对,假设兔子的生育期,假设兔子的生育期是是12个月,并且不死,问一年后,这对兔子有多少对活着的后代?个月,并且不死,问一年后,这对兔子有多少对活着的后代?【分析】【分析】 根据题目给出的条件,得到算法:设当前月兔子有x对,它的前一个月有lastx对,前二个月有prevx对,明显存在一个递推关系,即x=lastx+prevx。Program ex4_5;Var i,lastx,prevx,x : integer;begin prevx : =1; lastx : =2; for i

18、 : =3 to 12 do begin x : =lastx+prevx; prevx : =lastx; lastx : =x; end; writeln(x);end.运行结果:23330简单枚举简单枚举11.一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y刚好比x大36,请编程求出所有这样的两位数。【输入】无【输出】输出符合条件的两位数,数与数之间换行输出。【分析】【分析】 用用forfor循环列举出所有的两位数,循环列举出所有的两位数,x x为循环为循环变量;变量; 用公式用公式a:= x div 10a:= x div 10分离出分离出x x的十位数字;的十位数字; 用公式用公式b:= x mod 10b:= x mod 10分离出分离出x x的个位数字;的个位数字; 用公式用公式y:= by:= b* *10+a10+a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论