第1章程序设计与软件开发基础概述.ppt

上传人:b****2 文档编号:2122631 上传时间:2022-10-27 格式:PPT 页数:46 大小:1.47MB
下载 相关 举报
第1章程序设计与软件开发基础概述.ppt_第1页
第1页 / 共46页
第1章程序设计与软件开发基础概述.ppt_第2页
第2页 / 共46页
第1章程序设计与软件开发基础概述.ppt_第3页
第3页 / 共46页
第1章程序设计与软件开发基础概述.ppt_第4页
第4页 / 共46页
第1章程序设计与软件开发基础概述.ppt_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

第1章程序设计与软件开发基础概述.ppt

《第1章程序设计与软件开发基础概述.ppt》由会员分享,可在线阅读,更多相关《第1章程序设计与软件开发基础概述.ppt(46页珍藏版)》请在冰豆网上搜索。

第1章程序设计与软件开发基础概述.ppt

第第1章章程序设计与软件开发基础概述程序设计与软件开发基础概述第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程第二节第二节算法与数据结构算法与数据结构第三节第三节C语言介绍语言介绍第四节第四节常用常用C开发工具开发工具1/46C语言程序设计语言程序设计龙昭华主编第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)2/46一、一、各种进制之间数的转换各种进制之间数的转换十进制转换成二进制十进制转换成二进制:

对于整数部分采用除2取余法,用2逐次去除十进制数,直至商为0为止。

先得到的余数为二进制的低位数,最后得到的余数为二进制的最高位的数。

十进制数转换成八进制、十六进制十进制数转换成八进制、十六进制:

方法同转换成二进制,只是将2分别改成8和16。

二进制、八进制、十六进制数转换成十进制数二进制、八进制、十六进制数转换成十进制数:

使用按权展开、逐项相加的方法。

二进制转换成八进制、十六进制二进制转换成八进制、十六进制:

因为2233=8=8、2244=16=16,所以3位二进制对应一位八进制,4位二进制对应一位十六进制。

八进制、十六进制转换成二进制八进制、十六进制转换成二进制:

上面的逆过程,将1位八进制数转成3位二进制数,将1位十六进制数转成4位二进制数即可。

例如例如:

(10001)B=1*24+1=(17)D=(21)O=(11)H(20)D=(10100)B=(24)O=(14)H(2B)H=2*16+11=(43)D=(53)O=(101011)B二、二、原码、反码、补码、原码、反码、补码、ASCIIASCII码码第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程3/46(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)原码:

原码:

在原码中规定正数符号位为0,负数符号位为1,后面的数据位则表示该数的绝对值。

如:

+15原=0000000000001111B,-15原=1000000000001111B。

反码:

反码:

在反码中规定正数的反码与原码相同;负数的反码由该负数的原码进行计算:

原码符号位不变,数据位按位取反(即0变为1,1变为0)。

如:

+15反=0000000000001111B,-15反=1111111111110000B。

补码:

补码:

正数的补码等于原码;负数的补码等于该负数的反码加1,即该数绝对值的原码按位取反加1。

如:

+15补=+15原=0000000000001111B,-15补=1111111111110001B。

ASCII码:

码:

无符号整型数据值即为ASCII码值。

标准ASCII码取值0127。

扩展ASCII码取值128255。

如:

字母AZ的ASCII码值为6590。

注意:

注意:

在计算机中,数值数据是用补码方式表示的,而字符数据是用ASCII码表示的。

三、三、编程语言编程语言第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程4/46第一代语言第一代语言又称“机器语言”,是计算机诞生和发展初期使用的语言,它是用二进制形式编码的,由CPU可以识别的0、1序列构成指令码。

第二代语言第二代语言是“汇编语言”,它开始于20世纪50年代初,是用助记符来表示每一条机器指令。

第一代语言和第二代语言都是低级语言。

第三代语言第三代语言即“高级语言”,它起源于20世纪50年代中期,与人们的自然语言和数学语言更接近,可读性强,编程方便。

