程序设计基础c语言 高克宁 1,2章课件 清华大学出版社
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机软件
程序设计语言
机器语言
二进制指令 与计算机硬件的设计密切相关
汇编语言源自文库
汇编语言与机器语言的指令具有一一对应的关系,指
令的操作码和操作数地址全部用指定的符号表示
汇编语言依然依赖于计算机系统结构,只能为特定的
机器所识别,是面向机器的语言
程序设计语言
高级语言
与具体的计算机指令系统无关的计算机语言
计算机硬件
主机
外部设备
计算机软件
裸机 要使计算机解决各种实际问题,必须有软件的支持,计
算机软件着重研究如何管理计算机和使用计算机的问 题 ,没有软件支持的计算机就是一堆废铁
指令与程序
指令
指令就是计算机执行某种操作的命令,是硬件能理解
并能执行的语言,是机器语言的一个语句,是程序员 进行程序设计的最小语言单位。
什么是C语言?
编写一个加法运算程序
C语言严格区分大、小写 英文字母。
#include〈stdio.h〉 C语言程序是由一个个的 main() 语句组成。 { int a,b;/*定义两个整形变量*/ C语言程序使用“;”作为 a=1;b=5;/*给两个变量赋值*/ 语句的终止符和分隔符。 printf(“%d+%d=%d\n”,a,b,a+b); /*打印a和b之和*/ C语言程序中用大括号对 } “{ }”表示程序的结构层 次范围。 一个完整的程序模块要用一对花括号括起 来,用以表示模块的范围。为了清晰地表 现出程序的结构,建议使用右缩进锯齿型 程序书写格式。
基本要求
认真阅读、理解书本相关概念和理论方法 全面掌握书本所有例题 独立完成实验指导书要求的所有实验 达到计算机等级考试的要求 多做实验,勤做实验!
第一章:计算机及程序设计概述
计算机和计算机程序
计算机的基本工作原理
运算器
输入数据
输入 设备
存储器
输出 设备
输出数据
控制器
计算机硬件和计算机软件
计方法,将解决问题的重点放在了描述实现过程 的细节上,尽量保证程序的客观性,避免人对于 程序设计的干扰。 面向对象方法的基本原则是尽可能地模拟现实世 界中人类的思维方式,使开发软件的方法和过程 尽可能地接近人类解决问题的方法和过程。
并行程序设计 基于组件的程序设计
什么是C语言?
1973年由美国贝尔实验室设计发布的
目前有许多软件系统是用C编写的,或基本上是用C编写的
学习程序设计的同时也能掌握一种实用的程序设计工具
C语言是一种很灵活的语言
既可以在较高层次上做,也可以在较低级的层次上做
很多新型的语言都是衍生自C语言
有些本身就是C语言的扩充和发展 C语言适合作为计算机领域许多后续课程的教学语言
程序设计是计算机领域的基础课程
每个语句都具有规定的语法格式 和特定的功能。
什么是C语言?
编写一个加法运算程序
C语言严格区分大、小写 英文字母。
#include〈stdio.h〉 C语言程序是由一个个的 main() 语句组成。 { int a,b;/*定义两个整形变量*/ C语言程序使用“;”作为 a=1;b=5;/*给两个变量赋值*/ 语句的终止符和分隔符。 printf(“%d+%d=%d\n”,a,b,a+b); /*打印a和b之和*/ } 可以任意书写,即一行中可以书写多 个语句,一个语句也可以占用任意多 行,语句之间必须用“;”分隔。初 学时建议在一行内书写一条语句。
注意
为了有效地利用计算机解决实际问题,在设计算法 时不仅要保证计算机执行算法的正确性,还要考虑 算法的质量,选择适合于具体问题的算法
算
法
通常计算机算法分为两大类:数值运算算法和 非数值运算算法
数值运算是指对问题求数值解
有确定的数学模型 非数值运算是指事务处理过程 种类繁多,很难提供统一规范的算法 更多的是需要用户设计其算法的
算 法
输入三个数,然后输出最大的数
算法可以写成:
(1)输入A,B,C;
(2)若A>B,则A->MAX;若A<B,则B->MAX。 (3)若C>MAX,则C->MAX。 (4)输出MAX,MAX是最大数。
算法的两个要素 基本功能操作 数据运算和传输 控制结构 顺序、选择和循环三种基本控制流程
目前是计算机程序设计语言的主流语种 是世界上最为广泛使用的语言之一
C语言的流行归功于两个主要因素
使用正确的C语言指令几乎可以完成任何任务
是可移植的C编译系统的广泛采用
C语言是一种能够让软件工程师与计算机进行 有效对话的介于汇编语言和高级语言之间的编 程语言
什么是C语言?
C语言标准
什么是C语言?
C语言的特点
适合开发系统软件 结构化的程序设计语言 丰富的数据类型和数据结构 运算符多样化 可移植性好 语句简洁紧凑 编程风格灵活,语法限制少,使用灵活 具有预处理功能 面向对象程序设计的基础
什么是C语言?
编写一个加法运算程序P18
#include〈stdio.h〉 main() { int a,b;/*定义两个整形变量*/ a=1;b=5;/*给两个变量赋值*/ printf(“%d+%d=%d\n”,a,b,a+b); /*打印a和b之和*/ } C语言程序习惯上使用小写英文 字母,而大写英文字母通常作为 常量的宏定义和其他特殊的用途 。 C语言严格区分大、小写 英文字母。
程序设计基础(C语言)
徐兵
blogzjou@126.com
主要学习内容
基本数据类型 运算符和表达式 输入输出 程序控制结构 数组 函数 指针 结构体、共用体 编译、文件
学习目标 理解计算机程序设计的基本原理 掌握程序设计的基本方法和技术 掌握结构化程序设计的开发方法 结合C语言学习开发小型应用系统
什么是C语言?
编写一个加法运算程序P18
C语言严格区分大、小写 英文字母。
#include〈stdio.h〉 C语言程序是由一个个的 main() 语句组成。 { int a,b;/*定义两个整形变量*/ C语言程序使用“;”作为 a=1;b=5;/*给两个变量赋值*/ 语句的终止符和分隔符。 printf(“%d+%d=%d\n”,a,b,a+b); /*打印a和b之和*/ C语言程序中用大括号对 } “{ }”表示程序的结构层 次范围。 注释部分的格式是: C语言程序可以使用注释。 /*注释内容*/注释部分不参与 程序的执行,对程序的运行结果没 有影响,只是用来提示或助记。
A>B?
N
MAX=A
C>MAX? T
MAX=B
N
MAX=C 输出MAX 结束
算法的表示
N-S图
是适合结构化程序
a1=1 i=9 当i>=1时,循环 a0=2*(a1+1) a1=a0 i=i-1 输出a0
设计方法的图形工 具 N-S流程图无法表 示非结构化的程序 P12
T N 当〈条件〉满足
的各操作是按照它们出现的先后 顺序执行的 选择结构,表示程序的处理出现 了分支,它需要根据某一特定的 条件选择其中的一个分支执行 循环结构,程序反复执行某个或 某些操作,直到某条件为假(或 为真)时才可终止循环
结构化的程序设计方法
结构化程序设计方法
公认的面向过程编程应遵循的基本方法和原则
高级语言的分类
面向过程的语言
C、Pascal C++、Java、.Net SQL
面向对象的语言
面向特定应用的语言
Why C?
C语言是目前实际程序设计工作中使用最广泛的语言之一
它包含了程序设计需要理解和使用的基本程序机理和主要机制 掌握这些机制就可以理解程序与程序设计的主要问题。
什么是C语言?
编写一个加法运算程序
C语言严格区分大、小写 英文字母。
#include〈stdio.h〉 C语言程序是由一个个的 main() 语句组成。 { int a,b;/*定义两个整形变量*/ a=1;b=5;/*给两个变量赋值*/ printf(“%d+%d=%d\n”,a,b,a+b); /*打印a和b之和*/ }
算法的特性
有穷性
应含有有限的操作步骤,不能是无限的。有穷性指在 ‚合 理的限度之内‛ 每一个步骤都是确定的,只有一个涵义,不可以为二义性 在执行算法时需要从外界获取必要的信息 算法执行的目的就是为了求解,‚解‛就是输出的信息 没有输出的算法是没有意义的 每一个步骤应当被有效的执行,并得到确定的结果
指令的组成
指令由操作码和操作数构成
Mov 3,reg1 Mov 5,reg2
Add reg1,reg2
End
指令与程序
程序
程序(program)是为实现特定目标或解决特定问题而
用计算机语言编写的、可以连续执行并能够完成一定任 务的指令序列的集合。
程序的开发
描述问题(算法) 程序设计语言
算 法
例1:猴子吃桃问题。有一堆桃子不知数目,猴子第 一天吃掉一半,又多吃了一个,第二天照此方法,吃 掉剩下桃子的一半又多一个,天天如此,到第11天早 上,猴子发现只剩一只桃子了,问这堆桃子原来有多 少个? 数学模型:ai=2*(ai+1+1) i=9,8,7,…1;
Step1:peach1=1;i=10; Step2:peach0=2*(peach1+1); Step3:peach1=peach0; Step4:i=i-1; Step5:若i>=1,继续循环执行Step2; Step6:输出peach0的值。
程序设计
一个完整的程序
数据结构、算法、编程语言和程序设计方法
对数据的描述(数据流)
指定数据的类型和数据的结构
对操作的描述(控制流)
指定操作的步骤,既算法
程序=数据结构+算法
算 法
什么是算法(Algorithm)?
就是为了解决一个特定的问题而采取的确定的、有限
的、按照一定次序进行的、缺一不可的执行步骤
结构化程序设计特征
采用模块化结构 自顶而下的设计方法 便于对问题的分解和模块的划分 程序由三种基本控制结构组成 有限制地使用转移语句 采用结构化程序设计语言书写程序 结构化程序设计语言书写程序 注意书写风格
其他程序设计方法
面向对象程序设计方法
结构化程序设计方法作为一种面向过程的程序设
唯一性
有零个或多个输入
有一个或多个输出
正确性
算法的表示
流程图
处理:操作的功能 端点:表示程序的转向,常用 来表示程序的开始和结束。
判断:单入口 多出口,表明判断的条件
流线:表示程序 的执行方向和顺序。
输入/输出:表示数据的名称、类型和用途等。
算法的表示
流程图
T
开始
输入A,B,C
授课重点
侧重学习一个具体问题的算法化的过程 学习应该掌握的基本编程技巧以及C编程的风 格和艺术 讨论
怎样编写出一个好的程序? 简单、实用的原则
本课程的组织
第一部分 基 础 算法概念、编程原理、编程风格、 基本数据类型定义、算术运算符及 表达式
第二部分 简单程序设计
顺序结构、选择结构、循环结构、 数组的定义及应用、程序设计过程
算法的表示
UML
面向对象的分析
与设计工具 适合于描述复杂 系统元素之间的 关系,不关注具 体算法
程序设计基本步骤
确定数学模型
实际问题的准确描述
算法描述
解决问题的具体步骤
编写程序
将已设计好的算法表达出来
程序测试
保证程序的正确性
结构化的程序设计方法
程序的三种基本结构
第三部分 高级程序设计
函数、变量的存储类别、指针、结 构体与共用体、文件
程序设计
什么是程序设计?
使用某种程序语言编写程序的过程,就是用计算机语
言对所要解决的问题中的数据以及处理问题的方法和 步骤所做的完整而准确的描述的过程
怎样进行程序设计?
分析问题 确定算法 编制程序 调试程序
1978年,正式出版的《The
C Programming Language》书 中介绍的c语言,称为标准c语言 1983年,美国国家标准化协会(ANSI)根据各种c语言版 本对c的扩充和发展,颁布了c语言的新标准ANSI c ANSI c比标准c有了很大的扩充和发展 1987年,美国国家标准化协会又颁布新标准,称为87 ANSI C 1990年,国际标准化组织ISO接受了87 ANSI C作为ISO C 的标准 目前功能最完善、性能最优良的C新版本 目前流行的C编译系统都是以它为基础的
问题的提出 结构化程序设计必须采用的结构
顺序结构、选择结构和循环结构 被称为程序设计的三种基本结构 算法的实现过程是由一系列操作组成的,这些操 作之间的执行次序就是程序的控制结构 总体结构流程都是自上而下顺序执行的。
结构化的程序设计方法
程序的三种基本结构
顺序结构,顺序结构表示程序中