(1)--ch1 程序设计基础知识1.ppt
《(1)--ch1 程序设计基础知识1.ppt》由会员分享,可在线阅读,更多相关《(1)--ch1 程序设计基础知识1.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章章 程序设计基础知识程序设计基础知识核心概念核心概念n程序与程序语言n计算机程序、计算机语言n算法与算法描述n结构化程序设计方法学习目标学习目标n了解程序、计算机语言等基本概念n了解算法的概念及其特性n掌握常用的算法描述的方法n掌握结构化程序设计方法章节内容章节内容1.1 程序与程序语言 1.2 算法和算法描述 1.3 结构化程序设计方法 1.1 程序与程序语言程序与程序语言 1.1.1计算机程序计算机程序 现在的计算机都是基于冯诺依曼结构设计的,它们是由运算器、控制器、存储器、输入设备、输出设备等5部分构成,如图1-1所示。计算机硬件是由存储在存储器中的程序控制下自动运行的,将数据输
2、入到计算机,按照程序的指令序列处理数据,并把结果输出到输出设备。在计算机中,硬件是躯体,程序是灵魂,计算机的一切操作都是由程序控制的,离开了程序,计算机硬件什么功能都完成不了。内存(程序和数据)控制器运算器输入设备,如键盘输出设备,如显示器图1-1 计算机组成1.1 程序与程序语言程序与程序语言1.1.2计算机语言计算机语言 按照解决问题的需要,选择恰当的指令构成一组指令序列的过程就是编写程序。从语言的角度来看,使用一种语言,告诉计算机如何输入数据?如何处理数据?如何输出?这种功能受限制的语言就称为计算机语言。程序设计语言的发展总体上经历了从低级语言到高级语言的过程。其中,低级语言包括机器语言
3、、汇编语言等,高级语言包括Fortran、Basic、Pascal、Java、C和C+等。1.1.2计算机语言计算机语言1机器语言机器语言 机器语言是指一台计算机硬件的全部指令集合。指令是设计计算机系统时确定的1和0的序列,不同的1和0的序列就构成了特定计算机的指令集,计算机只能识别和执行这些二进制指令,所以称为机器指令。在计算机应用的早期,只能使用由0和1构成的指令来编写程序,但这些指令与人们习惯的语言差别太大,难学、难记、难写,只能由专家才能编写程序。程序难检查、难修改,这样大大限制了程序的开发和应用。另外,不同类型计算机系统的指令集往往各不相同,所以,在一台计算机上编写的机器语言程序要想
4、在另一台计算机上执行,必须修改程序,造成重复工作,这称为机器语言的可移植性比较差。1.1.2计算机语言计算机语言2汇编语言汇编语言 汇编语言也称为符号语言,它是用助记符来代替指令和地址,即用英文单词的简写和数字来简化二进制机器指令,比如MOV代表数据传递操作、MUL代表乘法运算等等。这样比较容易记住指令和编写程序,也容易读懂并理解程序在干什么,便于纠错及维护,提高了编程的效率。由助记符或者符号表示的指令集称为汇编语言。用汇编语言编写的程序是由符号构成,计算机不能识别更不能执行这些指令,必须通过汇编程序把由符号组成的程序转换成机器语言的指令序列,这个转化的过程就是汇编。助记符表示的指令和机器指令
5、基本上是一一对应的,汇编语言也是面向特定的计算机系统,所以称机器语言和汇编语言是低级语言,它们的可移植性都比较差,但用它们编写出来的程序效率高,很多操作系统、驱动程序和一些系统程序都是用汇编语言开发的。1.1.2计算机语言计算机语言3高级语言高级语言(1)高级语言的出现 人们习惯使用自然语言,使用面向机器的低级语言增加了程序设计和开发的难度。随着计算机科学与技术的发展,1954年,第一个完全脱离机器硬件的高级语言FORTRAN问世了,这种语言接近于数学语言和自然语言,程序中所用的语句和指令是用英文单词表示的,计算表达式的操作数及运算符和数学公式近似,非常容易理解,从而可以很方便地控制数据的输入
6、、处理和输出,语言的功能很强。由于这种语言不依赖于具体的计算机系统,编写的程序具有很强的可移植性,故称为高级语言。高级语言编写的程序称为源程序,计算机也不能识别,可以通过编译把源程序等价转换为机器语言表达的目标程序,才能执行;或者源程序通过解释,逐步执行1.1.2计算机语言计算机语言(2)程序设计语言的发展史)程序设计语言的发展史 高级语言的发展经历了从早期非结构化到结构化程序设计语言,从面向过程到面向对象程序语言的过程。相应地,程序或软件的开发也由最初的充满设计技巧的个人设计到小团队设计,最后发展为全球化协同程序开发的开放式软件工业生产的过程。1.2 算法和算法描述算法和算法描述用计算机求解
7、实际问题一般分为三个基本步骤用计算机求解实际问题一般分为三个基本步骤:n从实际问题中抽象出数学模型n设计解决该数学模型的算法n1984年的图灵奖获得者瑞士学者和计算机科学家尼克劳斯沃思(Niklaus Wirth)提出著名公式“数据结构+算法=程序”。n用计算机语言开发出对应的程序,运行该程序解决问题。1.2 算法和算法描述算法和算法描述程序设计必须掌握的内容:程序设计必须掌握的内容:n数据结构,程序中要处理和保存数据的描述,即指定数据的类型和数据的组织形式。n算法,对有限操作步骤的确定性描述。n程序设计方法,比如尼克劳斯沃思提出的结构化程序设计方法。n程序设计语言和程序开发平台,用集成的程序
8、语言开发工具编写、编辑、编译、调试程序,程序中的操作语句就是对算法的实现。1.2 算法和算法描述算法和算法描述1.2.1算法的概念算法的概念 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的指令。从另外一个层面来看,算法是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的、有限长的操作序列。广义上讲,为解决一个问题而采取的方法和步骤,都称为算法。计算机算法分为数值算法和非数值算法两种。1.2 算法和算法描述算法和算法描述一个计算机算法应当具有以下5个基本特性:n有穷性。一个算法应包含有限个操作步骤。n确定性。算法中的每一个步骤都应当是明确的、无二义性,
9、而不应当是含糊的、模棱两可的。n可行性。算法的每一步都是能够实现的、可操作的,并得到确定的结果。也常称为算法的有效性。n输入。一个算法一般有零个或多个数据输入。n输出。一个算法一般有一个或多个输出。算法的目的就是为了求问题的“解”,这些解只有通过输出才能得到。1.2 算法和算法描述算法和算法描述1.2.2算法设计的要求算法设计的要求一个算法的设计需要注意以下四个方面。n正确性:算法的正确性包含四个层次,即算法不含语法错误、算法对于几组输入数据能够得出满足要求的结果、算法对于精心选择的典型及苛刻而带有刁难性的几组输入数据能够得出满足要求的结果、算法对于一切合法的输入数据都能产生满足要求的结果。n
10、可读性:算法主要是用于人的阅读与交流,可读性好有助于人们对算法的理解与掌握。n健壮性:当输入数据非法时,算法应适当地做出反应或进行处理,而不会产生错误的输出结果。n高效率和低存储量1.2 算法和算法描述算法和算法描述1.2.3算法的描述算法的描述一个算法可以用自然语言、计算机语言、数学语言、流程图、PAD图等来描述,或者用介于自然语言和计算机语言之间的伪代码来描述。对这些算法描述方法的唯一要求是必须精确地描述计算过程或步骤。好的描述方法使算法表达更加清晰和简洁。本书仅仅介绍几种常用的描述方法。1.用自然语言描述算法用自然语言描述算法自然语言就是人们日常生活、工作中使用的语言,可以是汉语、英语或
11、其它语言。1.2.3算法的描述算法的描述例例1.1求n的阶乘。如果n=6,即求123456连乘的积。设s代表连乘之积,t代表乘数,以自然语言描述求n的阶乘的算法:步骤1:使s=1,t=1;步骤2:让st,得到的乘积仍放在s中;步骤3:使t的值增加1;步骤4:如果tn那么转到步骤2继续执行;如果tn那么转到步骤5;步骤5:连乘结束,s中的值就是n的阶乘,输出s。用自然语言描述算法通俗易懂,但自然语言描述风格自由,比较适合描述简单问题的求解算法。如果问题复杂,描述会比较繁杂、冗长,并且也很难清楚地表达复杂逻辑的算法,比如判断和循环,容易出现“歧义性”,往往需要根据上下文判断语句的含义,这样算法很难
12、进行准确地设计、交流和使用。1.2.3算法的描述算法的描述2.用计算机语言描述算法用计算机语言描述算法 计算机高级程序设计语言具有很强的描述能力,接近计算机高级程序设计语言具有很强的描述能力,接近于自然语言和数学语言。但是用计算机语言描述的算于自然语言和数学语言。但是用计算机语言描述的算法实际上就是对算法的实现,通过编译或解释后直接法实际上就是对算法的实现,通过编译或解释后直接可以执行,这是算法设计的终极目的,这样违反了算可以执行,这是算法设计的终极目的,这样违反了算法描述方法所需要的简单、直观、抽象级别高的要求,法描述方法所需要的简单、直观、抽象级别高的要求,所以在算法设计过程中用计算机语言
13、描述算法是不合所以在算法设计过程中用计算机语言描述算法是不合适的。适的。3.用流程图描述算法用流程图描述算法 流程图是用一些几何图形、带方向的线条以及问题说流程图是用一些几何图形、带方向的线条以及问题说明来描述算法操作步骤的方法。该方法形象、简明直明来描述算法操作步骤的方法。该方法形象、简明直观、易于理解、便于交流,是描述算法的主要方法之观、易于理解、便于交流,是描述算法的主要方法之一。流程图分为传统的流程图、结构化流程图、一。流程图分为传统的流程图、结构化流程图、N-S流程图等多种。流程图等多种。1.2 算法和算法描述算法和算法描述n(1)传统流程图)传统流程图n传统流程图又称程序框图,美国
14、国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号,如图1-2所示,这种符号目前已经被大多数国家接受和使用。起止框 输入/输出框 判断框处理框 流程线 连接符 注释框图1-2流程图常用符号1.2.3算法的描述算法的描述例例1.2判断某数判断某数m(大于等于(大于等于3的正整数)是否为素数的的正整数)是否为素数的算法。算法。素数是一个自然数,它除了素数是一个自然数,它除了1和本身之外,不能被任何其和本身之外,不能被任何其它整数整除的数。判断一个数它整数整除的数。判断一个数m是否为素数的方法很简单,是否为素数的方法很简单,如
15、果如果m不能为不能为2至至m-1的所有整数的所有整数i整除则为素数,如果被整除则为素数,如果被其中任何一个数整除则不是素数。判断其中任何一个数整除则不是素数。判断m为素数的流程图为素数的流程图如图如图1-4所示。所示。1.2.3算法的描述算法的描述开始2ir为零?输入mmi的余数r输出m为素数结束成立不成立i+1iim成立不成立输出m不是素数图图1-41.2.3算法的描述算法的描述(2)结构化流程图)结构化流程图 传统流程图用流程线指出各框操作的先后执行顺序,它对流程线没有严格的限制,如图1-4所示。如果问题复杂,流程随意转向,流程线可能会非常密集、交叉较多,从而使人们在阅读算法时需要花费许多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1-ch1 程序设计基础知识1 ch1 程序设计 基础知识
限制150内