它告诉计算机怎么做。

如:

BASIC,FORTRAN、COBOL、PASCAL、C等。

C语言也是中级语言,它把高级语言的基本结构和语句与低级语言的实用性结合起来。

第四代语言第四代语言称为“非过程化语言”,又称为“面向对象的语言”。

它告诉计算机做什么。

不必关心问题的解法和处理过程的细节描述,只要说明所要完成的加工和条件,指明输入数据和输出形式,就能得到要的结果,其他工作由系统来完成。

如:

C+、VisualC+、DELPHI等。

第五代语言第五代语言,堪称智能性语言。

PROLOG语言是第五代语言的代表,他广泛运用于抽象问题求解、数据逻辑、公式处理、自然语言理解、专家系统和人工智能的许多领域。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)四、四、软件工程软件工程第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程5/4622、软件工程概念、软件工程概念软件工程软件工程是采用工程的概念、原理、技术和方法来维护和开发软件,把经时间考验证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

11、软件危机的表现、软件危机的表现软件复杂性飞速增长,错误率大增落后编程方式导致软件成本极高手工开发周期长维护工作量大软件工程强调使用生命周期生命周期的方法和各种结构化分析与设计技术,用系统的观点来分解问题,然后再分别解决各个子问题。

软件生命软件生命淘汰淘汰软件运行:

维护软件运行:

维护软件开发软件开发软件实现(编程、测试)软件实现(编程、测试)软件设计(建模、算法)软件设计(建模、算法)软件定义(分析)软件定义(分析)编制有关文档(用户手册、操作手册等、报告)编制有关文档(用户手册、操作手册等、报告)系统说明书系统说明书设计说明书设计说明书程序、系统程序、系统(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)3、软件开发模型、软件开发模型第一节第一节基础知识回顾与软件工程基础知识回顾与软件工程6/46

(1)

(1)、瀑布模型:

、瀑布模型:

支持结构化软件开发。

(2)

(2)、演化模型:

、演化模型:

多次迭代逐步修正。

(3)(3)、螺旋模型:

、螺旋模型:

瀑布模型+演化模型+风险分析。

(4)(4)、喷泉模型:

、喷泉模型:

主要用于面向对象开发过程,支持复用,具有迭代和无间歇特征。

(5)(5)、增量模型:

、增量模型:

快速原型模型的一种。

系统需求系统需求运行运行测试测试需求分析需求分析软件需求软件需求设计设计编码编码(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)第二节第二节算法与数据结构算法与数据结构7/46一、一、数据结构的概念数据结构的概念程序程序:

程序实质是完成既定任务的指令序列。

而编写程序的工具是语言。

程序程序=数据结构数据结构+算法算法+程序设计方法+语言工具环境算法是灵魂,是问题求解过程中的精确描述;数据结构是加工对象;语言是工具;编程需要采用合适的方法。

数据:

数据:

是对客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素:

数据元素:

是数据的基本单位,在程序中通常作为一个整体进行考虑和处理。

一个数据元素可由若干个数据项数据项组成。

数据项是数据的不可分割的最小单位。

如一本书的书目为一个数据元素,而书目信息中的每一项(如书名、作者名等)为一个数据项。

数据对象:

数据对象:

是性质相同的数据元素的集合,是数据的一个子集。

数据结构:

数据结构:

是相互之间存在一种或多种特定关系的数据元素的集合。

结构:

结构:

数据元素相互之间的关系称为结构。

数据的逻辑结构:

数据的逻辑结构:

数据元素间的逻辑上的联系称为数据的逻辑结构。

数据结构中的元素之间的关系集合,反映的是数据的逻辑结构。

数据结构研究的内容着重于数据的逻辑结构,因此经常把逻辑结构称为数据结构。

数据的存储结构:

数据的存储结构:

数据的逻辑结构在计算机存储设备中的映像称为数据的存储结构。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)二、二、数据结构的分类数据结构的分类第二节第二节算法与数据结构算法与数据结构8/46根据数据元素之间关系的不同特性,数据结构有4类基本结构:

