当前课程知识点:C语言程序设计(上) > 循环结构的程序设计(一) > 4.1 需要重复执行的程序 > 4.1.1----第四章~1
大家好 前面我们学习完了第三章的内容
选择结构的程序设计
那么 从今天开始我们学习第四章
循环结构的程序设计
在这个
循环结构的程序设计里面呢是
这一门课程里边的 比较基础的
重点的部分 内容也比较多
所以我们把它拆成两周
这一周和下一周都来讨论
这方面的问题 一共有四个问题
第一个是
给一些循环的基本概念
第二个第三个
是说c提供的
构建循环的知识语句
第四个 是给大家一些应用
通过这一章我们期待大家知道点什么呢
第一个问题就是
什么样的问题我们需要
这一章提供的方式来解决
也就说
什么样的问题需要循环程序来解决
那接下来是
如何表达循环里边的条件
它和选择的时候构建条件有不同吗
那么第三个是说
如何构建循环的控制流程
最后
需要大家最落实到的 是说
一些应用问题
我们怎么用循环的方式来解决
那我们先看第一部分的内容
需要重复执行的程序
就需要构建循环
那么 什么问题需要循环程序解决呢
如何解决 我们先看第一个
前面 我们很多次的用到了说
用关系运算作判断条件是为了什么
是为了解决程序的流程
不是顺序往下走的时候
需要选择的时候我们会用判断
我们举得一个例子说
补考 学生补考
那我们现在是
关心的是什么呢
不仅仅说谁需要补考
我们关心的 说一批群体里边
n多人里边都需要
谁需要补考
也就说
有n多人可能都碰到了同一个流程段
同一个程序段
都要执行这一段程序
比如说 我们现在说 谁需要补考这件事
在选择结构里是这样实现的
判断 然后呢
打印补考 还是不打印补考
好了 这件事
我们在选择里边做一次
那我们今天关心的是说
这件事情 在这个
花括弧里边的这个程序段
以及判断x小于60吗 这件事
不一定是做一次
比如说一个班的学生 30个人
那么一个学院的学生几百个人
一个学校的学生几千个人
那么 我们从这里边筛选出来
所有需要打印补考通知单的同学
那这个程序段就不是需要执行一次
也就说
不是一个人需要补考的这样的问题
那我们就需要说
在这个流程里边
加一个什么呢 返回去再做
再做什么呢 跟它一模一样的
一个程序段 一模一样的流程
具体到程序上就是
把这个程序回过来
把这个if到这个花括号结束的地方重复做
那么像这样的循环问题
不仅仅是我们说的 谁需要补考用
生活里边许许多多的问题
都是需要把同一段程序段
重复 周而复始的执行n多次
当然
周而复始不是没有结束 一定有结束
这是循环里边非常重要的一个概念
比如说
但是在100以内都是
Σ都是在加 求和
后边一样
那么还有
比如说找一个最大数
或者找一个最小数
那么它是重复在做
这个数是最大么
怎么找出来它是最大
一个一个比较
比较一次 比较第二次 比较第三次
比较的每一次
做的是同一个方法比较
那么分类问题
比如说
字符分类 什么分数分类 年龄分类等等
也是分类把很多数做的是同样的一件事情
你在哪一类 你在哪一档
你在哪一档这件事情
是反复做很多次
包括数列问题等等
那么最经典的循环问题
比如说 大家知道的鸡兔同笼问题
梅森素数
现在网上的梅森素数大搜索
梅森素数的问题
找出来一个梅森素数 我们还在找第二个
在找第三个
而且每一个找的过程里边
里边也是同一个程序段
在反复循环 在找
包括 我们下边说
比如说 求
3到150
那3 4 5 6
每一个数里边
我们每找这个过程中找出来每一个素数
找的过程 是程序段在循环
求和 也是在循环
这里边我们给的几个例子都是说
想说明什么呢
你的实际在我们的生活里边有很多问题
都是用程序解决
而程序解决的这个过程
我们都是把复杂问题进行了分解
分解在分解
分解到什么时候就不分解呢
程序能具体的用语句去完成
而分解的这个小问题的过程里边
是许多时候 是需要同一个程序段
把这个程序段反复执行
直到把这个问题解决了
那这样的话
我们构建这个循环的
就变成这样子
我们看这个流程大家是熟悉的
那粉颜色括起来的那个块
就是我们现在要说的循环体
你要反复执行的那一段过程
那在前边
加的那个条件是什么呢
你要做这一段循环吗
你要再做这个粉颜色的块吗
如果需要
你就回过来再到这做
判断 还要做吗
还要做 再去做粉颜色的这个块
构建起来这么一个循环
只要条件满足我就做粉颜色的这个块
只要条件一直满足我就一直做
什么时候我就不做了呢
条件不满足就不做
这就是我们说的循环的结构
那我们把这个再给它
简单的抽象出来
就是条件判断
你要做下边这个程序段吗
也就说这个循环体吗
我们把这个
循环的整个这个过程里 这个程序段
叫做循环体
要做这个循环体吗
如果条件满足就做 做完了无条件的回来
到入口处在判断你还要做么
还做下面这个循环体吗
周而复始的循环
只要你的条件是yes
否者咱出来
大家在这边一定听出来了一件事
什么时候出来呢
那这个条件
一定会在你的循环体里边得到了改变
如果不改变这循环就出不来了
这就
我们通常在循环里边经常听到的一个词
是死循环
我们还拿打印补考通知单这件事
这件事情 这是一个程序段
这就是我们要做的那个循环体
那现在 是c必须支持一个什么呢
进入这个循环体 进来入口
要进来吗 需要判断
进来以后做这个流程
做完了以后 程序能够自动返回去
那 c在这一块要提供这样的方式
能入口 能返回去
并且 我不需要它的时候
我能结束
这就是循环里边要解决的问题
无论是 这个循环是复杂的
还是简单的
这个问题是需要一个循环
还是多个循环来解决的
但是最终每一个循环里边做的都是入口
然后 进行循环
然后 自动构建这个循环
当做完了的时候能自动出来
这就是循环要解决的问题
-1.1 计算机的问题求解方法
--讨论题:数学模型
-1.1 计算机的问题求解方法--作业
-1.2 C语言与C程序
--讨论题:运算符
-1.3 C语言处理系统与程序调试运行
--例程
-1.4 程序中的人机交互
--例程
--作业讨论区
-2.1 算术运算的C程序实现
--算术混合运算.c
-2.1 算术运算的C程序实现--作业
-2.2 关系运算的C程序实现
--bukao.c
--字符比较.c
--讨论题:比较大小
-2.2 关系运算的C程序实现--作业
-第二周作业--作业
-2.3 逻辑运算的C程序实现
--计算结合性
--闰年.c
--自动购票问题.c
-2.3 逻辑运算的C程序实现--作业
-2.4 位运算的C程序实现
--讨论题:位运算
-2.5 几种很个别的运算
--讨论题
--讨论题
-2.5 几种很个别的运算--作业
-2.6 混合运算及数据类型转换
--讨论题:数据类型
-2.7 顺序结构程序实例
--Video
--三角形面积.c
--讨论题:工业产值
-2.7 顺序结构程序实例--作业
-3.1 程序中的路径选择实现
--打印学生成绩.c
--一元二次方程.c
-3.1 程序中的路径选择实现--作业
-3.2 路径中的再选择——嵌套判断
--例程
--讨论题:程序改错
-3.2 路径中的再选择——嵌套判断--作业
-3.3 复杂判断问题的C程序设计
--3.3 多级选择
--银行存款.c
--讨论题:多级选择
-3.4 多分支问题的C程序设计
--加减乘除运算.c
-3.4 多分支问题的C程序设计--作业
-3.5 GOTO的适当使用
-3.6 选择结构的程序实例
--3.6 程序展示
--计算第几天.c
--讨论题:输出奇数
--讨论题:计算税金
-3.6 选择结构的程序实例--作业
-第四周作业--作业
-4.1 需要重复执行的程序
--求和.c
--打印学生成绩.c
--统计录入速度.c
--求平均数.c
-4.1 需要重复执行的程序--作业
-4.2 至少要执行一次的循环
--n的阶乘.c
--字符分类统计.c
-4.2 至少要执行一次的循环--作业
-4.3 已知循环次数用for语句
--求和问题.c
--数列求和.c
--讨论题:循环语句
-4.3 已知循环次数用for语句--作业
-4.4 循环控制——简单循环应用
--水仙花数.c
--讨论题:死循环
--讨论题:猜数字
-循环结构的程序设计(一)--4.4 循环控制——简单循环应用
-4.5 循环的嵌套
--讨论题:程序运行
-4.5 循环的嵌套--作业
-4.6 break与continue
--最大素数.c
-4.6 break与continue--作业
-4.7 循环的综合应用
--数的排列组合.c
--鸡兔同笼.c
--打印空心字符.c
--讨论题:打印图形
--讨论题:计算闰年
-第六周作业
-第六周作业--作业
-5.1 同类有序数据处理问题
-5.2 一维数组的定义和引用
--数组定义.c
--数组初始化.c
--反向输出.c
--讨论题:对称数
-5.2 一维数组的定义和引用--作业
-5.3 一维字符串数组
--讨论题:编程
-5.4 字符串处理函数
--字符串反向.c
--字符串函数
-5.5 二维数组的定义与使用
-5.6 二维数组的输入输出
-5.6 二维数组的输入输出--作业
-5.7 二维数组的应用
--转置矩阵.c
--讨论题:修改程序
-5.8 二维字符数组
--5.8 单词排序
--单词排序.c
-5.8 二维字符数组--作业
-5.9 数组综合应用
--统计成绩.c
--统计字符次数.c
--讨论题:洗牌
-本期课程结束语
--end
-第八周编程作业
-《C语言程序设计(上)》期末复习参考
--html
-《C语言程序设计(上)》期末复习参考答案
--html