ImageVerifierCode 换一换
格式:PPT , 页数:58 ,大小:781KB ,
资源ID:5753056      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5753056.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第1章 程序设计基础48054.ppt)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第1章 程序设计基础48054.ppt

1、1,第1章 程序设计基础,1.1 程序设计基础知识 1.2 C语言的历史和特点 1.3 几个简单的C程序 1.4 语言的词汇、 数据类型、常量和变量 1.5 程序开发环境基础知识,2,程序 要使计算机能完成人们预定的工作,就必须把要完成工作的具体步骤编写成计算机能执行的一条条指令。计算机执行这个指令序列后,就能完成指定的功能,这样的指令序列就是程序。,1.1 程序设计基础知识,程序就是供计算机执行后,能完成特定功能的指令序列,3,计算机程序性质,目的性 程序有明确的目的,程序运行时能完成赋予它的功能。 分步性 程序为完成其复杂的功能,由一系列计算机可执行的步骤组成。,4,计算机程序性质(续),

2、有序性 程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序。 有限性 程序是有限的指令序列,程序所包含的步骤是有限的。 操作性 有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能。,5,程序设计,程序设计是设计和编制程序的过程。 程序设计主要内容设计数据结构和算法编制程序和调试程序,6,程序设计语言,程序设计语言是人与计算机进行信息通讯的工具,是用来书写计算机程序的语言。大致可分为三类:机器语言、汇编语言和高级语言。,7,(1)机器语言,计算机的指令系统称为机器语言,所有的计算机都只能直接执行由其自身机器语言编写的程序。机器语言与计算机的硬件密切相关,机器语言中的计算机指令通常用

3、一个二进制形式的代码,由若干位1和0组成。一条计算机指令指示计算机一次完成一个最基本的操作。,8,(2)汇编语言,类英语单词缩写的符号指令代替机器语言的二进制代码指令构成了汇编语言。 例如,LD GR0,X 表示:将内存中变量X的的值取到寄存器GR0 汇编程序:将汇编语言编写的源程序转换成机器语言程序的程序。,9,(3)高级语言,高级语言(也称为程序设计语言)主要由语句构成,语句是要计算机完成任务的命令。 编译器(也称为编译程序):将高级语言编写的程序(源程序)转换成机器语言程序。,10,面向过程的语言,目前最流行最经常使用的程序设计语言属面向过程型的语言。面向过程的语言虽可独立于计算机编写程

4、序,但用这类语言编写程序时,程序不仅要说明做什么,更重要的是非常详细地告诉计算机如何做,程序需要详细描述解题的过程和细节。,11,面向问题的语言,不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果。如用SQL语言提出的查询或操纵要求,就能由数据库管理系统完成。 面向问题语言解题只要告诉计算机做什么,不告诉如何做,能方便用户的使用,但效率较低。,12,面向对象语言,为克服面向过程语言过分强调求解过程细节,程序不易复用的缺点,推出了面向对象程序设计方法和面向对象语言。面向对象语言引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念。用面向对象语言

5、进行程序设计时,以问题中的对象为基础,将具有类似性质的对象抽象成类,利用继承机制,仅对差异进行程序设计。,13,算法:就是问题的求解方法。,算法的组成:由一系列求解步骤组成,即一组简单指令和规则组成,计算机按规则执行其中的指令,并能在有限的步骤内解决一个问题或者完成一个函数的计算。算法要求组成算法的规则和步骤的意义应是唯一确定的,是没有二义性的。,14,描述算法的工具,流程图(又称框图):用图形描述算法。 例如:描述输入10个整数求和的计算。,伪代码:不使用某一种程序设计语言描述算法。s = 0; k = 1;do 输入x;s = s+x;k = k+1; while(k 11);,15,开发

6、算法的方法,逐步求精开发方法,是由粗到细分多步完成。先是粗略的计算步骤,然后对粗略步骤作深入考虑,添加实现细节,变成详细的描述。若还包含有实现细节不明确的部分,则还需对不明确部分作进一步的细化。直至算法所包含的计算步骤全部都足够清楚。,16,数据结构,数据结构是指数据对象及其相互关系,程序的数据结构描述了程序中的数据间的组织形式和结构关系。程序的处理对象是描述客观事物的数据,由于客观事物的多样性,会有不同形式的数据。如整数、实数、字符,以及所有计算机能够接收和处理的各种各样符号集合。,17,数据结构与算法的关系(续),程序、数据结构和算法三者之间的关系程序 数据结构 算法,18,结构化程序设计

7、,要求软件开发必须遵循一套严格的工程准则,以得到可靠、结构合理、容易维护的软件产品。 结构化程序设计主要包括: 程序结构自顶向下模块化设计方法 模块算法的逐步求精设计方法 结构化控制结构描述算法和编写程序,19,自顶向下模块化设计方法,方法:把一个大程序按功能划分成一些较小的部分,每个较小的部分完成独立的功能,用一个程序模块(或函数)来实现。 分解模块的原则:简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护。,20,自顶向下模块化设计方法(续),在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质:模块具有单一入口和单一出口。模块不

