循环结构程序设计.ppt

上传人:牧羊曲112 文档编号:5975594 上传时间:2023-09-10 格式:PPT 页数:21 大小:296.11KB
返回 下载 相关 举报
循环结构程序设计.ppt_第1页
第1页 / 共21页
循环结构程序设计.ppt_第2页
第2页 / 共21页
循环结构程序设计.ppt_第3页
第3页 / 共21页
循环结构程序设计.ppt_第4页
第4页 / 共21页
循环结构程序设计.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《循环结构程序设计.ppt(21页珍藏版)》请在三一办公上搜索。

1、例1输出1100之间的所有数字。,program ex;var i:integer;beginfor i:=1 to 100 do write(i:5);end.,program ex;var i:integer;begin i:=1;while i=100 do begin write(i:5);i:=i+1;end;end.,循环结构程序设计计数循环for 循环,For描述已知重复次数的循环结构。一、For语句基本格式(1)递增循环:for 循环变量:=初值 to 终值 do 语句(块)(循环体);(2)递减循环:for 循环变量:=初值 downto 终值 do 语句(块)(循环体);,

2、I=1 I5 退出循环,I=5 I=1 write(i)5I=4 I=1 write(i)4I=3 I=1 write(i)3I=2 I=1 write(i)2I=1 I=1 write(i)1I=0 I1 退出循环,二、For语句执行过程 先将初值赋给左边的变量(称为循环控制变量);判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤;如果没有超过终值,则执行do后面的那个语句(称为循环体);循环变量递增(对to)或递减(对downt o);返回步骤;循环结束,执行 for 循环下面的一个语句。,例7_2按正序和反序输出26个英文字母。program ex7_2;var m:inte

3、ger;zf:char;begin for m:=65 to 90 do begin zf:=chr(m);write(zf:2);end;writeln;for m:=90 downto 65 do begin zf:=chr(m);write(zf:2);end;end.,?换个方法尝试一下。,例7_3 求1+2+3+99+100Program ex;Var i,sum:integer;Begin End.,sum:=0;for i:=1 to 100 do sum:=sum+i;Writeln(sum);,同类型的题目:编程计算从1到20每个数的平方值;求h=1+1/2+1/3+1/4+

