3-3for语句.ppt_第1页
3-3for语句.ppt_第2页
3-3for语句.ppt_第3页
3-3for语句.ppt_第4页
3-3for语句.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、3-3for语句,格式和执行过程,格式:for 控制变量:= 初值 to 终值 do 语句;for 控制变量:= 初值 downto 终值 do 语句;例子:for i:=1 to 10 do s:=s+i; 执行过程: 先将初值赋给左边的变量(称为循环控制变量); 判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤; 如果没超过终值,则执行do后面的语句(称循环体); 循环变量递增(对to)或递减(对downto); 返回步骤; 循环结束,执行for循环下面的一个语句。,说明,循环控制变量(即初值和终值)必须是顺序类型。可以是整型、字符型、枚举型等,但不能为实型。 循环控制变量的值

2、递增或递减的规律是:选用to递增,按succ(后继)函数规律变化;选用downto递减,按pred(前趋)函数规路变化。如为整型,后继值为原值加1,前趋值为原值减1,如为字符型,则按ASCII码表的顺序计算,如:b的后继值是c,前趋值是a。如果不符合变化规律则循环次数为0。如:for i:=5 to1 do a:=1; for i:=2 downto 4 do a:=1;,说明,所谓循环控制变量的值“超过”终值,对递增型循环,“超过”指大于,对递减型循环,“超过”指小于。 循环体可以是一个基本语句,也可以是一个复合语句(必须用begin和end括起来)。 初值与终值在开始重复之前计算,在重复执

3、行过程中,其值不受影响。 控制变量在循环中不再作任何赋值操作。,例子,1、计算123100的和。 program ex(input,output); var i,s:integer; begin s:=0; for i:=1 to 100 do s:=s+i; writeln(s); end.,例子,1、计算123100的和。,例子,2、输出1100之间的所有偶数。计算3的倍数的个数 var s,i:integer; Begin s:=0; for i:=1 to 100 do begin if i mod 3=0 then s:=s+1; if i mod 2=0 then write(i:

4、5); end; writeln(s=,s); end.,例子,2、输出1100之间的所有偶数。计算3的倍数的个数,3、求N!123N ,这里N不大于10。 分析:程序要先输入N,然后从1累乘到N。 程序如下: var n,i : integer;i为循环变量 s : longint;s作为累乘器 begin write(Enter n=); readln(n);输入n s:=1; for i:=2 to n do s:=s*i; 从2到n累乘到s中 writeln(n,!=,s);输出n!的值 end.,3、求N!123N ,这里N不大于10。 分析:程序要先输入N,然后从1累乘到N。 程序

5、如下:,4、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x 大36,求出所有这样的两位数。 var a,b,x,y:integer; begin for x := 10 to 99 do举出所有的两位数,x为循环变量 begin a:= x div 10;分离出x的十位数字 b:= x mod 10;分离出x的个位数字 y:= b*10+a;合成新数y if y-x=36 then writeln(x);筛选出符合条件的数x并输出 end; end.,4、一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x 大36,求出所有这样的两位数。,5、

6、输入一个自然数,求这个自然数的所有约数之和。 program ex35; var s,x,y:integer; begin readln(x); s:=0; for y:=1 to x do If x mod y=0 then s:=s+y; 找出X的所有约数并且累加起来存在s中 writeln(s) ;输出s end.,5、输入一个自然数,求这个自然数的所有约数之和。,6、把整数3025从中剪开分为30 和25 两个数,此时再将这两数之和平方,(30+25)2=3025 计算结果又等于原数。求所有符合这样条件的四位数。 program Exam35; var n,a, x,n1,n2:Integer; begin for a:=32 to 99 do由N=(a*a)在(10009999)范围内,得a在3299循环; begin n:=a*a; n1:= n div 100;拆取四位数的前两位数 n2:= n-n1*100; 拆取四位数的后两位数 x:=n1+n2; if x*x=n then writeln (n);若满足条件(n1+n2)*(n1+n2)n 就

温馨提示

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

评论

0/150

提交评论