8、宜过大,模块功能单一。模块的执行不对环境产生副作用。让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无关。尽量用模块的名字调用模块。,21,逐步求精设计方法,程序设计的基本方法是 抽象 枚举 归纳 抽象包括算法抽象和数据抽象。算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法。数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作。,22,逐步求精设计方法(续),算法设计采用逐步求精设计方法,即先设计出一个抽象算法,这是一个在抽象数据上实施一系列抽象操作的算法,由粗略的控制结构和抽象的计算步骤组成。抽象操作只指明“做什么”,对这些抽象操作

9、的细化就是想方设法回答它“如何做”。,23,逐步求精设计方法(续),采用逐步求精的方法,由粗到细,将抽象步骤进一步分解成若干子任务。分而治之,对仍不具体的抽象子任务再进行分解。如此反复地一步步细化,算法越来越具体,抽象成分越来越少,直至可以编程为止。,24,结构化控制结构,1. 顺序结构顺序结构就是为把一个复杂的计算用若干简单的顺序计算来实现的一种控制手段。顺序结构执行时,从序列的第一个操作开始,顺序执行序列中的操作,直至序列的最后一个操作执行后结束。,25,顺序结构实例,交换变量x和y的值 可分解为顺序执行的三个操作步骤: temp=x; /* 将x的值暂存于temp */x = y; /*

10、 将x置成y的值 */y=temp; /* 将y置成temp的值 */ ,26,2.条件选择结构,条件选择结构有一个判断条件和两个供选择的分支操作组成。 一般形式:if (判断条件)分支操作1;else分支操作2;,27,3.循环结构,循环结构为描述循环操作提供控制手段。 在C中,循环结构有以下三种:while 循环结构do-while 循环结构for 循环结构,28,while 循环结构,由一个循环条件和一个循环操作语句(称为循环体)组成。一般形式:while ( 循环条件 )循环体,29,while 循环结构的执行过程,每次循环前,先求循环条件的值,当条件成立时,就执行循环体,并接着再次求

11、循环条件的值,以确定循环体是否再次被执行。当循环条件的值一开始为假,或某次循环后其值为假,则结束循环操作。,30,do-while 循环结构,由一个循环条件和一个循环操作语句(称为循环体)组成。 一般形式:do循环体while ( 循环条件 );,31,do-while循环结构的执行过程,每次循环前,先执行循环体,接着再求循环条件的值,当条件成立时,再执行循环体。如此反复,直到循环条件的值为假,结束循环操作。,32,for 循环结构,由为循环有关变量赋初值的表达式、循环条件、循环后对变量的修正表达式和循环执行的循环体组成。 一般形式: for(赋初值表达式;循环条件表达式; 修正表达式)循环体

12、,33,for 循环结构的执行过程,循环前,先执行赋初值表达式,为循环中的有关变量赋初值;每轮循环开始,先求循环条件的值,若条件不成立,则结束循环;当条件成立时,执行循环体;然后求变量修正表达式,更新有关变量的值;接着再次求循环条件。如此反复,直到条件为假,结束循环。,34,1.2 C 语言的历史和特点,一、C语言的起源1963年剑桥大学推出CPL语言(Combined Programming Language)(规模太大,难以实现),1967年推出简化版BCPL语言(Basic CPL),1970年贝尔实验室进一步简化,取名为B语言(取BCPL的第1个字母)并用B语言编写了UNIX操作系统,

13、但B语言过于简单,功能有限,1972年贝尔实验室在B语言基础上设计出C语言(取BCPL的第2个字母)。,35,二、C 语言的特点,高效性:C程序往往紧凑且运行速度快。 移植性:C程序不经修改或很少修改就可以到其他系统上运行。 丰富运算符:算术、关系、逻辑、位、自增/自减、赋值等等。 数据结构丰富:数据类型有整型、浮点型(即实型)、字符、数组、指针、结构体等,能实现如链表、树、栈等结构运算。,36,二、C 语言的特点(续),对硬件操作:能直接访问内存的物理地址,并进行位操作。 自由度大:语法限制不严格。如:不检查数组下标是否越界,整型与字符型可通用,条件可用0和非0表示假与真等。指针操作易犯错误

14、等。 初学有一定难度:数据类型多、运算符多、函数多、数据结构多、还有递归、指针、结构等。,37,1.3 几个简单的C程序,【例1.1】只输出一行信息的程序 #include void main( ) /* 主函数 */ printf(“This book is .n“); ,This book is .,程序运行结果,38,C 程序有以下几个特点,一个程序有一个名为 main 的主函数。 主函数前的关键字void表示该函数不返回结果。 在函数名之后要有一对圆括号。 函数体用花括号“ ” 括住。花括号可以用来括起任何一组代码,从而构成复合语句或分程序。,39,C 程序有以下几个特点(续),简单语