4、1/n;求n!输出1到1000之间的能够被3整除的数。统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。,三、说明 循环控制变量必须是顺序类型。循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。循环控制变量的值“超过”终值,对递增型循环,“超过”指大于,对递减型循环,“超过”指小于。循环体可以是一个基本语句,也可以是一个复合语句。循环控制变量的初值和终值一经确定,循环次数就确定了。abs(终值初值)1,abs(ord(初值)ord(终值)1 在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死循环。建议不要在循环体中随意修改控制变量的值

5、。for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。,For/to/do while/do repeat/until,while 循环和repeat-until循环是可以互相替代的。for 循环在大多数场合也能用while和repeat-until循环来代替.for循环用于有确定次数循环,而while和repeat-until循环用于未确定循环次数的循环。,while 布尔表达式do 语句(块)(循环体);,for 循环变量:=初值 to 终值 do 语句(块)(循环体);for 循环变量:=初值 downto 终值 do 语句(块)(循环体);,Repeat 语句1;语句2;语句

6、3;语句 n;Until 布尔表达式;,1设有如下程序段:i:=1;repeat n:=i*i;i:=i+2;until n2*i;假设所有变量均已说明,问其中循环体的执行次数是:(A)1(B)2(C)3(D)4,3 设有如下程序段:s:=100;n:=3;for ch:=a to e dobegin if not odd(n)then s:=s-n;n:=n+5;end;假设所有变量均已说明,程序执行后s的值是:(A)97(B)89(C)74(D)58,4 设有如下程序段:n:=19876;k:=3;for i:=1 to k do n:=n mod 10;n:=n div 10;假设所有变

7、量均已说明,程序执行后n的值是:(A)0(B)6(C)10(D)1,2设有如下程序段:i:=2.5 while i=4 do begin i:=i+0.5;end;假设所有变量均已说明,问其中循环体的执行次数是:(A)1(B)2(C)3(D)4,巩固练习,C,A,C,D,上机练习下面三题选做一题即可。求s=2+4+6+8+10+n;求S=1-1/2+1/3-1/4+1/5-1/6+(求前N项的和)求1!+2!+10!的值。统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a3+b3+c3=abc,则abc是水仙花数。宰相

8、的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?,for循环的嵌套 在一个for循环的循环体中又包含另一个for循环,称为for循环的嵌套。内层for循环是外层for循环体中的一个语句。,Write(*);,For i:=1 to 8 do Writeln(*);,For i:=1 to 8 do W

9、rite(*);,For i:=1 to 8 do Begin for j:=1 to 8 do Write(*);writeln;end.;,编程序分别打印以下三图:,例7_5 编程输出以下形状的字符组合:题1 program ex1;var i,j:integer;begin for i:=1 to 5dobeginfor j:=1 to 5 dowrite(*);writeln;end;readln;end.,题2 program ex2;var i,j:integer;beginfor i:=1 to 5 do begin for j:=1 to i do write(*);write

10、ln;end;readln;end.,题3 program ex3;var i,j:integer;beginfor i:=1 to 5 do begin write(:6-i);for j:=1 to i do write(*);writeln;end;readln;end.,题4 program ex4;var i,j:integer;beginfor i:=1 to 5 do begin write(:6-i);for j:=1 to 2*i-1 do write(*);writeln;end;readln;end.,题5program ex5;var i,j:integer;begin

11、for i:=5 downto 1 do begin write(:6-i);for j:=1 to 2*i-1 do write(*);writeln;end;readln;end.,一个循环变量控制行数(外循环)一个循环变量控制列数(内循环),例7-6 打印出下列的金字塔11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1,分析:我们用嵌套的二重循环来实现,外层循环用来控制行数,内层循环用来控制每一行的列。从数字金字塔中我们可以发现,每一行最大的数就是该行的行数,且位于中间。这样,内层循

12、环先从1递增到最大数,然后再递减到1。为控制输出格式,用变量Indent存放每行前面的空格数,且设定每个数字以场宽L输出,indent存放每行的初值至少应为9,程序中我们设为25。,program ex57;var row,col,indent:integer;begin indent:=25;for row:=1 to 9 do行数 begin write(:indent);for col:=1 to row do write(col:2);for col:=row-1 downto 1 do write(col:2);每行上的数字 writeln;indent:=indent-2;end;

13、readln;end.,例7-7 把一元钞票换成一分、二分、五分硬币(每种至少一枚)有多少种换法。,百钱买百鸡:今有钱100元,要买100只鸡,公鸡3元一只,母鸡1元一只,小鸡1元3只,若公鸡、母鸡和小鸡都至少要买1只,请编程求出恰好用完100元钱的所有的买鸡方案 有三种明信片:第一种每套一张,售价2元;第二种每套一张,售价4元;第三种每套9张,售价2元。现用100元钱要买100张明信片,要求每种明信片至少要买一套,问三种明信片应各买几套?请输出全部购买方案。,兑换一分,兑换二分,兑换五分,program ex77;var i,j,k,total:integer;begin total:=0;

14、for i:=1 to 99 do for j:=1 to 49 do for k:=1 to 19 do if 1*i+2*j+5*k=100 then begin writeln(i:3,j:3,k:3);total:=total+1;end;writeln(total=,total);readln;end.,上机练习:一个炊事员上街采购,用500元钱买了90只鸡,其中母鸡一只15元,公鸡一只10元,小鸡一只5元,正好把钱买完。问母鸡、公鸡、小鸡各买多少只?打印下列图案:*#*#*#*A B C D E F 1222333334444444555555555九九乘法表:1*1=12*1=2

15、2*2=43*1=33*2=63*3=94*1=44*2=84*3=134*4=16:9*1=99*2=18 9*9=81,求素数表:输入一个自然数n,输出到n之间的所有素数。,program ex7_8;var x,i,n,flag,y:integer;beginreadln(n);for x:=1 to n dobeginflag:=1;y:=x div 2;for i:=2 to y doif x mod i=0 then flag:=0;if(x1)and(flag=1)then write(x,);end;readln;end.,输入一个数,判断是否为素数。,for i:=2 to

16、n-1 do if n mod i=0 then flag:=true;,program ex7-9;var i,k,kend,n:integer;yes:boolean;begin writeln(the primary between 100 and 200:);n:=0;for i:=100 to 200 do if odd(i)then begin yes:=true;kend:=trunc(sqrt(i);for k:=2 to kend do if i mod k=0 then yes:=false;if yes=true then begin write(i,);n:=n+1;e

17、nd;if n mod 5=0 then writeln;end;readln;end.,例7-9 求100200之间的求全部素数,一行打印5个素数。分析:对100200之间的任一自然数I,若I是素数则输出。对于i(=100),如果是偶数,当然不是素数;如果I能被2到 i(取整)中的任一自然数整除,则也也不是素数,否则即为素数。,输入一个正整数N,把它分解成质因子相乘的形式。如:36=12233;19=119(提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,再将I增大,继续以上操作,直到I等于N。),猜价格:中央电视台的“幸运52”栏目深受

18、观众喜爱,其中的“猜商品价格”的节目更是脍炙人口,现在请你编一个程序模拟这一游戏:由计算机随机产生200至5000之间的一个整数,作为某件商品的价格,然后由你去猜是多少,若你猜的数大了,则计算机输出提示“Gao”,若你猜的数小了,则计算机输出提示“Di”,然后你根据提示继续猜,直到你猜对了,计算机会提示“Ok”,并统计你猜的总次数。把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数。求所有符合这样条件的四位数。从七张扑克牌中任取三张,有几种组合方法?请编程输出所有组合形式。一辆快车和一辆慢车开往同一地点,快车票价为18元,慢车票价为13.5元,共售出400张,共计5940元,求快车票和慢车票各多少张?.图中由6个圆圈构成三角形,每条边上有三个圈,将自然数1-6 不重复地填 入各圆圈位置上,使每条边圆圈上的数字之和相等,请编程输出所有的填法。,作业,第三节夜自修前由11班邵希乐同学收齐,并交至图书馆底楼网络中心处,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号