新编大学计算机基础教程(第三版)-教学课件-作者-贾宗福-齐景嘉-周-屹-陆璐-赵杰--第12章.pptx
《新编大学计算机基础教程(第三版)-教学课件-作者-贾宗福-齐景嘉-周-屹-陆璐-赵杰--第12章.pptx》由会员分享,可在线阅读,更多相关《新编大学计算机基础教程(第三版)-教学课件-作者-贾宗福-齐景嘉-周-屹-陆璐-赵杰--第12章.pptx(86页珍藏版)》请在沃文网上搜索。
1、第第1212章章 软件技术基础软件技术基础新编大学计算机基础教程1本章节目录本章节目录12.1程序设计概述12.2算法12.3数据结构12.4程序设计方法12.5软件工程212.1 12.1 程序设计概述程序设计概述12.1.1程序设计语言的分类12.1.2程序设计语言的选择12.1.3程序设计的基本过程12.1.4程序设计风格312.1.1 12.1.1 程序设计语言的分类程序设计语言的分类1机器语言2汇编语言3高级语言44GL语言4高级语言高级语言分类分类命令式语言。语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。函数式语言。语义基础是基于
2、数学函数概念的值映射的算子可计算模型,是一种非冯诺伊曼式的程序设计语言,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象,非常适合于进行人工智能等工作的计算。典型的函数式语言如Lisp、Haskell、ML、Scheme、F#等。5常用程序设计语言常用程序设计语言(2)常用程序设计语言C语言C+语言C#语言Java语言.Net简介612.1.2 12.1.2 程序设计语言的选择程序设计语言的选择应用领域算法和计算复杂性数据结构的复杂性软件开发方法及运行环境用户需求中关于性能方面的需要软件开发人员的知识水平和心理因素712.1.3 12.1.3 程序设计的基本过程程序设计的基
3、本过程分析要解决的问题,找出运算和变化规律,建立数学模型,明确要实现的功能。选择适合计算机解决问题的最佳方案。依据解决问题的方案确定数据结构和算法。选择合适的程序设计语言编写程序。调试运行程序,达到预期目标。对解决问题整个过程的有关资料进行整理,编写程序使用说明书。812.1.4 12.1.4 程序设计风格程序设计风格1源程序文档化标识符的命名。程序注释。视觉组织。2数据说明数据说明的次序规范化。说明语句中变量安排有序化。使用注释,说明复杂数据的结构。3语句的结构4输入和输出5.追求效率原则912.2 12.2 算法算法12.2.1算法的概念12.2.2算法的特征12.2.3算法的表示12.2
4、.4算法设计的基本方法12.2.5算法评价1012.2.1 12.2.1 算法的算法的概念概念在计算机科学中,算法是描述计算机解决给定问题的有明确意义操作步骤的有限集合。计算机算法一般可分为数值计算算法和非数值计算算法。数值计算算法就是对所给的问题求数值解,如求函数的极限、求方程的根等;非数值计算算法主要是指对数据的处理,如对数据的排序、分类、查找及文字处理、图形图像处理等。1112.2.2 12.2.2 算法的特征算法的特征可行性:算法中描述的操作必须是可执行的,通过有限次基本操作可以实现。确定性:算法的每一步操作,必须有确切的含义,不能有二义性和多义性。有穷性:一个算法必须保证执行有限步骤
5、之后结束。输入:一个算法有零个或多个输入,以描述运算对象的初始情况。输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。1212.2.3 12.2.3 算法的算法的表示表示1自然语言【例12-2】用自然语言描述交换两个变量值的算法。设有变量m、n和中间变量t。解决问题的算法如下:输入两个值到变量m和变量n中。将变量m的值赋给中间变量t。将变量n的值赋给变量m。将中间变量t的值赋给变量n。13 2 2传统传统流程图流程图起止框:表示流程开始或结束。输入/输出框:表示输入或输出。处理框:表示对基本处理功能的描述。判断框:根据条件是否满足,在几个可以选择的路径中,选择某一路径。流向线、:表
6、示流程的路径和方向。连接点:用于将画在不同地方的流程线连接起来。14【例12-4】用传统流程图描述sum135+99的算法153 3N-SN-S图图【例12-5】用N-S图描述sum135+99的算法,如图12-3所示。16sum0n1当n100时sumsum+nnn+2输出sum的值4 4伪代码伪代码【例12-6】用伪代码描述sum135+99的算法。BEGINsum=0n=1FORn=1TO100STEP2sum=sum+nENDFORPRINTsumEND175 5计算机语言计算机语言 【例12-7】用C语言描述sum135+99的算法。#includevoidmain()intn,su
7、m;sum=0;n=1;dosum=sum+n;n+=2;while(n=100);printf(sum=%dn,sum);1812.2.4 12.2.4 算法设计的基本方法算法设计的基本方法1列举法2归纳法3递推法4递归法5回溯法1912.2.5 12.2.5 算法评价算法评价1正确性2健壮性3可读性4时间复杂度5空间复杂度2012.3 12.3 数据结构数据结构12.3.1数据结构的基本概念12.3.2线性结构与非线性结构12.3.3线性表12.3.4栈和队列12.3.5树与二叉树12.3.6查找与排序方法21数据结构主要研究和讨论以下3个方面的问题数据集合中各数据元素之间所固有的逻辑关系
8、,即数据的逻辑结构;在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;对各种数据结构进行的运算。2212.3.1 12.3.1 数据结构的基本概念数据结构的基本概念1数据数据是描述客观事物的所有能输入到计算机中并被计算机程序处理的符号的总称。例如数值、字符、声音、图形、图像等。2数据元素数据元素是数据的基本单位,在计算机中通常作为一个整体加以考虑和处理。例如:电话号码簿中的一条记录为一个数据元素,包括了姓名、住址、电话号码等数据项。23Access2010后台视图24Access2010工作界面3数据对象是性质相同的数据元素的集合,是数据的一个子集。例如:电话号码簿就是一个
9、数据对象。4数据类型在高级程序设计语言中,用数据类型来表示操作对象的特性。数据类型与数据结构密切相关,具有相同数据结构的一类数据的全体构成一种数据类型。例如:C语言中的整型、实型、字符型等都是数据类型。5 5数据结构数据结构(1)数据结构的概念数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关系,这种数据元素之间的关系称为结构。一个数据结构有两个要素:一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示:B=(D,R),其中B表示数据结构,D是数据元素的有限集,R是D上关系的有
10、限集。25(2)数据结构的图形表示一个数据结构可以用二元组表示,也可以直观地用图形表示。在数据结构的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的圆表示,一般称之为数据结点,简称为结点。为了进一步表示各数据元素之间的逻辑关系,对于关系R中的每一个二元组,用一条有向线段从前驱结点指向后继结点。2612.3.2 12.3.2 线性结构与非线性结构线性结构与非线性结构如果一个数据结构满足条件:除了第一个和最后一个结点以外的每个结点只有唯一的一个前驱和唯一的一个后继,第一个结点没有前驱,最后一个结点没有后继,则称该数据结构为线性结构;否则,称之为非线性结构。27线性结构的线性结构的四四
11、个基本特征个基本特征:1集合中必存在唯一的一个第一个元素;2集合中必存在唯一的一个最后的元素;3除最后元素之外,其它数据元素均有唯一的后继;4除第一元素之外,其它数据元素均有唯一的前驱。2812.3.3 12.3.3 线性表线性表1线性表定义线性表是由n(n0)个数据元素a1,a2,an组成的一个有限序列,记为(a1,a2,ai,an)。其中,数据元素个数n称为线性表长度,n=0时称此线性表为空表。292 2非空线性表的结构特征非空线性表的结构特征均匀性:线性表的数据元素可以是各种类型的,但对于同一线性表的各数据元素必定具有相同的数据类型。有序性:各数据元素在线性表中的位置只取决于它的序号,数
12、据元素之间的相对位置是线性的,即存在唯一的“第一个”和“最后一个”的数据元素,除了第一个和最后一个外,其他元素均只有一个直接前驱和直接后继。303 3线性表的顺序存储结构线性表的顺序存储结构在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序表。线性表在顺序存储结构中具有以下两个基本特点:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的;3112.3.4 12.3.4 栈和队列栈和队列1栈(1)栈的定义栈(stack)是一种特殊的线性表,这种线性表上的插入与删除运算限定在表的一端进行。即在这种线性表的结构中,一端是封闭的,不允许进行插入与删除
13、元素操作;另一端是开口的,允许插入与删除元素操作。在顺序存储结构下,对这种类型线性表的插入与删除运算不需要移动表中其他数据元素。3233(2 2)栈的运算)栈的运算:入栈运算:是指在栈顶位置插入一个新元素。出栈运算:是指取出栈顶元素并赋给一个指定的变量。读栈顶元素:是指将栈顶元素赋给一个指定的变量。34【例12-10】栈在顺序存储结构下的运算35(a)有4个元素的栈(b)两个元素入栈后的栈(c)一个元素出栈后的栈2 2队列队列队列(queue)是只允许在一端进行插入元素,而在另一端进行删除元素的线性表。这与日常生活中的排队是同理的,最早进入队列的元素最早离开。在队列中,允许插入的一端称为队尾,
14、通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针(front)指向队首元素的位置。36【例【例12-1112-11】队列的入队与出队】队列的入队与出队运算运算37(a)一个队列(b)元素A出队后的队列(c)元素E入队后的队列12.3.5 12.3.5 树与树与二叉树二叉树1.树树(Tree)是一种简单的非线性结构。树中所有数据元素之间的关系具有明显的层次特性,即树是一种层次结构。在用图形表示树时,很像自然界中的树,只不过是一棵倒长的树,因此,这种数据结构就用“树”来命名。38有关树的一些基本特征及基本有关树的一些
15、基本特征及基本术语术语父结点和根结点子结点和叶子结点度层深度子树392.2.二叉树二叉树二叉树(binarytree)是一种特殊的树,它的特点是每个结点最多只有两个子结点,即二叉树中不存在度大于2的结点。40(1 1)二叉树的基本性质)二叉树的基本性质性质1:在二叉树的第k层上,最多有2k-1(k1)个结点。性质2:深度为m的二叉树最多有2m-1个结点。性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个(n0n21)。性质4:具有n个结点的完全二叉树的深度为log2n1,其中log2n表示取log2n的整数部分。41性质5:设完全二叉树共有n个结点。如果从根结点开始
16、,按层序(第一层从左到右)用自然数1,2,n对结点进行编号,则对于编号为k(k1,2,n)的结点有以下结论:若k1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为k/2。若2kn,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。若2k1n,则编号为k的结点的右子结点编号为2k1;否则该结点无右子结点。42(2 2)二叉树的)二叉树的遍历遍历前序遍历(DLR):前序遍历的过程是首先访问根结点,然后遍历左子树、最后遍历右子树。中序遍历(LDR):中序遍历的过程是首先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历(LRD):后序遍历的过程是首先
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 大学计算机 基础教程 第三 教学 课件 作者 贾宗福 齐景嘉 陆璐 赵杰 12
链接地址:http://www.wodocx.com/p-1010197.html