第一讲程序设计基础整理知识课件

上传人:yuzo****123 文档编号:137890341 上传时间:2020-07-12 格式:PPT 页数:81 大小:311KB
返回 下载 相关 举报
第一讲程序设计基础整理知识课件_第1页
第1页 / 共81页
第一讲程序设计基础整理知识课件_第2页
第2页 / 共81页
第一讲程序设计基础整理知识课件_第3页
第3页 / 共81页
第一讲程序设计基础整理知识课件_第4页
第4页 / 共81页
第一讲程序设计基础整理知识课件_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《第一讲程序设计基础整理知识课件》由会员分享,可在线阅读,更多相关《第一讲程序设计基础整理知识课件(81页珍藏版)》请在金锄头文库上搜索。

1、2020/7/12,程序设计-2005秋,1,第一讲程序设计基础,周水庚 计算机科学与工程系 2005年9月7日,2020/7/12,程序设计-2005秋,2,提要,程序设计基本概念 结构化程序设计 C语言基础知识 高级语言程序开发环境基本知识 小结,2020/7/12,程序设计-2005秋,3,提要,程序设计基本概念 结构化程序设计 C语言基础知识 高级语言程序开发环境基本知识 小结,2020/7/12,程序设计-2005秋,4,什么是程序?,程序(Program)就是供计算机执行后,能完成特定功能的指令序列(Instructions sequence) 程序=计算机指令序列 程序包含两方面

2、的内容 数据对象(Objects)及数据对象之间关系 数据结构(Data structure) 对这些对象的处理过程 算法(Algorithm),2020/7/12,程序设计-2005秋,6,数据结构,数据结构由某一数据对象及该对象中所有数据成员之间的关系组成。记为:Data_Structure = D, R 其中,D是数据对象,R是该对象中所有数据成员之间的关系的有限集合,2020/7/12,程序设计-2005秋,7,数据结构(续),程序的处理对象是描述客观事物的数据 由于客观事物的多样性,会有不同形式的数据 整数、实数、字符,以及所有计算机能够接收和处理的各种各样符号集合 在程序中,形式不

3、同的数据采用数据类型来标识 变量的数据类型说明变量可能取的值的集合、施于变量的操作的集合,2020/7/12,程序设计-2005秋,8,数据结构(续),数据类型 一组形式相同的数据集,对这组数据可施行的一组操作集 对数据结构的总括 数据结构是指数据对象及其相互关系和构造方法 程序的数据结构描述了程序中的数据间的组织形式和结构关系,2020/7/12,程序设计-2005秋,9,算法,算法即问题的求解方法 算法由一系列求解步骤组成。算法的描述由经明确说明的一组简单指令和规则组成,计算机按规则执行其中的指令能在有限的步骤内解决一个问题或者完成一个函数的计算 算法要求组成算法的规则和步骤的意义应是唯一

4、确定的,是没有二义性的,2020/7/12,程序设计-2005秋,10,算法(续),算法中的操作是有序的,必须按算法指定的操作顺序执行,能在有限步骤后给出问题的结果 求解同一问题可能有多种算法,选择算法主要考虑 正确性 可靠性 简单性 易理解性 执行效率 空间(内存和磁盘)代价等,2020/7/12,程序设计-2005秋,11,算法(续),描述算法的常用工具有流程图(又称框图) 流程图是算法的图形描述,流程图往往比程序更直观清晰,容易阅读和理解,它不仅可以作为编写程序的依据,也是交流算法思想的重要工具 在逐步求精的结构化程序设计方法中,目前多数采用结构化的伪代码 (pseudo code)来描

5、述算法,2020/7/12,程序设计-2005秋,12,数据结构vs.算法,明确了问题的算法,才能较好设计数据结构 要选择好算法,又常常依赖于合理的数据结构 程序是和数据结构不可分割的。程序在描述算法同时,也必须完整地描述作为算法的操作对象的数据结构。对于一些复杂的问题,常有因数据的表示方式和结构的差异,问题的抽象求解算法也会完全不同,2020/7/12,程序设计-2005秋,13,程序的性质,目的性 程序有明确的目的,程序运行时能完成赋予它的功能 分步性 程序为完成其复杂的功能,由一系列计算机可执行的步骤组成 有序性 程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序 有限性 程序是有限

6、的指令序列,程序所包含的步骤是有限的 操作性 有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能,2020/7/12,程序设计-2005秋,14,什么是程序设计?,程序设计(Program design ) :设计和编制程序的过程 设计程序:数据结构设计和算法设计 编制程序:把设计转化为某种程序语言的代码 程序设计需要 程序设计方法 软件工程(Software Engineering)方法学 结构化设计方法、面向对象方法 程序设计语言 程序语言学 Basic, Pascal, C, C+, Java, C#,2020/7/12,程序设计-2005秋,15,什么是好的程序?,高效(Ef

7、ficient) 可靠(Reliable) 易读(Easy to read) 可维护(Maintainable) 可重用(Re-usable) 可移植(Portable) ,2020/7/12,程序设计-2005秋,16,什么是程序设计语言?,程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言 人机语言(human-machine language) 程序设计语言分三类 机器语言(Machine language) 汇编语言(Assembly language) 高级语言(High-level language),2020/7/12,程序设计-2005秋,17,程序设计语言,Hig

8、h-level language,Machine language,Assembly language,2020/7/12,程序设计-2005秋,18,机器语言,机器语言:计算机的指令系统 计算机都只能直接执行由其自身机器语言编写的程序 机器语言与计算机的硬件密切相关 机器语言中的计算机指令通常用一个二进制形式的代码,由若干位1和0组成 一条计算机指令指示计算机一次完成一个最基本的操作,2020/7/12,程序设计-2005秋,19,汇编语言,汇编语言:用类英语单词缩写的符号指令代替机器语言的二进制代码指令 用汇编语言编写的程序在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序。称

