《循环结构程序设计》PPT课件.ppt

上传人:w****2 文档编号:6147249 上传时间:2020-02-17 格式:PPT 页数:38 大小:1.10MB
返回 下载 相关 举报
《循环结构程序设计》PPT课件.ppt_第1页
第1页 / 共38页
《循环结构程序设计》PPT课件.ppt_第2页
第2页 / 共38页
《循环结构程序设计》PPT课件.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
1 第六章 循环结构程序设计 2 一 循环语句概述二 实现循环结构的控制语句三 循环嵌套四 循环结构五 程序举例 主要内容 第六章循环结构程序设计 3 一 循环语句概述 思考 求1 100的累加和 分析 换一种思路 sum 1 2 100 首先设置一个累加器sum 其初值为0 利用sum n来计算 n依次取1 2 100 只要解决以下3个问题即可 1 将n的初值置为1 2 每执行1次 sum n 后 n增1 3 当n增到101时 停止计算 此时 sum的值就是1 100的累加和 sum sum n 第六章循环结构程序设计 4 二 实现循环结构的控制语句 第六章循环结构程序设计 一 while语句 二 do while语句 三 for语句 四 break continue语句 五 几种循环的比较 5 格式 while 表达式 循环体语句 一 while语句 P117 说明 1 循环体如果包含一个以上的语句 必须使用复合语句形式 2 在循环体中 必须有使循环条件趋向于不满足 假 的语句 3 先判断表达式 后执行语句 含义 当表达式为真 非0值 时 执行while语句中的内嵌语句 执行过程 6 二 while语句 sum 55 举例 求1 10的累加和 includevoidmain inti sum i 1 sum 0 while i 10 sum sum i i printf sum 5d n sum 思考 1 如果去掉循环体中的大括号 执行过程将会怎样变化 2 在循环体中 使循环条件趋向于不满足 假 的语句是哪条 3 注意while中条件表达式的边界 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 7 格式 do循环体语句while 表达式 三 do while语句 P117 说明 1 循环体如果包含一个以上的语句 必须使用复合语句形式 2 在循环体中 必须有使循环条件趋向于不满足 假 的语句 3 先执行循环体语句 后判断表达式的值 含义 执行do while语句中的内嵌语句 直到表达式为假 0 才跳出循环 执行过程 至少执行一次 8 三 do while语句 sum 55 举例 求1 10的累加和 includevoidmain inti sum i 1 sum 0 do sum sum i i while i 10 printf sum 5d n sum 思考 1 如果去掉循环体中的大括号 执行过程将会怎样变化 2 在循环体中 使循环条件趋向于不满足 假 的语句是哪条 9 举例 while和do while循环的比较 includevoidmain inti sum sum 0 scanf d includevoidmain inti sum sum 0 scanf d sum 55 输出 sum 55 sum 0 输出 sum 11 此程序的功能 什么情况下两者结果相同 10 格式 for 表达式1 表达式2 表达式3 循环体语句 四 for语句 P119 for 循环变量赋初值 循环条件 循环变量增值 循环体语句 执行过程 1 先求解表达式1 2 求解表达式2 若其值为真 则执行循环体语句 然后执行第 3 步 若为假 则结束循环 转到第 5 步 3 求解表达式3 4 转向步骤 2 5 循环结束 执行for语句下面的一个语句 11 sum 55 举例 求1 10的累加和 includevoidmain inti sum sum 0 for i 1 i 10 i sum sum i printf sum 5d n sum 1求1 5的累加和 2求1 10的奇数和 3求1 10的偶数和 12 for 表达式1 表达式2 表达式3 语句 四 for语句 说明 三个表达式都可以省略 13 四 for语句 说明 1 i 1 for i 10 i sum sum i 2 for i 1 i sum sum i 3 for i 1 i 10 sum sum i i for i 1 i 10 i sum sum i 表达式可以省略 但其后的分号不可以省略 没有循环结束条件 构成了死循环 for i 1 i 10 i sum sum i 14 四 for语句 说明 4 5 for sum sum i 6 表达式1和表达式3可以是与循环变量无关的表达式 for i 10 sum sum i i 7 表达式2一般是关系表达式 也可以是数值或字符表达式 while i 10 sum sum i i while 1 sum sum i 表达式1和表达式3可以同时省略 此时等同于while语句 for sum 0 i 1 i 100 i sum sum i 建议 for语句中只放与循环控制有关的语句 15 格式 while 表达式1 if 表达式2 break 五 break continue语句 举例 sum 0 for i 1 i5 break sum sum i printf sum 5d n sum while 表达式1 if 表达式2 conitue 结束整个循环 结束本次循环 sum 0 for i 1 i 10 i if i 5 continue sum sum i printf sum 5d n sum 循环举例 1 例5 3募集慈善基金10000元 有若干人捐款 每输入一个人的捐款数后 计算机就输出当时的捐款总和 当某一次输入捐款数后 总和达到或超过10000元时 即宣告结束 输出最后的累加值 16 includevoidmain floatamount sum 0 do scanf f 17 1000 1850 1500 2600 2500 1200 sum 10650 00 循环举例 2 18 例5 4在象棋的棋盘第1个格子中放1粒麦子 第2个格子中放2粒麦子 第3个格子中放4粒麦子 以后按此比例每一格加一倍 一直放到第64格 象棋的棋盘是8 8 64格 共放多少 麦子总粒数 1 2 22 23 2631m3 1 42 108粒 循环举例 3 例5 7输入一个班全体学生的成绩 把不及格的学生成绩输出 并求及格学生的平均成绩 19 20 六 几种循环语句的比较 说明 1 三种循环语句在处理循环问题时 一般可以相互替代 2 对于循环次数固定的问题 用for语句实现比较简单 3 对于循环次数不确定的问题 可用while语句或do while语句实现 4 while语句 先判断 后执行 do while语句 先执行 后判断 21 概念 一个循环体内又包含另一个完整的循环结构 称为循环嵌套 四 循环嵌套 举例 打印乘法口诀表 includevoidmain inti j for j 1 j 10 j for i 1 i j i printf 2d 2d 3d i j i j printf n 举例 穷举法 百钱买百鸡 公元5世纪末 我国古代数学家张丘建在他撰写的 算经 中提出了这样一个问题 鸡翁一 值钱五 鸡母一 值钱三 鸡雏三 值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 穷举法 针对问题所有的可能一一查看是否符合条件 22 举例 递推法 兔子问题 有一对兔子 从出生后第3个月起 每个月都生一对兔子 小兔子长到第三个月后每个月又生一对兔子 假如兔子都不死 那么在一年之后一共会有多少对兔子 20个月之后又有多少对兔子 斐波那契数列找到递推规律 23 24 思考1 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p printf 请输入三角形的三边 scanf f f f 考虑输入的三边不构成三角形 应该怎么改 25 思考2 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p printf 请输入三角形得三边 scanf f f f elseprintf 不构成三角形 希望求多个三角形的面积 而不是每求一次退出 怎么办 26 思考3 输入三角形三边 求三角形的面积 include includevoidmain floata b c s p do printf 请输入三角形得三边 scanf f f f 我想退出 怎么办 27 include includevoidmain floata b c s p charyes no do printf 请输入三角形得三边 scanf f f f 思考4 怎么没有起作用 调试看看吧 28 include includevoidmain floata b c s p charyes no do printf 请输入三角形得三边 scanf f f f 思考5 yes no getchar yes no getchar do scanf c 29 124369481216 includevoidmain inti j for i 1 i 4 i for j 1 j i j printf 4d i j printf n 读程序写结果1 第六章循环结构程序设计 30 includevoidmain inti j for i 1 i 4 i for j 1 j 4 i j printf 4c for j 5 i j 4 j printf 4d i j printf n 读程序写结果2 4686912481216 第六章循环结构程序设计 31 includevoidmain inti j for i 1 i 4 i for j 1 j 5 i j printf 4d i j printf n 请同学们写出以下程序的输出结果 1234246364 第六章循环结构程序设计 includevoidmain inti j for i 1 i 4 i for j 1 j i 1 j printf 4c for j i j 4 j printf 4d i j printf n 123446891216 32 例1 利用公式 4 1 1 3 1 5 1 7 求 的近似值 直到某一项的绝对值小于10 6为止 提示 fabs t 求浮点数t的绝对值 五 程序举例 include includevoidmain ints floatn t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 思考 使用哪一种循环控制语句 pi 1 1 3 输出4 pis 1 1 n 1 3 5 7 t s n 33 例2 求Fibonacci数列的前40个数 11235813213455 includevoidmain longintf1 f2 inti f1 1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 特点 第1 2个数为1 1 从第三个数开始 该数是其前面两个数之和 f1 1 n 1 f2 1 n 2 fn fn 1 fn 2 n 3 P128 1123581321345589144 34 例3 判断m是否为素数 素数 质数 只能被1和它本身整除的数 判别方法 57 若2 56之间的每一个数都除不开56 则57为素数 否则57不是素数 m k m 1 i 2 k 若每一个i的值都除不开m 则m为素数 否则m不是素数 flag 1 k m 1 for i 2 i k i if m i 0 flag 0 if flag 1 printf yes elseprintf no k m 1 for i 2 i k 1 printf yes elseprintf no k m 1 k m 2 m 1 2 k sqrt m sqrt m 1 第六章循环结构程序设计 35 例4 求101 200之间的全部素数 每行输出10个数 include includevoidmain intm k i n 0 for m 101 m k 1 printf d m n n 1 if n 10 0 printf n printf n 36 例5 译密码 输入一行字符 输出其相应的密码 131页 译码规律 将字母变成其后的第4个字母 非字母字符不变 includevoidmain charc while c getchar n if c a 37 作业1 38 作业2 不能用math h中的库函数
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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