c语言学习第一课
教学安排 本学期共18周(3.8-7.12),其中考试 考核2周,节假日按照国家法定假日执行。 总 学 时: 64 学时 成绩计算 平时成绩: 50分 平时成绩=考勤+上机+作业(写上课编写的程序) 上机:课本+作业本 期末考试/课程设计: 50分 C语言的功能? 编写系统软件。 编写应用软件。 数据计算。 信息处理。 图形处理。 C语言的设计者 Ken.Thompson(肯·汤普森 )和Dennis.M.Ritchie(丹尼斯.里奇) 接受美国国家技术勋章(右为当时的美国总统克林顿) Ritchie和Thompson用C语言在开发UNIX操作系统 格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 一、算法的概念 二、算法的特性 三、 算法的表示 1、 用自然语言表示算法 2 、用流程图表示算法 3、用N-S流程图表示算法 小结: 流程图是表示算法的较好的工具。一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。 1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框,或者说,由一些基本的框组成一个大的框。这种流程图又称N--S结构化流程图。 N-S流程图用以下的流程图符号: (1)顺序结构 (2)选择结构 (3)循环结构 判定2000~2500年中的每一年是否闰年,将结果输出。 分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。 设y为被检测的年份,算法可表示如下 : S1:2000 → y S2:若y不能被4整除,则输出y “不是闰年”。然后转到S6。 S3:若y能被4整除,不能被100整除,则输出y “是闰年”。然后转到S6。 S4:若y能被100整除,又能被400整除,输出y“是闰年”,否则输出“不是闰年”。 然后转到S6。 S5: 输出y “不是闰年”。 S6:y+1 → y S7:当y≤2500时,转S2继续执行,如y>2500,算法停止。 判定闰年的算法用自然语言表示 判定闰年的算法用流程图表示 用流程图表示算法要比用文字描述算法逻辑清晰、易于理解。 判定闰年的算法用N-S图表示 自顶向下,模块化,逐步细化方法 考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分修改有关段落即可,与其它部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。 四、程序设计方法: 模块设计的方法: 模块化设计的思想实际上是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务就相对简单了。 在拿到一个程序模块以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,还再可以划分为更小的模块。这个过程采用自顶向下方法来实现。 子模块一般不超过50行。 划分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。 (1) C程序总是从main函数开始执行的,与main函数的位置无关。 (2) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (3) 每个语句和数据声明的最后必须有一个分号。 (4) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。 * * 兴趣是最好的老师! 学好C语言,成为C高手, 可以让你今后衣食无忧,能够无忧无虑地生活。 C语言发展历史 C语言特点 C程序格式和结构特点 C程序上机步骤 第一章 C语言概述与程序逻辑 程序设计语言的发展 机器语言 汇编语言 高级语言 面向过程 面向对象 CPU指令系统,由0、1序列构成的指令码组成 如 加 减 用助记符号描述的指令系统 如 ADD A, B 面向机器的语言 程序设计是数据被加工的过程 客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系 程序设计关键是定义类,并由类派生对象 冯.诺依曼结构: 计算机 运算器 控制器 存储器 主机: I/O设备:键盘、显示器等 中央处理器CPU > > 1.1 C语言发展历史 52 54 56 58 6