精品课件-C语言程序设计新视角(周幸妮)-第1章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

31
2.数据的表现形式——常量和变量 在许多问题中,都会有有些量固定不变,有些量不断变 化的情形。如物体运动中的速度、时间和距离,圆的半径、 周长和圆周率,购买商品的数量、单价和总价等。 数据在程序中的表现形式有两种:常量和变量。常量是 在程序运行过程中,值不能被改变的量;变量是在程序运行 过程中,值能被改变的量。 C语言中会给变量起一个名字,在内存中给它分配一个 存储单元,用来存储它的值。
7
1. 机器语言 由于计算机内部只能处理二进制代码,因此,用二进制 代码0和1描述的指令称为机器指令。全部机器指令的集合构 成计算机的机器语言。用机器语言编写的程序称为目标程序。 只有目标程序才能被计算机直接识别和执行。但是用机器语 言编写的程序无明显特征,难以记忆,不便阅读和书写,且 依赖于具体机种,局限性很大。机器语言属于低级语言。
4
1.1 程 序 的 概 念
为了使计算机能够按人的意图工作,人类就必须要将需 要解决问题的思路、方法和手段,通过计算机能够理解的形 式告诉它,使得计算机能够根据人的指令一步一步去工作, 完成特定的任务。
5 编程就是让计算机为解决某个问题而使用某种程序设计 语言编写程序代码,并最终得到结果的过程。
10
用高级语言所编制的程序不能直接被计算机识别,必须 经过转换才能被执行。按转换方式可将它们分为两类:
(1) 解释类:执行方式类似于我们日常生活中的“同声 翻译”。应用程序源代码一边由相应语言的解释器“翻译” 成目标代码(机器语言),一边执行,因此效率比较低,而且 不能生成可独立执行的可执行文件,应用程序不能脱离其解 释器。但这种方式比较灵活,可以动态地调整、修改应用程 序。
17
(2) 编程序——代码实现:根据前面确定的算法,编写 相应的程序代码。
(3) 调试通——调试通过:在IDE中,将编好的程序通 过编译器翻译成机器码,这个过程叫做“编译”。
(注:IDE(Integrated Development Environment)即集 成开发环境软件,是用于程序开发环境的应用程序,一般包 括代码编辑器、编译器、调试器和图形用户界面工具。该程 序可以独立运行,也可以和其他程序并用。)
程序:为了让计算机解决特定问题而专门设计的一 系列计算机可执行的指令集合。
程序设计语言:即Programming Language,是用于 书写计算机程序的语言。
C语言:Combined Language(组合语言)的中英文混 合简称,是一种计算机高级语言。
6
计算机语言 计算机语言的种类非常多,总的来说可以分成机器语言、 汇编语言和高级语言三大类。目前通用的编程语言有两种: 汇编语言和—由类型决定 数据在机器中存放,需要一定的内存空间,变量在内存 中给它分有存储单元,那么这个存储单元的大小是多少呢? 实际的情形应该是,程序员根据数据实际需要占多少位 (bit),来向计算机系统申请分配相应大小的存储单元。 C语言根据数据的各种情形,把它们分成不同的类型, 如表1.2所示。
8
2. 汇编语言 汇编语言的实质和机器语言是相同的,都是直接对硬件 操作,只不过其指令采用了英文缩写的标识符,更容易识别 和记忆。它同样需要编程者将每一步具体的操作用命令的形 式写出来。 汇编源程序一般比较冗长、复杂、容易出错,而且使用 汇编语言编程需要有更多的计算机专业知识。但汇编语言的 优点也是显而易见的,用汇编语言所能完成的操作不是一般 高级语言所能实现的,而且源程序经汇编生成的可执行文件 不仅比较小,而且执行速度很快。
软件=程序+数据+文档
14
1.2 计算机解题过程
从“加工”的角度看,计算机解题的过程可以分成三个 步骤,如图1.1所示。先由系统分析员根据实际问题建立数 学模型,当这个模型不完全适合计算机时,还要将它转换成 计算机能够“接受”的模型,做这个转换的工作需要有数据 结构的知识。解题模型建立后,程序员根据它编制程序,再 交由计算机执行,得到最终的结果。
18
在编译过程中,编译器可以查找程序中的语法错误,当 没有语法错误后,生成后缀为OBJ的目标文件;若程序是由 多个OBJ组合而成的,则还要把这多个OBJ文件进行链接,最 后形成一个后缀为EXE的可执行文件,这时,就算是编写好 了一个可以在计算机上运行(Run)的程序了。试着运行一下 这个程序,计算机会严格按照用户编写的指令一步步执行下 去。此时可以去看运行的结果,若结果和预设的一致,那就 完成了任务。
图1.3 程序组成
24
算法是程序的灵魂,用于解决“做什么”、“怎么做” 的问题;数据是加工的对象;程序结构是设计方法;语言是 工具。
25 1.4.1 程序的构成成分之一 ——数据
数据:计算机可“表现”、“存储”、“运算”的信息。 数据的表现形式:常量和变量; 数据的存储尺寸:由类型决定; 数据的运算方式:通过运算符实施。 1.程序中的数据 程序中的数据是指计算机可接收,即可存储到计算机中, 并可对其进行加工处理的信息。
19
但事情往往没那么简单,除非是很简单的程序,一个很 有经验的程序员也不能保证程序首次运行就得到正确的结果。 为什么会这样呢,编译完成,程序不是已经没有语法错误了 吗?没有语法错是程序可以运行的前提,但程序中还会有一 种叫做“逻辑错”的错误,它会造成运行结果的不正确。逻 辑错是需要程序员自己去查找的。找逻辑错的工作叫做程序 调试,这是一个很需要耐心和专注力的工作,难度往往比编 程还要大。
21
1.4 程 序 的 构 成
如果把数据和程序语句看成是原料,程序结构和算法是 制作方法和工艺要求,则程序就是最后加工出来的产品,如 图1.2所示。
22 图1.2 程序加工处理示意图
23 程序由程序语句(有一定的语法规则)和数据(要处理的 信息)组成,是在符合程序结构的构造框架(有一定之规)下, 按照事先设计的完成特定功能要求的执行步骤(算法)最终完 成的指令序列,将其写成一般的形式如图1.3所示。
1
第1章 走马观花看编程
1.1 程序的概念 1.2 计算机解题过程 1.3 编制程序的全过程 1.4 程序的构成 1.5 算法是如何设计出来的 1.6 简单的C程序介绍 1.7 本章小结
2
【主要内容】 程序的概念; 算法设计方法; 程序设计方法; 简单的C程序介绍。
3
【学习目标】 理解程序设计的基本步骤; 能够用自顶向下、逐步求精的方法确定算法。
15 图1.1 计算机解题过程
16
1.3 编制程序的全过程
编制程序有三个基本的步骤:定算法、编程序、调试通。 (1) 定算法——确定算法:先要明确实际问题要求完成 的功能是什么,它要处理的信息有哪些(这些信息是要输入 到计算机中的);计算机对上述信息处理完毕,实现了指定 的功能后,结果是什么,即输出的信息有哪些;计算机完成 指定功能的具体步骤是什么。
12
软件与程序的关系 常常听到这样的说法,编程(Programming)就是编写软 件。但程序与软件在概念上是有区别的。软件应该包含以下 三个方面的含义:
13
(1) 运行时,能够提供所要求功能和性能的指令或计算 机程序集合。
(2) 程序能够满意地处理信息的数据结构。 (3) 描述程序功能需求以及程序如何操作和使用所要求 的文档。 所以可以认为:
35 表1.2 数 据 类 型
数据类型
基本类型 指针类型 构造类型
整型 字符型 实型(浮点型) 枚举类型
数组类型 结构体类型 共用体类型 空类型
36 不同类型的数据对应的存储单元的大小是不同的,计算 机系统提供了不同“规格尺寸”的空间大小——基本数据类 型,构造类型是由基本类型组合而成的。 变量存储单元的大小是由其数据类型决定的,程序员可 以根据需要选用。
28
2. ASCII码 ASCII码(American Standard Code for Information Interchange,美国标准信息交换码)是基于拉丁字母的一套 电脑编码系统。它主要用于显示现代英语和其他西欧语言。 它是现今最通用的单字节编码系统。 ASCII 码使用指定的7 位或8 位二进制数组合来表示 128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码, 使用7 位二进制数来表示所有的大写和小写字母、数字0~9、 标点符号以及在美式英语中使用的特殊控制字符。
为什么要有各种数据类型? 答:① 可解决数据的有效存储空间问题; ② 不同类型的数据其处理规则、方式不相同。
37
4.数据的运算方式——通过运算符实施 对数据的加工处理是通过各种运算符来实施的。 C语言中的各种运算符见表1.3,具体使用方法会在第2 章中介绍。
(2) 编译类:编译是指在应用源程序执行之前,就将程 序源代码“翻译”成目标代码(机器语言),
11
因此其目标程序可以脱离其语言环境独立执行,使用比较方 便,效率较高。但应用程序一旦需要修改,必须先修改源代 码,再重新编译生成新的目标文件(*.OBJ)才能执行,如果 只有目标文件而没有源代码,则修改很不方便。现在大多数 的编程语言都是编译型的,例如C/C++、Delphi等。
26
计算机中的数据 在计算机中,各种信息如数字、字符、声音、图像等都 是以二进制编码方式存储的。下面介绍编程中相关的数据知 识。
27
1. 数据的存储单位 数据的存储单位见表1.1。
表1.1 数据的存储单位
存储单位 bit Byte Word
Kilobyte Megabyte Gigabyte Terabyte
32 变量的起名和分配存储单元都是在一个称做“变量定义” 的语句中完成的,存储变量的值如果在定义时指定,则称做 是对变量进行初始化。
初始化:在变量定义时对变量进行赋值的操作。
变量没有初始化,那么它的存储单元里会是什么数?答 案会在第2章中给出。
33
为什么要用变量? 答:程序要解决的问题往往是通解。比如,计算n!的 程序,n=5时,能给出正确结果;n=10时,也应该能给出正 确结果,即只要输入的n为一定范围的正整数,那么程序都 应该能计算出结果,这样的程序才有实际的意义。
29
256种字符中的后128个字符称为扩展ASCII码,目前许 多基于x86的系统都支持使用扩展(或“高”)ASCII码。扩展 ASCII 码允许将每个字符的第8 位用于确定附加的128 个特 殊符号字符、外来语字母和图形符号。
30
3. 汉字编码 为汉字设计的一种便于输入计算机的代码。计算机中汉 字的表示也是用二进制编码,同样是人为编码的。根据应用 目的的不同,汉字编码分为外码、交换码、机内码和字形码。 1981年,国家标准局公布了《信息交换用汉字编码字符 集基本集》(简称汉字标准交换码),其中共收录了6763个汉 字。这种汉字标准交换码是计算机的内部码,可以为各种输 入/输出设备的设计提供统一的标准,使各种系统之间的信 息交换有共同一致性,从而使信息资源的共享得以保证。
缩写 b B W KB MB GB TB
中文名称 位 字节 字
千字节 兆字节 吉字节 太字节
进率
1 B=8 b 1 W=2 B 1 KB=1024 B 1 MB=1024 KB 1 GB=1024 MB 1 TB=1024 GB
一个位(bit)有多大?位是内存的最小单位。二进制数 系统中,每个0或1就是一个位。
9
3. 高级语言 高级语言是目前绝大多数编程者的选择。和汇编语言相 比,它不但将许多相关的机器指令合成为单条指令,并且去 掉了与具体操作有关但与完成工作无关的细节,这样就大大 简化了程序中的指令,编程者也就不需要有太多的计算机硬 件知识。 高级语言主要是相对于汇编语言而言的,它并不是特指 某一种具体的语言,而是包括了很多编程语言,如目前流行 的VB、C++、Delphi等,这些语言的语法、命令格式都各不 相同。
调试的基本方法将在第10章“程序调试及测试”中专门 介绍。
20
程序的逻辑错 程序的逻辑错主要表现在程序运行后,得到的结果与预 期设想的不一致,这就有可能是出现了逻辑错。比如运算应 该是先加后乘的处理,如果忘了加括号,运算结果就会出现 错误。通常出现逻辑错的程序都能正常运行,系统不会给出 错误在哪里的提示信息。
相关文档
最新文档