当前课程知识点:C语言程序设计(上) > 从问题到C语言程序设计 > 1.1 计算机的问题求解方法 > 1.1.4-2-程序设计方法
我们
最后要讨论的是关于程序设计风格
这么几种特性
一种是
什么正确
另外一个 可读性 也就是
为了什么 为了
那其次的一个词
有点怪 叫健壮性
有时候还叫柔韧度
它是说什么呢
说你这个算法
对人机的交互
或者对你程序里边环境的改变
你的反映和处理能力要有
怎么讲呢
比如说 我们
你在键盘上怎么敲的时候
你敲错了
这个软件没有垮
没有死机
就说 这个软件的柔韧度比较好
或者说 它的健壮性比较好
那更好的是什么
比如说 我们在输入一个日期
我们把日期输成了一个月38天
最好计算机能提醒你说
一个月没有38天
你把一个星期输入成了9天
它会告诉你没有9天
这就是健壮性更好
健壮性就是这个意思
另外一个是高效率
这就是我们说的
你要达到所需要的时空性能
就是 不仅是时间的复杂性
你要考虑空间的复杂性 也要考虑
这就是高效率的问题
那么 我们这里边其实
在我们这门课程里边
大家更多的能关注到的
或者能考虑到的
是健壮性
也就是说
我们能做到的 至少必须做到的是
对正确的输入
你要有正确的结果
这时程序必须做到的
对于不正确的输入
能够有相应的提示
告诉它 怎么办
告诉它回去重新做
而不是说给了不正确的输入
就死机了
那良好的程序设计风格
应该是怎么样的呢
应该是
什么叫实际 比如说
我求一个圆面积 我说个π
我非把π写成a
我求一个欧姆定律
我非得把这个R
说成x
这样不是不可以
但是 就是跟你实际的
不贴近 就让读程序的人不理解
还有最后一个
这个相当重要
这尤其是在开始写程序的
初学者都不习惯的
觉得程序很短 用不着注释
这里边 我们再把它说的具体一些
说少一些
四点
我们把刚才的四句话再具体一下
比如说 源程序文档化
什么意思
就是用有意义的符号名
不要正好拧着
写好你的注释
程序采用缩进的格式 等等
这个 我们这不一个一个念了
课件留给大家
下去自己看 但是这个很重要
程序设计风格
实际上
程序不是仅仅你跟计算机交流
你更多的还是要跟人交流
而跟人交流 我们所有的东西
就需要规范 便于交流
我们看一下边上的这个程序
这是 求圆的直径和面积
大家不管是学过C的 还是没学过C的
我们先来说没学过C的
我们现在看这段代码
其实 你差不多也能看明白了
大家稍微仔细看一下
第一
它开始就给你写了是
求圆的直径和面积 给了你引导
中间有两个注释
告诉你要输入圆的半径r
还有
说 那个π是个什么意思
将来会用3.14去替换
这样在剩下来的 有几个你不懂
根据上下文也差不多懂了
这样的交流就会比较方便
这个程序的写法
在我们看整个结构
谁和谁对题
是要不要缩进
看上去整整齐齐
我们再来看这两个程序 程序A B
其实 大家看一下程序A和程序B
写的是一件事
是同一个程序
只是说 我们看程序A
它是这样写
这个对齐 是这样子
这样的对齐是这样子
然后 后边
给了注释
说 循环从哪里开始
这句话说的是 循环开始
下来是判断 下来是输出
即便是没学过C语言
我们也看个差不多
但是 我们再看这个程序B
这一块
整个看上去 就不是那么清楚
整个这样下来
结构看上去
让人读起来 层次不那么分明
所以 程序设计风格
还是非常重要的一件事
做好了 大家的交流就会比较畅通
自己的修改 以及
这个如果形成一个软件或者程序
一个实用的程序
后期的维护也会比较方便
结构化程序的设计的特征
就我们说的那三种基本结构
你可以嵌套
可以视独立的
但是 每个结构只能有一个入口
一个出口
还有不是结构化程序设计语言吗
当然有
只不过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






