第四章_循环结构介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C程序设计语言第四章循环结构刘文斌业精于勤,荒于嬉,行成于思,毁于随回顾:for循环语句三个表达式本章:什么是循环?为什么要使用循环?如何实现?如何确定循环条件和循环体while循环和do~while循环4.1求PI的近似值使用格里高利公式求PI的近似值PI/4=1-1/3+1/5-1/7+……要求:精确到最后一项的绝对值小于10e-5思考用for循环如何实现?如何达到精确度的要求?for循环实现:必须说明求前n项之和,要求输入nch4-1.cpp实现对精确度的要求,最后一项的绝对值小于10e-5最后一项绝对值小于10e-5时退出,如何实现?12/)1(1nnch4-2.cppfabs函数说明:P24表达式循环体语句0非0while语句基本形式:while(表达式)语句(单个或者复合)首先计算表达式的值:1.如果为0,则跳过整个while语句。2.如果为非零,则执行语句,然后再次计算表达式的值。3.重复第1和第2步的过程。求解表达式1表达式2语句求解表达式3!00基本形式:for(表达式1;表达式2;表达式3)语句;首先求解表达式1,然后:1.计算表达式2的值:2.如果步骤1的结果为0,则结束整个for语句。3.如果步骤1的结果为非0,则执行语句。4.求解表达式3。5.重复第1到第4步的过程。回顾for语句讨论while语句的使用方法while语句中的判断表达式可以是任意合法的逻辑组合表达式,循环体语句只能是一条语句如果有多条语句,要用{}括起来,成为一条复合语句while语句构成简单循环条件表达式循环体语句循环实现一般包括4个部分:初始化、条件控制重复执行的操作——循环体语句改变循环控制变量的值,来改变条件的真假for语句中包含这4个部分while语句只包括两个成分条件控制、循环体语句所以,需要加初始化部分和改变循环控制变量的值的操作例4-2输入一批学生的成绩,统计平均分需要几个变量?如何求平均?如何确定输入结束的条件?如何处理没有一个成绩的情况?ch4-3.cpp4.2统计一个整数的位数从键盘接收一个整数,统计该整数的位数数字在计算机中是用特定数目的存储单元存放的,从机器的角度看不出它的十进制数有几位如何统计为数?需要一个循环过程由于事先不知道处理的是什么数据,故无法确定循环次数如何实现?ch4-4.cpp把例4-4改成while循环执行,要怎么做?ch4-4-1.cppfor语句和while语句都是先判断条件,只有条件满足才会进入执行循环如果条件一开始就不满足,则循环体一次都不执行do~while语句一定先执行一次循环体语句,然后才判断是否满足条件,如果满足,则继续执行循环体语句dowhile语句语句表达式!00基本形式:do语句while(表达式);首先执行语句计算表达式的值:1.如果为0,则结束整个dowhile语句。2.如果为非零,则再次执行语句,然后再次计算表达式的值。3.重复第1和第2步的过程。三种循环比较本质上三种循环是通用的。在事先知道循环次数时,三种循环结构都可以使用,但是使用for循环比较方便在无法预知循环次数时,三种循环结构都可以使用,但是使用while循环或者dowhile循环比较方便本次实验做实验书6-1、6-4、6-64.3判断素数问题:输入一个正整数,判断它是否为素数。素数是只能被1和自身整除的正整数分析:对于一个数m,是否为素数判断能否被2~m-1之间的整数整除用取余运算%判断是否能整除所以,i取值[2,m-1],如果m不能被该区间上任何一个整数除,则m是素数可以使用for(i=2;i=m-1;i++)循环35%2=1、35%3=2、35%4=3、35%5=0、…?根据i的结束值就可以判断是否为素数。也可以使用while(m%i!=0)i++循环ch4-5.cpp如何编制一个判断素数的函数?函数的返回值是什么?函数的参数是什么?函数体是什么?数学证明,这个区间可以[2,m/2],更进一步还可以在[2,m^0.5]问题:打印1-19之间的偶数分析:也可以for(i=1;i=19;i++),当i位偶数时打印可以设置循环变量for(i=2;i=19;i=i+2)ch4-6.cppbreak和continueBreak=退出整个循环continue=结束本次循环,继续下一次循环,类似一个旁路continue和break在while循环中的常见形式continue和break在dowhile循环中的常见形式continue和break在for循环中的常见形式4.4循环嵌套(多重循环)在分支结构中可以嵌套其它的分支结构,在循环中同样可以嵌套其它的循环。计算1!+2!+3!+…+10!大家回忆一下如何求1-100之和?它们之间有什么异同?如何实现item=i!ch4-7.cpp思考一下,对于本例的二重循环:外面的循环体语句sum=sum+item一共执行了多少次?里面的循环体语句item=item*j一共执行了多少次本章作业p82:2、6、10、14实验指导书实验七1、3、6实验指导书p95补充习题4.5循环结构程序设计循环结构和分支结构的不同两者都用到条件判断分支结构在条件满足的情况下只执行一次循环结构在条件满足的情况下重复执行多次循环程序的实现要点:哪些操作需要重复执行?——循环体在什么条件下重复执行?——循环控制条件确定循环体和循环条件,循环结构就可以确定,从三种循环语句中选择一种实现如果事先知道循环次数,首选for语句如果循环次数不明确,需要通过其他条件控制循环,则考虑while或do~while语句问题:从键盘上输入一批学生成绩,找出最高分分析:实质是求一批数中的最小数如何确定循环条件如何保证输入的成绩不小于0Ch4-8-1、Ch4-8-2、Ch4-8-3问题:输入一个整数,将其逆序输出分析(%、/的应用)如何求一个整数的位数?如何拆开各个位数?如何确定结束Ch4-9求500以内的全部素数,每行输出10个分析:如何判断一个数为素数在499次循环中,对2~500之间的每个数进行判断,是否为素数,是,则输出如何控制每行仅输出10个可以定义一个函数,也可以使用循环嵌套Ch4-10问题分解问题:输出Fibonacci序列:1、1、2、3、5、8、13、………的前10项分析:数列特征是:x3=x1+x2如何实现前二项数字的更新?Ch4-11求解方程:男人一人搬3块,女人一人搬2块,小孩二人搬1块。问45人正好搬45块,有多少中搬法?分析:变量men,women,child变量的范围?变量的约束条件?可以使用几重循环?是否可以进一步简化为重循环?Ch4-12习题讲解(P83)题目12:求1-1000之间的水仙花数定义:各位数字的立方和等于它本身分析:既然是1-1000之间,肯定要有一个循环如何确定各位数?对1-1000之间的数分别去其各位数求立方之和001-999题目15:将一个正整数n分解质因数90=2×3×3×5分析:质因数的范围是多少?在该范围依次判断当前整数i是否是素数能否整除输出i更新n如果本身是素数已经不能被分解,改如何?题目18:打印图案分析图案的对称性星号数:1、3、5、7、5、3、1星号前空格数:3、2、1、0、1、2、3循环变量该如何设置?对每行星号和空格要用循环来输出人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功