15、句之后有一个分号“;”。 程序中的“/* */”表示程序的注释部分。在C+中,也可以使用“/ ”作为注释。 #include 是编译预处理命令行,指明有关输入和输出标准函数也将是程序的一部分。,40,#include void main() /* 变量定义部分 */int x, y, sum; /* 定义整型变量x, y, sum */* 以下为语句序列 */printf(“Input x and yn“); /* 提示输入数据 */scanf(“%d%d“, /* 输出结果 */ ,【例1.2】读入两个整数,输出它们的和,Input x and y 3 5 x + y = 8,程序运行结果,

16、41,#include void main() double f, c; /变量定义int lower, upper, step;lower = 0; upper = 200; step = 20; f = lower;printf(“t F氏温度t C氏温度n“);while (f = upper) /循环计算c = 5.0/9.0 * (f - 32.0);printf(“t%7.0f t%7.1f n“, f, c);f = f + step; ,【例1.3】已知华氏温度0、20、200,求对应的摄氏温度。,42,#include float min(float a, float b)

17、float temp; /* 函数使用的变量的定义 */if (a b) temp = a; /* 这是if条件选择结构 */else temp = b;return temp; /* 返回到调用 min()函数处 */ void main() float x, y, c; /* 变量定义 */printf(“Input x and y.n“); scanf(“%f%f“, ,【例1.4】输入两个实数, 输出它们中的小的数,43,程序由若干函数组成。主函数名为main(),总是优先运行。一个函数由函数头和函数体组成。函数头包括函数属性、函数返回值类型、函数名、函数形式参数名,形式参数类型。 函

18、数结构的一般形式:函数返回值类型 函数名(参数说明表) 说明和定义部分;执行语句序列,函数说明,44,函数可以没有参数,但函数名之后的一对圆括号是必须的。函数体是函数头之后用一对花括号括住的部分。函数体用于描述实现函数功能的代码,它又包括:说明和定义部分 说明数据结构(类型)和定义函数专用的局部变量等。执行部分 由语句和控制结构代码组成,是实现函数功能的代码 。,函数说明(续),45,1.4 语言的词汇、数据类型、 常量和变量,一、C语言的基本符号 数字10个(09) 英文字母大、小写各26个(AZ,az) 下线字符“_” 其他构成特殊符号的字符集,46,二、C 语言的基本词汇, 字面形式常量

19、:如100、15.0、 A、“ABC“ 特殊符号:如各种运算符 关键字:见下一张幻灯片 标识符:见后面说明,47,auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while,关键字,48,下面几个虽不属于关键字,但建议把它们看作关键字,不要在程序中随便使用。它们用

20、在程序的预处理命令行中。 define undef include ifdef ifndef endif line elif,关键字(续),49,作用:用来标识变量、常量、类型、函数、语句等程序对象,语言用标识符给它们命名。 命名规则:在语言中,一个合理的标识符由英文字母或下线符开头,后接0个或任意多个字母、下线符、数字符组成的字符列。一般以下线符开头的标识符作内部使用。,标识符,50,命名要求:为了便于联想和记忆,建议使用能反映该对象意义的标识符。 注意:1.标识符长度(字符个数)随不同系统而定;2.标识符中字母大小写有区别,C语言建议用小写字母表示变量,大写字母表示符号常量名。,标识符(续

21、),51,三、数据类型,主要有基本数据类型、指针类型、构造类型等。 1. 基本数据类型 整 型:short、int、long 浮点型:float、double、long double 字符型:char,52,三、数据类型(续),2. 指针类型指针类型直接赋予数据对象在内存中的地址的概念。3. 构造类型数组、结构、联合和枚举。,53,四、常量,在程序运行过程中,其值不能被改变的量称为常量。 常量的类型有: 整型常量 如,15、0、7 浮点型常量 如,5.0、12.36 字符型常量 如,A、a 指针常量 如,NULL 字符串常量 如,”ABC”,54,四、符号常量,用宏定义给常量命名其一般形式是:

22、#define 标识符 字符列 如 #define PI 3.14159#define MAXN 100 说明:程序不允许对符号常量(或称常量标识符)赋值。,55,五、变量,在程序运行过程中,其值可以改变的量称为变量。变量在内存中占据一定的存储单元,存放变量的值。 与变量有关的概念有:变量名、变量数据类型、变量在程序中的有效范围、变量在程序执行期间的存在时间等。,56,五、变量(续),变量定义的一般形式: 类型 变量名表; 例如int i, j, sum;int index = 100, big_int = 10000;float x;double y, z,57,1.5 程序开发环境基础知识,C程序从开发到运行大致经历四个阶段: 1.编辑:程序员用系统环境提供的编辑器编辑源程序,产生一个源程序文件.c 或.cpp。 2.编译:若编译过程中发现程序有错误,则输出错误的详细信息;对正确的源程序产生机器语言程序,称为源程序的目的代码。,58,1.5 程序开发环境基础知识(续),3.连接:连接程序将目的代码和使用库函数的目的代码连接起来,产生计算机可直接执行的程序文件。 4.运行:装入内存的程序在计算机的操作系统控制下执行。,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报