集合:

集合:

结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系。

线性结构:

线性结构:

结构中的数据元素之间存在一个对一个(简记为1:

1)的关系。

树形结构:

树形结构:

结构中的数据元素之间存在一个对多个(简记为1:

N)的关系。

图状图状(网状网状)结构:

结构:

结构中的数据元素之间存在多个对多个(简记为M:

N)的关系。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)逻辑结构逻辑结构线性线性存储结构存储结构非线性非线性树树图图顺序存储结构顺序存储结构链式存储结构链式存储结构数据结构数据结构索引存储结构索引存储结构散列存储结构散列存储结构最常用的抽象运算:

初始化、读取访问、插入、删除等抽象运算:

初始化、读取访问、插入、删除等三、三、算法概述算法概述第二节第二节算法与数据结构算法与数据结构9/46算法:

算法:

是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。

算法解决的是“做什么”和“怎么做”的问题,程序中的操作语句就是算法的体现。

计算机算法可分为两大类:

计算机算法可分为两大类:

数值运算算法、非数值运算算法。

数值运算算法:

数值运算算法:

数值运算的目的是求数值解,如:

求方程的根、函数的定积分等。

非数值运算算法:

非数值运算算法:

应用十分广泛,如:

图书检索、人事管理、行车调度管理、排序算法等。

常用算法:

常用算法:

递推化算法(牛顿迭代法、二分法、梯形法、穷举法等);排序算法(选择法、冒泡法);查找算法(顺序查找、折半查找);有序数列的插入、删除操作;存储区的动态分配与释放,单向线性链表的建立、查找、插入、删除操作;初等数论问题求解的有关算法(最大公约数、最小公倍数、素数等);递归算法(求最大公约数、阶乘等);字符串的处理(字符和字符串的插入、删除、字符串的连接、比较等)。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)算法具有算法具有55个特性:

个特性:

第二节第二节算法与数据结构算法与数据结构10/46有穷性:

有穷性:

对任何合法的输入值,算法中每个步骤由计算机执行的次数及时间都是有限的。

确定性:

确定性:

算法中每个步骤含义明确,无二义性。

在任何条件下,相同的输入,必有相同的输出。

可行性:

可行性:

算法中描述的操作都可通过有限次的基本运算来实现。

输入:

输入:

一个算法应具有零个或多个输入。

(无输入情况:

如求:

1*2*3*4*5)。

输出:

输出:

一个算法应具有一个或多个输入。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)算法的设计目标:

算法的设计目标:

第二节第二节算法与数据结构算法与数据结构11/46正确性:

正确性:

设计的算法应当满足具有输入、输出和加工处理等明确的无歧义性的描述的具体问题的需求。

验证正确性通常有4个层次:

程序不含语法错误;程序对于几组输入数据能够得出满足规格说明要求的结果;程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;程序对于一切合法的输入数据能够得出满足规格说明要求的结果。

一般情况至少通过第层的验证。

可读性:

可读性:

算法主要是为了阅读与交流,其次才是机器执行。

可读性好有助于人对算法的理解;难懂的程序易于隐藏较多错误,难以调试和修改。

健状性:

健状性:

当输入非法数据时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。

效率与低存储量的需求:

效率与低存储量的需求:

主要指算法执行时的最长时间与所需的最大存储空间。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)四、四、算法的表示方法算法的表示方法第二节第二节算法与数据结构算法与数据结构12/461、用自然语言表示算法:

、用自然语言表示算法:

自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。

用自然语言表示通俗易懂,但文字冗长,容易出现“歧义性”。

除了简单问题外,一般不用自然语言描述算法。

(第一章(第一章程序设计与软件开发基础概述)程序设计与软件开发基础概述)例例1.1:

用自然语言写出求的算法。

解:

解:

算法表示如下:

S1:

sign=1/*数值的符号*/S2:

sum=1/*累加和*/S3:

deno=2/*分母值*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1