第四章-循环结构_第1页
第四章-循环结构_第2页
第四章-循环结构_第3页
第四章-循环结构_第4页
第四章-循环结构_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计语言第四章循环结构刘文斌业精于勤,荒于嬉,行成于思,毁于随

回顾:for循环语句三个表达式本章:什么是循环?为什么要使用循环?如何实现?如何确定循环条件和循环体while循环和do~while循环4.1求PI的近似值使用格里高利公式求PI的近似值PI/4=1-1/3+1/5-1/7+……要求:精确到最后一项的绝对值小于10e-5思考用for循环如何实现?如何达到精确度的要求?for循环实现:必须说明求前n项之和,要求输入nch4-1.cpp实现对精确度的要求,最后一项的绝对值小于10e-5最后一项绝对值小于10e-5时退出,如何实现?ch4-2.cppfabs函数说明:P24表达式循环体语句0非0while语句基本形式:while(表达式)

语句(单个或者复合)首先计算表达式的值:如果为0,则跳过整个while语句。如果为非零,则执行语句,然后再次计算表达式的值。重复第1和第2步的过程。求解表达式1表达式2语句求解表达式3!00基本形式:for(表达式1;表达式2;表达式3)语句;首先求解表达式1,然后:计算表达式2的值:如果步骤1的结果为0,则结束整个for语句。如果步骤1的结果为非0,则执行语句。求解表达式3。重复第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.cppfor语句和while语句都是先判断条件,只有条件满足才会进入执行循环如果条件一开始就不满足,则循环体一次都不执行do~while语句一定先执行一次循环体语句,然后才判断是否满足条件,如果满足,则继续执行循环体语句dowhile语句语句表达式!00基本形式:do语句while(表达式);首先执行语句计算表达式的值:如果为0,则结束整个dowhile语句。如果为非零,则再次执行语句,然后再次计算表达式的值。重复第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.cppbreak和continueBreak=退出整个循环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分解质因数

温馨提示

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

评论

0/150

提交评论