程序设计基础整.ppt
《程序设计基础整.ppt》由会员分享,可在线阅读,更多相关《程序设计基础整.ppt(81页珍藏版)》请在三一办公上搜索。
1、2023/11/4,程序设计-2005秋,1,第一讲程序设计基础,周水庚计算机科学与工程系2005年9月7日,2023/11/4,程序设计-2005秋,2,提要,程序设计基本概念结构化程序设计C语言基础知识高级语言程序开发环境基本知识小结,2023/11/4,程序设计-2005秋,3,提要,程序设计基本概念结构化程序设计C语言基础知识高级语言程序开发环境基本知识小结,2023/11/4,程序设计-2005秋,4,什么是程序?,程序(Program)就是供计算机执行后,能完成特定功能的指令序列(Instructions sequence)程序=计算机指令序列程序包含两方面的内容数据对象(Obje
2、cts)及数据对象之间关系数据结构(Data structure)对这些对象的处理过程算法(Algorithm),2023/11/4,程序设计-2005秋,5,程序数据结构算法,程序 数据结构 算法Program Data Structure Algorithm,这个公式由Niklaus Wirth首先提出。Niklaus Wirth 是PASCAL之父和结构化程序 设计的首创者,1984图灵奖获得者。,2023/11/4,程序设计-2005秋,6,数据结构,数据结构由某一数据对象及该对象中所有数据成员之间的关系组成。记为:Data_Structure=D,R其中,D是数据对象,R是该对象中所
3、有数据成员之间的关系的有限集合,2023/11/4,程序设计-2005秋,7,数据结构(续),程序的处理对象是描述客观事物的数据由于客观事物的多样性,会有不同形式的数据整数、实数、字符,以及所有计算机能够接收和处理的各种各样符号集合在程序中,形式不同的数据采用数据类型来标识变量的数据类型说明变量可能取的值的集合、施于变量的操作的集合,2023/11/4,程序设计-2005秋,8,数据结构(续),数据类型一组形式相同的数据集,对这组数据可施行的一组操作集对数据结构的总括数据结构是指数据对象及其相互关系和构造方法程序的数据结构描述了程序中的数据间的组织形式和结构关系,2023/11/4,程序设计-
4、2005秋,9,算法,算法即问题的求解方法算法由一系列求解步骤组成。算法的描述由经明确说明的一组简单指令和规则组成,计算机按规则执行其中的指令能在有限的步骤内解决一个问题或者完成一个函数的计算算法要求组成算法的规则和步骤的意义应是唯一确定的,是没有二义性的,2023/11/4,程序设计-2005秋,10,算法(续),算法中的操作是有序的,必须按算法指定的操作顺序执行,能在有限步骤后给出问题的结果求解同一问题可能有多种算法,选择算法主要考虑正确性可靠性简单性易理解性执行效率空间(内存和磁盘)代价等,2023/11/4,程序设计-2005秋,11,算法(续),描述算法的常用工具有流程图(又称框图)
5、流程图是算法的图形描述,流程图往往比程序更直观清晰,容易阅读和理解,它不仅可以作为编写程序的依据,也是交流算法思想的重要工具在逐步求精的结构化程序设计方法中,目前多数采用结构化的伪代码(pseudo code)来描述算法,2023/11/4,程序设计-2005秋,12,数据结构vs.算法,明确了问题的算法,才能较好设计数据结构要选择好算法,又常常依赖于合理的数据结构程序是和数据结构不可分割的。程序在描述算法同时,也必须完整地描述作为算法的操作对象的数据结构。对于一些复杂的问题,常有因数据的表示方式和结构的差异,问题的抽象求解算法也会完全不同,2023/11/4,程序设计-2005秋,13,程序
6、的性质,目的性程序有明确的目的,程序运行时能完成赋予它的功能分步性程序为完成其复杂的功能,由一系列计算机可执行的步骤组成有序性程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序有限性程序是有限的指令序列,程序所包含的步骤是有限的操作性有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能,2023/11/4,程序设计-2005秋,14,什么是程序设计?,程序设计(Program design):设计和编制程序的过程设计程序:数据结构设计和算法设计编制程序:把设计转化为某种程序语言的代码程序设计需要程序设计方法 软件工程(Software Engineering)方法学结构化设计方法、
7、面向对象方法程序设计语言 程序语言学Basic,Pascal,C,C+,Java,C#,2023/11/4,程序设计-2005秋,15,什么是好的程序?,高效(Efficient)可靠(Reliable)易读(Easy to read)可维护(Maintainable)可重用(Re-usable)可移植(Portable),2023/11/4,程序设计-2005秋,16,什么是程序设计语言?,程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言人机语言(human-machine language)程序设计语言分三类机器语言(Machine language)汇编语言(Assembl
8、y language)高级语言(High-level language),2023/11/4,程序设计-2005秋,17,程序设计语言,High-level language,Machine language,Assembly language,2023/11/4,程序设计-2005秋,18,机器语言,机器语言:计算机的指令系统计算机都只能直接执行由其自身机器语言编写的程序机器语言与计算机的硬件密切相关机器语言中的计算机指令通常用一个二进制形式的代码,由若干位1和0组成一条计算机指令指示计算机一次完成一个最基本的操作,2023/11/4,程序设计-2005秋,19,汇编语言,汇编语言:用类英语
9、单词缩写的符号指令代替机器语言的二进制代码指令用汇编语言编写的程序在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序。称完成这个转换功能的程序为“汇编程序“(assembler),2023/11/4,程序设计-2005秋,20,高级程序,最接近自然语言的程序设计语言主要由语句(statements)构成,语句是要计算机完成任务的命令有统一的语法,独立于具体机器,便于人们编码,阅读和理解用高级语言编写的程序(源程序)在计算机上执行,先要由编译器(也称为编译程序)将源程序转换成机器语言程序既能方便地描述客观对象,又能借助于编译器为计算机所接受的语言,2023/11/4,程序设计-200
10、5秋,21,机器语言/汇编语言/高级语言,机器语言,计算机,汇编程序,解释器,编译器,高级语言,汇编语言,Assembler,Interpreter,Compiler,2023/11/4,程序设计-2005秋,22,高级语言分类,目前的高级语言可分三类面向过程的语言(Procedural language)面向问题的语言(Declarative language)描述语言面向对象的语言(Object-oriented language),2023/11/4,程序设计-2005秋,23,面向过程的语言,早期最流行最常用的程序设计语言为面向过程型的语言Cobol,Fortran,Basic,C,可
11、独立于计算机编写程序,但编写程序时,程序不仅要说明做什么(what),更重要的是非常详细地告诉计算机如何做(how),程序需要详细描述解题的过程和细节,2023/11/4,程序设计-2005秋,24,面向问题的语言,不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果数据库查询和操纵语言:SQL(Structured Query Language)语言逻辑语言专家系统语言:Prolog,Lisp等,2023/11/4,程序设计-2005秋,25,面向对象的语言,目的是克服面向过程语言过分强调求解过程细节,程序不易复用的缺点引入了对象、消息、类、继承、
12、封装、抽象、多态性等机制和概念用面向对象语言进行程序设计时,以问题中的对象为基础,将具有类似性质的对象抽象成类,利用继承机制,对差异进行程序设计是目前的主流编程语言:C+,Java,2023/11/4,程序设计-2005秋,26,程序设计语言分类,与自然语言亲密关系机器语言、汇编语言、高级语言描述/求解问题方式面向过程语言:Basic,Pascal,C面向问题语言:SQL,Lisp,Prolog面向对象语言:C+,Java程序设计风格结构化语言Pascal,C,C+,Java非结构化语言Cobol,Fortran,Basic,2023/11/4,程序设计-2005秋,27,提要,程序设计基本概
13、念结构化程序设计语言基础知识高级语言程序开发环境基本知识小结,2023/11/4,程序设计-2005秋,28,结构化程序设计方法,程序结构自顶向下模块化设计方法模块算法的逐步求精(stepwise refinement)设计方法用结构化控制结构描述算法和编写程序,2023/11/4,程序设计-2005秋,29,自顶向下模块化设计方法,限制程序复杂性是程序设计核心程序结构自顶向下模块化设计方法就是把大程序按功能划分成一些较小的部分,每个完成独立功能分解模块的原则是简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护,2023/11/4,程序设计
14、-2005秋,30,自顶向下模块化设计方法(续),在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质:模块具有单一入口和单一出口模块不宜过大,模块功能单一模块的执行不对环境产生副作用让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无关尽量用模块的名字调用模块,2023/11/4,程序设计-2005秋,31,模块算法逐步求精设计方法,程序设计的基本方法是抽象、枚举、归纳抽象包括算法抽象和数据抽象算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作,2023/11/4,程序设计-20
15、05秋,32,逐步求精设计方法(续),算法设计采用逐步求精设计方法,先设计出一个抽象算法,这是一个在抽象数据上实施一系列抽象操作的算法,由粗略的控制结构和抽象的计算步骤组成。抽象操作只指明“做什么”,对这些抽象操作的细化就是想方设法回答它“如何做”采用逐步求精的方法,由粗到细,将抽象步骤进一步分解成若干子任务。分而治之,对仍不具体的抽象子任务再进行分解。如此反复地一步步细化,算法越来越具体,抽象成分越来越少,直至可以编程为止,2023/11/4,程序设计-2005秋,33,程序的基本结构单元,顺序结构条件选择结构If c Then op1 Else op2 循环结构Do While 循环结构W
16、hile循环结构For 循环结构任何可计算问题,可用上述三种结构编程解决,2023/11/4,程序设计-2005秋,34,顺序结构,把复杂的计算工作分解成一系列逐条执行的操作序列顺序结构就是为把一个复杂的计算用若干简单计算的顺序执行提供控制手段。顺序结构执行时,从序列的第一个操作开始,顺序执行序列中的操作,直至序列的最后一个操作执行后结束,2023/11/4,程序设计-2005秋,35,顺序结构实例,实例:交换变量x和y的值可分解为顺序执行的三个操作步骤:,temp=x;/*将x的值暂存于temp*/x=y;/*将x置成y的值*/y=temp;/*将y置成temp的值*/,2023/11/4,
17、程序设计-2005秋,36,条件选择结构,条件选择结构有一个判断条件和两个供选择分支操作组成一般形式:,if(判断条件)分支操作1;else 分支操作2;,2023/11/4,程序设计-2005秋,37,条件选择结构执行过程,先计算判断条件,如判断条件的值为真,即条件成立,则执行分支操作1 否则,若判断条件的值为假,即条件不成立,则执行分支操作2 注意,无论判断条件为何值,条件选择结构只执行分支操作1或分支操作2之一条件选择结构中的分支又可以是任何控制结构,当分支操作又是条件选择结构时,就呈现嵌套(nested)的条件选择结构,2023/11/4,程序设计-2005秋,38,实例,int ma
18、x(int x,int y)/*定义max函数,函数值为整型,形式参数x,y为整型*/int z;/*max函数中的声明部分,定义本函数中用到的变量z为整型*/if(xy)z=x;else z=y;return(z);,2023/11/4,程序设计-2005秋,39,循环结构,循环结构为描述循环操作提供控制手段在C中,循环结构有以下三种:while 循环结构do-while 循环结构for 循环结构,2023/11/4,程序设计-2005秋,40,while 循环结构,由一个循环条件和一个循环操作语句(称为循环体)组成 一般形式:,while(循环条件)循环体,2023/11/4,程序设计-2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础

链接地址:https://www.31ppt.com/p-6482014.html