第六课循环结构程序设计(全课)解析ppt课件

上传人:vc****3p 文档编号:252480833 上传时间:2024-11-16 格式:PPT 页数:32 大小:169.58KB
返回 下载 相关 举报
第六课循环结构程序设计(全课)解析ppt课件_第1页
第1页 / 共32页
第六课循环结构程序设计(全课)解析ppt课件_第2页
第2页 / 共32页
第六课循环结构程序设计(全课)解析ppt课件_第3页
第3页 / 共32页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第六课循环结构程序设计,第六课循环结构程序设计,1,概念,在程序设计中,经常需要将一些功能按一定要求反复执行多次,我们将这一过程称为循环。,一个循环控制结构需指明以下三件事情中的两件:,1、被重复执行的语句(循环体),2、是否重复的条件,3、详细指明重复方式,概念在程序设计中,经常需要将一些功能按一定要求反复执行多次,,2,步长型循环(For语句),for 语句用来描述已知重复次数的循环结构。for 语句有两种形式:(1)for 循环变量:初值to终值do语句;(2)for 循环变量:初值downto终值do语句;,第一种形式的for 语句是递增循环。首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值改为它的后继值,并重新判断是否小于或等于终值。当控制变量的值大于终值时,退出for循环,执行for语句之后的语句。第二种形式的for 语句是递减循环。首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。,步长型循环(For语句)for 语句用来描述已知重复次数的循,3,说明,循环控制变量必须是顺序类型。例如,可以是整型、字符型等,但不能为实型。,循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。,循环体可以是一个基本语句,也可以是一个复 合语句。,循环控制变量的初值和终值一经确定,循环次数就确定了。但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。建议不要在循环体中随意修改控制变量的值。,说明循环控制变量必须是顺序类型。例如,可以是整型、字符型等,4,例:计算1+2+3+99+100的和,program jia;var i,n,sum:integer;begin sum:=0;for i:=1 to 100 do sum:=sum+i;writeln(sum);readln;end.,例:计算1+2+3+99+100的和program j,5,不允许在循环体内再对循环控制变量赋值。,a:=10;b:=50;for k:=a to b do begin k:=k+1;这一句是错误的!writeln(k);end;,不允许在循环体内再对循环控制变量赋值。a:=,6,当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,并不改变原定的循环次数。例:a:=1;b:=10;for i:=a to b do begin a:=5;b:=4;end;在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。,当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量,7,输出1100之间的所有偶数。,var i:integer;beginfor i:=1 to 100 do if i mod 2=0 then write(i:5);end.,思考:还有什么办法完成?,输出1100之间的所有偶数。var i:integer;,8,求N!123N,这里N不大于10。,var n,i:integer;i为循环变量S:longint;s作为累乘器beginwrite(Enter n=);readln(n);输入ns:=1;for i:=2 to n do从2到n累乘到s中 s:=s*i;writeln(n,!=,s);输出n!的值end.,求N!123N,这里N不大于10。var,9,循环嵌套,当一个循环的循环体中又包含循环结构程序时,我们就称之为循环嵌套。,求1!+2!+10!的值。,分析:这个问题是求10自然数的阶乘之和,可以用for 循环来实现。程序结构如下:for n:=1 to 10 dobeginN!的值t累加N!的值tend显然,通过10次的循环可求出1!,2!,10!,并同时累加起来,可求得S的值。而求T=N!,又可以用一个for循环来实现:,循环嵌套 当一个循环的循环体中又包含循环结构程序时,我们就称,10,程序,program ex4_5;var t,s:real;i,j,n:integer;beginS:=0;for n:=1 to 10 do begin t:=1;for j:=1 to n do t:=t*j;S:=S+t;end;writeln(s=,s:0:0);end.,程序 program ex4_5;var t,11,程序改进,program ex4_5;var t,s:real;i,j,n:integer;beginS:=0;t:=1;for n:=1 to 10 dobegint:=t*n;S:=S+t;end;writeln(s=,s:0:0);end.,程序改进 program ex4_5;var,12,例,一个炊事员上街采购,用500元钱买了90只鸡,其中母鸡一只15元,公鸡一只10元,小鸡一只5元,正好把钱买完。问母鸡、公鸡、小鸡各买多少只?,分析:设母鸡I只,公鸡J只,则小鸡为90-I-J只,则15*I+10*J+(90-I-J)*5=500,显然一个方程求两个未知数是不能直接求解。必须组合出所有可能的I,j值,看是否满足条件。这里I的值可以是0到33,J的值可以0到50。,例一个炊事员上街采购,用500元钱买了90只鸡,其中母鸡一只,13,源程序,programr ex4_6;var i,j,k:integer;beginfor i:=0 to 33 do for j:=0 to 50 dobegink:=90-i-j;if 15*i+10*j+5*k=500 then writeln(i:5,j:5,k:5);end;end.,源程序 programr ex4_6;var i,j,k,14,问题描述:求整数n的值,使,11/2+1/3+1/n,的值不大于10。,For循环通常在已知循环次数的情况下使用,有时候我们无法预知循环次数的情况下,就无法用for循环来实现。,问题描述:求整数n的值,使 For循环通常在已知循环,15,当(while)语句,其作用是,当布尔表达式的值为 TRUE时,才会运行语句序列(循环体),否则循环将不会被执行,即从循环头部就退出,而转向执行 END后的语句2。,当语句的语法格式是:while 布尔表达式 do begin语句序列;(循环体)end;,语句2,当(while)语句其作用是,当布尔表达式的值为 TRUE时,16,程序框图,从框图中可以看出,要使用循环语句时,必须要确定循环体及条件(布尔表达式)两个重要因素,亦即首要考虑的是:我要重复执行哪些语句,我要重复到什么时候为止!,程序框图从框图中可以看出,要使用循环语句时,必须要确定循环体,17,while语句的执行过程为:,判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4;执行循环体语句(do后面的语句);返回步骤1;结束循环,执行while的下一个语句。,这里while和do为保留字,while语句的特点是先判断,后执行。当布尔表达式成立时,重复执行do后面的语句(循环体)。while语句用于“当满足某一条件时进行循环”的情况,,为了能使while重复能终止,循环前应给循环控制变量赋上适当的值,循环体中一定要有影响布尔表达式的操作,否则该循就是一个死循环。,while语句的执行过程为:判断布尔表达式的值,如果其值为,18,例:计算 18!,var i:integer;x:longint;begin,i:=1;,x:=1;While in then x:=n else x:=m;While(n mod x0)or(m mod x0)do begin x:=x-1;End;Writeln(x);End.,程序 Var m,n,x:integer;Begin,21,repeat-until语句(直到循环),repeat 语句用于重复执行循环体,一直到指定的条件为真时为止。语法格式为:repeat语句1;语句n;until布尔表达式;其中Repeat、until是Pascal保留字,repeat与until之间的所有语句称为循环体。,repeat-until语句(直到循环)repeat 语句,22,求sum=1+2+3+.+n 的和,program he;var n,i,sum:integer;begin write(n=);readln(n);sum:=0;i:=1;repeat sum:=sum+i;i:=i+1;until in;writeln(sum=,sum);readlnend.,求sum=1+2+3+.+n 的和 program,23,注意,repeat语句的特点是:先执行循环,后判断结束条件,因而,至少要执行一次循环体,。repeat-until是一个整体,它是一个(构造型)语句,不要误认为repeat是一个语句,until是另一个语句。repeat语句在布尔表达式的值为真时不再执行循环体,且循环体可以是若干个语句,,不需用begin和end把它们包起来,,repeat 和until已经起了begin和end的作用。while循环和repeat循环是可以相互转化的。,注意repeat语句的特点是:先执行循环,后判断结束条件,,24,当循环和直到循环的区别,1、在repeat语句的结构中,布尔表达式求值在计算操作之后,而while语句中,布尔表达式求值在计算操作之前,也就是说repeat至少执行一次循环体。,2、while语句的成分语句只能是一个语句。因此,当重复动作包含多个语句时,要用begin和end,使它变成一个复合语句。而repeat语句的保留字repeat和until已经起语句括号作用,可以包含多个语句而无须begin和end。,当循环和直到循环的区别1、在repeat语句的结构中,布尔表,25,当循环和直到循环的区别,3、repeat语句中,当布尔表达式为true时结束循环,而while语句中,是当表达式为false时才结束循环。当描述由计算操作后的情况确定重复是否继续进行的计算时,通常用repeat语句描述。,当循环和直到循环的区别3、repeat语句中,当布尔表达式为,26,简单练习,求1-100之间所有数的和。,求0-100之间所有奇数的积。,输入本班50个同学的某科成绩,求平均分数。,简单练习求1-100之间所有数的和。,27,练习,输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。),求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a3+b3+c3=abc,则abc是水仙花数。,计算11000之间能同时被3和5整除的整数的和。,练习输入一整数A,判断它是否质数。(提示:若从2到A的平方根,28,练习,求0-100这间所有奇数的积。,编程计算11+22+33+99的值。,宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?,练习求0-100这间所有奇数的积。,29,作业,1、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。),2、已知四位数3025有一个特殊性质:它的前两位数字30和后两位数字25的和是 55,而55的平方刚好等于该数(55*55=3025).试编一程序打印所有具有这种性质的四位数.,3、如果一个数从左边读和从右边读都是同
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!