9、完成这个转换功能的程序为“汇编程序“(assembler),2020/7/12,程序设计-2005秋,20,高级程序,最接近自然语言的程序设计语言 主要由语句(statements)构成,语句是要计算机完成任务的命令 有统一的语法,独立于具体机器,便于人们编码,阅读和理解 用高级语言编写的程序(源程序)在计算机上执行,先要由编译器(也称为编译程序)将源程序转换成机器语言程序 既能方便地描述客观对象,又能借助于编译器为计算机所接受的语言,2020/7/12,程序设计-2005秋,21,机器语言/汇编语言/高级语言,机器语言,计算机,汇编程序,解释器,编译器,高级语言,汇编语言,Assembler

10、,Interpreter,Compiler,2020/7/12,程序设计-2005秋,22,高级语言分类,目前的高级语言可分三类 面向过程的语言(Procedural language) 面向问题的语言(Declarative language) 描述语言 面向对象的语言(Object-oriented language),2020/7/12,程序设计-2005秋,23,面向过程的语言,早期最流行最常用的程序设计语言为面向过程型的语言 Cobol, Fortran, Basic, C, 可独立于计算机编写程序,但编写程序时,程序不仅要说明做什么(what),更重要的是非常详细地告诉计算机如何做

11、(how),程序需要详细描述解题的过程和细节,2020/7/12,程序设计-2005秋,24,面向问题的语言,不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果 数据库查询和操纵语言:SQL( Structured Query Language)语言 逻辑语言专家系统语言:Prolog, Lisp等,2020/7/12,程序设计-2005秋,25,面向对象的语言,目的是克服面向过程语言过分强调求解过程细节,程序不易复用的缺点 引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念 用面向对象语言进行程序设计时,以问题中的对象为基础,将具有类似性

12、质的对象抽象成类,利用继承机制,对差异进行程序设计 是目前的主流编程语言:C+, Java,2020/7/12,程序设计-2005秋,26,程序设计语言分类,与自然语言亲密关系 机器语言、汇编语言、高级语言 描述/求解问题方式 面向过程语言:Basic, Pascal, C 面向问题语言:SQL, Lisp, Prolog 面向对象语言: C+, Java 程序设计风格 结构化语言 Pascal, C, C+, Java 非结构化语言 Cobol, Fortran, Basic,2020/7/12,程序设计-2005秋,27,提要,程序设计基本概念 结构化程序设计 语言基础知识 高级语言程序开

13、发环境基本知识 小结,2020/7/12,程序设计-2005秋,28,结构化程序设计方法,程序结构自顶向下模块化设计方法 模块算法的逐步求精(stepwise refinement)设计方法 用结构化控制结构描述算法和编写程序,2020/7/12,程序设计-2005秋,29,自顶向下模块化设计方法,限制程序复杂性是程序设计核心 程序结构自顶向下模块化设计方法就是把大程序按功能划分成一些较小的部分,每个完成独立功能 分解模块的原则是简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护,2020/7/12,程序设计-2005秋,30,自顶向下模块

14、化设计方法(续),在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质: 模块具有单一入口和单一出口 模块不宜过大,模块功能单一 模块的执行不对环境产生副作用 让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无关 尽量用模块的名字调用模块,2020/7/12,程序设计-2005秋,31,模块算法逐步求精设计方法,程序设计的基本方法是 抽象、枚举、归纳 抽象包括算法抽象和数据抽象 算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法 数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作,2020/7/12,程序设计-2005秋,32,

15、逐步求精设计方法(续),算法设计采用逐步求精设计方法,先设计出一个抽象算法,这是一个在抽象数据上实施一系列抽象操作的算法,由粗略的控制结构和抽象的计算步骤组成。 抽象操作只指明“做什么”,对这些抽象操作的细化就是想方设法回答它“如何做” 采用逐步求精的方法,由粗到细,将抽象步骤进一步分解成若干子任务。分而治之,对仍不具体的抽象子任务再进行分解。如此反复地一步步细化,算法越来越具体,抽象成分越来越少,直至可以编程为止,2020/7/12,程序设计-2005秋,33,程序的基本结构单元,顺序结构 条件选择结构 If c Then op1 Else op2 循环结构 Do While 循环结构 Wh

16、ile循环结构 For 循环结构 任何可计算问题,可用上述三种结构编程解决,2020/7/12,程序设计-2005秋,34,顺序结构,把复杂的计算工作分解成一系列逐条执行的操作序列 顺序结构就是为把一个复杂的计算用若干简单计算的顺序执行提供控制手段。顺序结构执行时,从序列的第一个操作开始,顺序执行序列中的操作,直至序列的最后一个操作执行后结束,2020/7/12,程序设计-2005秋,35,顺序结构实例,实例:交换变量x和y的值 可分解为顺序执行的三个操作步骤:, temp=x;/*将x的值暂存于temp */ x = y; /* 将x置成y的值 */ y=temp;/*将y置成temp的值 */ ,2020/7/12,程序设计-2005秋,36,条件选择结构,条件选择结构有一个判断条件和两个供选择分支操作组成 一般形式:,if (判断条件) 分支操作1; else 分支操作2;,2020/7/12,程序设计-2005秋,37,条件选择结构执行过程,先计算判断条件,如判断条件的值为真,即条件成立,则执行分支操作1 否则,若判断条件的值为假,即条件不成立,则执

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号