计算机导论 课件 第5、6章 算法与数据结构、计算机程序设计基础_第1页
计算机导论 课件 第5、6章 算法与数据结构、计算机程序设计基础_第2页
计算机导论 课件 第5、6章 算法与数据结构、计算机程序设计基础_第3页
计算机导论 课件 第5、6章 算法与数据结构、计算机程序设计基础_第4页
计算机导论 课件 第5、6章 算法与数据结构、计算机程序设计基础_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机导论教师:第5章算法与数据结构05目录CONTENTS1算法2数据结构的概念3几种常见的数据结构4查找和排序本章学习目标了解算法的概念了解算法与数据结构的关系掌握数据结构的逻辑结构掌握数据结构的存储结构了解常用的查找与排序算法本章学习目标算法算法(Algorithm)是指对解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表用系统的方法描述解决问题的策略机制。算法不是程序,但程序员可以使用某种编程语言来实现算法。算法被公认为是计算机科学的灵魂。从理论角度来看,对算法的研究(有时称为“算法学”)已经被公认为是计算机科学的基石。

算法的概念算法的基本特性一个算法必须在有限步骤之内结束,不能形成死循环。这种有限性使算法不能保证一定有解。有限性算法中的每条指令必须有确定含义,无二义性,不会产生理解偏差。算法可以有多条执行路径,但是对某个确定的条件值只能选择其中一条路径执行。确定性一个算法有多个或0个输入,输入取自某些特定对象的集合。有些输入在算法执行过程中输入,有些算法不需要外部输入。输入至少有一个或多个输出,输出与输入之间存在某些特定的关系。不同的输入可以产生不同或相同的输出,但是相同的输入必须产生相同的输出。输出算法是可行的。描述的操作可通过已实现的基本运算执行有限次而完成。可行性用自然语言描述算法用自然语言描述算法的优点是简单,但容易出现歧义。例5-1用自然语言描述求两个整数的最大公约数的算法。步骤1:输入两个整数x和y;步骤2:x和y整除余数为r;步骤3:判断余数r是否为0,如果为0,则转步骤5;否则转步骤4;步骤4:x的值是y的值,y的值是r的值,转步骤2;步骤5:输出y。y为所求的两个整数的最大公约数。

算法的描述用流程图描述算法美国国家标准化协会(AmericanNationalStandardsInstitute,ANSI)曾规定了一些常用的流程图符号,可以用这些流程图符号描述算法的执行步骤。例5-2用流程图描述求两个整数的最大公约数的算法:如图5-2所示。

算法的描述用伪代码描述算法伪代码(Pseudocode)是一种非正式的,用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Pascal、C、Java等)来实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。

算法的描述用类C语言描述算法

算法的描述算法设计要求算法的正确性是指在给定有效输入后,经过有限时间的计算并产生正确的答案。正确性算法的可读性是指一个算法可供人们阅读的容易程度。可读性算法的健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。健壮性算法的效率通常是指算法的执行时间。对于一个具体问题的解决,通常有多个算法,执行时间短的算法其效率就高。计算机的另一个有限资源就是内存,希望一个算法的执行所需要的最大存储空间尽可能得少。高效率和低存储数据结构的发展计算机加工处理对象范围、类型不断扩展,由纯数值发展到字符、表格、声音和图像的各种具有一定结构的数据。为了应对信息时代计算机处理对象特点的变化,迫切需要分析待处理数据对象的特性及其各处理对象间的关系。1968年,美国著名计算机科学家高德纳(DonaldErvinKnuth)开创了数据结构的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本系统阐述数据结构的著作。瑞士计算机科学家尼古拉斯·沃斯(NiklausWirth)在1976年出版的著作中指出:“算法+数据结构=程序”,可见数据结构在程序设计中的重要性。数据结构的概念数据结构的定义数据结构的概念数据(Data)是描述客观事物的数值、字符及能输入机器且能被处理的各种符号的集合。数据元素(DataElement)作为数据的基本单位。一个数据元素可由一个或多个数据项(DataItem)组成,数据项是具有独立含义的数据最小单位。数据对象(DataObject)是指性质相同的数据元素的集合,它是数据的一个子集。数据结构(DataStructure)是指相互之间存在一种或多种特定关系的数据元素集合,数据结构应该包括数据元素集合及元素间关系的集合。因此,我们可以把数据结构看成带结构的数据元素的集合。数据结构的研究内容通常包括3个方面:数据结构的概念数据的逻辑结构由数据元素之间的逻辑关系构成,是独立于计算机的,因此数据逻辑结构可以看作从具体问题抽象出来的数学模型。数据的逻辑结构数据元素及其关系在计算机存储器中的存储表示,也称为数据的物理结构。显然,数据的存储结构是依赖于计算机的。数据的存储结构数据的运算是施加在数据上的操作,常用的有查找、插入、删除、更新和排序等。数据的运算需要在对应的存储结构上用算法实现。数据的运算逻辑结构的定义逻辑结构

基本的数据结构逻辑结构集合结构:结构中的数据元素之间除“同属于一个集合”的关系以外别无其他关系。线性结构:结构中的数据元素之间存在一对一的线性关系。其特点是,除第一个元素和最后一个元素外,每个元素都有且仅有一个前驱元素,有且仅有一个后继元素。树形结构:结构中的数据元素之间存在着一对多的层次关系。其特点是,如果数据元素集合非空,则有且仅有一个元素被称为根元素,除根元素以外的其他元素有且仅有一个前驱元素。所有元素有0个或多个后继。图形结构:结构中的数据元素之间存在着多对多的任意关系。其特点是,每个元素的前驱元素和后继元素的个数可以是任意的。逻辑结构数据的存储结构存储结构数据的逻辑结构在计算机存储器中的存储表示被称为数据的存储结构(也称为映像),也就是逻辑结构在计算机中的存储实现,它包括数据对象的表示和数据对象中数据元素关系的表示。顺序存储结构存储结构顺序存储结构采用一组连续的存储单元存放所有的数据元素,并映射元素之间的逻辑关系。也就是说,所有的数据元素在计算机存储器中占用一整块存储空间。一般来说,顺序存储结构是高级语言的数组。链式存储结构存储结构链式存储结构是指使用“链表”存储映像数据的逻辑结构,链表是由节点构成的,每个节点对应一个数据元素,每个节点是单独分配的,所有节点的地址不一定是连续的。为了表示元素之间的逻辑关系,每个节点有一个或多个指针域,用于存储逻辑上相邻节点的地址,也就是通过指针域将所有节点连接起来而形成链表。索引存储结构存储结构索引存储结构是指在存储数据元素信息的同时还要建立附加的索引表。存储所有数据元素信息的表称为主数据表,其中每个数据元素有一个关键字和对应的存储地址。散列存储结构存储结构散列存储也称哈希存储。散列存储的基本思想是根据元素的关键字通过散列函数直接计算出一个值,并将这个值作为该元素的存储地址。与前3种存储结构不同的是,散列存储不涉及数据元素之间关系的映射,所以散列存储主要应用于元素间没有逻辑关系的集合结构,以便数据的查找和插入运算。数据运算数据运算是指对数据实施的操作。每种数据结构都有一组相应的运算,常用的运算有查找、插入、删除、遍历、排序等。数据运算分为运算定义和运算实现两个层面。运算定义是运算功能的描述,是抽象的,基于逻辑结构的。运算实现是基于存储结构的,同样的运算定义,如果存储结构不同,运算实现的算法基本不同。对于一种数据结构,其逻辑结构总是唯一的,但它可能对应多种存储结构,并且在不同的存储结构中同一运算的实现过程可能不同。线性表的定义线性表

线性表的存储结构线性表线性表的存储结构有两种:顺序存储和链式存储。线性表的顺序存储,是把线性表中的所有元素按照逻辑顺序依次存储到一块地址连续的存储空间中,逻辑上相邻的两个元素,物理上也是相邻的。线性表的顺序存储结构简称为顺序表。线性表的链式存储也称链表。一般采用带头节点的单链表存储线性表。操作受限的线性表线性表栈(Stack)是指将线性表的插入和删除运算限制为仅在表的一端进行。通常将表中允许进行插入、删除操作的一端称为栈顶,将表的另一端称为栈底。当栈中没有元素时称为空栈。栈的插入操作被形象地称为进栈或入栈,删除操作被称为出栈或退栈。队列(Queue)是另一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入的一端叫作队尾,允许删除的一端叫作队头。树的基本概念和特征树型结构

二叉树树型结构二叉树(BinaryTree)是一个有限的节点集合,这个集合或为空,或由一个根节点和两棵不相交的称为左子树和右子树的二叉树构成。二叉树的定义也是递归定义。二叉树有5种基本形态。二叉树中的节点最多有两个孩子,分别称为左孩子和右孩子。满二叉树和完全二叉树树型结构在一棵二叉树中,如果所有分支节点都有两个孩子节点,并且叶子节点都集中在二叉树的最下面一层,这样的二叉树称为满二叉树。若二叉树中最多只有最下面两层节点的度数可以小于2,并且最下面一层的叶子节点都排列在该层最左边的位置上,则这样的二叉树被称为完全二叉树。二叉树的二叉链表存储结构树型结构二叉树也有顺序存储结构和链式存储结构,常用的是链式存储结构。因为二叉树最多有两个孩子,因此链表节点有两个指针域,分别指向左孩子和右孩子。二叉树的顺序存储结构树型结构二叉树的顺序存储就是用一组地址连续的存储单元来存放二叉树的数据元素。对于完全二叉树和满二叉树,树中节点的层序编号可以唯一地反映节点之间的逻辑关系,所以可以用一维数组按从上到下,从左到右的顺序存储二叉树中的所有节点的值,即编号为的节点存储在下标为的数组单元中。二叉树的遍历树型结构二叉树的遍历是指按照一定的次序访问二叉树中的所有节点,并且每个节点仅被访问一次的过程。一棵二叉树由3部分组成,即根节点、左子树和右子树,若规定遍历时先左后右,则对于非空二叉树,可以得到3种递归的遍历方法,即先序遍历、中序遍历和后序遍历。对于非空二叉树:先序遍历:访问根节点、先序遍历左子树、先序遍历右子树。中序遍历:中序遍历左子树、访问根节点、中序遍历右子树。后序遍历:后序遍历左子树、后序遍历右子树、访问根节点除此之外,还可以对一棵二叉树按层遍历,即按照从上到下,从左到右的顺序遍历二叉树。二叉树的遍历树型结构按层遍历:ABCDEFG先序遍历:ABDGCEF中序遍历:BGDAECF后序遍历:GDBEFCA图的基本概念图形结构

图的存储结构图形结构常用的两种图的存储结构是邻接矩阵和邻接表。邻接矩阵:使用一个一维数组来存储图中的顶点信息,每个顶点都被分配了一个唯一的编号,该编号与数组下标一一对应。使用另一个二维数组,也即邻接矩阵来存储图中顶点之间的连接关系,元素的值为0或1,1表示有边或弧相连,而0则表示没有。

图的存储结构图形结构常用的两种图的存储结构是邻接矩阵和邻接表。邻接表:使用一个一维数组存储图,一维数组元素包含两个数据项:顶点信息及这个顶点所有邻接点的单链表的头指针。由于一个顶点的所有邻接点以单链表存储,因此这种存储结构是顺序+链式存储结构。图的遍历图形结构从图中某一顶点出发访问图中的所有顶点,且每个顶点仅被访问一次,这一过程就叫作图的遍历。通常有两种遍历策略:深度优先遍历和广度优先遍历。深度优先遍历,也称为深度优先搜索(DepthFirstSearch,DFS):从图中某个顶点v出发,先访问此顶点,然后从v的未被访问的邻接点出发进行DFS,直至图中所有和v有路径相通的顶点都被访问到。若图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点做起始点,重复上述过程,直至图中的所有顶点都被访问到为止。图的遍历图形结构从图中某一顶点出发访问图中的所有顶点,且每个顶点仅被访问一次,这一过程就叫作图的遍历。通常有两种遍历策略:深度优先遍历和广度优先遍历。广度优先遍历,又称为广度优先搜索(BreathFirstSearch,BFS):从图中某顶点v出发,在访问了v之后依次先访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使得“先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问”,直至图中所有已被访问的顶点的邻接点都被访问到。如果此时图中尚有顶点未被访问,则需要另选一个未曾被访问过的顶点作为新的起始点,重复上述过程,直至图中所有顶点都被访问到为止。查找查找和排序查找又称检索,是指在某种数据结构中找出满足给定条件的元素,主要有基于线性表的查找、基于树的查找和哈希表查找。

查找查找和排序查找又称检索,是指在某种数据结构中找出满足给定条件的元素,主要有基于线性表的查找、基于树的查找和哈希表查找。二分查找又称折半查找,要求待查找的顺序表是按关键字有序的。算法的思想是:将顺序表中间位置的元素的关键字与查找关键字做比较,如果两者相等,则查找成功;否则如果中间位置元素的关键字大于查找关键字,则在前半部分继续查找,否则在后半部分继续查找,重复以上过程,直到找到满足条件的元素或查找范围为空。因为每比较一次或会查找成功,或使查找范围缩小一半,因此该算法称为折半查找算法。排序查找和排序排序是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。学习和研究各种排序方法是计算机领域的重要课题之一。冒泡排序查找和排序冒泡排序算法是一种典型的交换排序算法,基本思想是通过无序区中相邻元素关键字的比较和相邻元素的交换使关键字小的元素如气泡般往上“漂浮”。快速排序算法查找和排序快速排序算法采用分治策略,对无序区,首先选取某个称为基准的元素(一般为无序区的第1个元素),利用这个基准元素,把无序区分成两个子序列,第1个子序列的所有元素值都小于或等于这个基准,第2个子序列的所有元素都大于或等于这个基准。然后递归对两个子序列采用同样的算法划分,子序列规模越来越小,直到每个子序列只有一个元素或空为止。这时整个序列也就有序了。直接插入排序查找和排序直接插入排序算法的思想:初始时,将序列中第一个元素作为有序区,剩下的n-1个元素作为无序区。每一次,把无序区的第一个元素插入有序区,每插入一个元素后依然保持有序区有序,有序区元素个数增一,无序区元素个数减一,经过n-1趟后即成为有序序列。简单选择排序查找和排序简单选择排序算法的基本思想:每次总是从无序序列中选出最小元素并把其放在无序序列的起始位置。每选择一次会使无序序列元素个数减一,使有序序列元素个数增一,共需要n-1趟选择。初始时,无序序列元素个数为n。扩展阅读:密码与安全一直在国际上广泛应用的两大密码算法MD5、SHA-1,被一名中国密码专家破解,这在当时的国际社会尤其是国际密码学领域引起了极大反响,也再次敲响了电子商务安全的警钟。从密码分析上找出这两大国际通用密码漏洞的是一位土生土长的中国专家——山东大学网络空间安全学院院长王小云教授。SHA-1在美国等国家有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。王小云教授的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。中国密码专家王小云教授的密码破解与信息安全扩展阅读:密码与安全一直在国际上广泛应用的两大密码算法MD5、SHA-1,被一名中国密码专家破解,这在当时的国际社会尤其是国际密码学领域引起了极大反响,也再次敲响了电子商务安全的警钟。从密码分析上找出这两大国际通用密码漏洞的是一位土生土长的中国专家——山东大学网络空间安全学院院长王小云教授。SHA-1在美国等国家有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。王小云教授的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。中国密码专家王小云教授的密码破解与信息安全扩展阅读:密码与安全密码学是信息安全的基石,信息安全属于新兴学科,随着信息安全与网络空间安全领域的迅猛发展,中国在很多方面达到了国际领先水平,但与国际整体水平还有一定差距,未来还需要更多的信息安全与网络空间安全人才,以发展密码防御体系,共筑国家安全。信息安全的重要性谢谢聆听THANKS计算机导论教师:第6章计算机程序设计基础06目录CONTENTS1程序设计语言概述2高级语言程序的编译执行和解释执行3结构化程序设计语言C语言4面向对象编程语言Java动态程序设计语言Python56如何学习程序设计本章学习目标了解程序设计语言的发展历史了解面向过程的语言和面向对象的语言掌握高级程序语言的基本构成了解C语言程序设计本章学习目标机器语言机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点,不同型号的计算机其机器语言是不相通的,机器语言使用绝对地址和绝对操作码。用机器语言编写的程序全是0和1的指令代码,可读性和可移植性差,容易出错。

程序设计语言概述汇编语言汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。一般来说,汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言在一些对于时效性要求很高的程序、许多大型程序的核心模块及工业控制方面大量被应用。另外,驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。

程序设计语言概述高级语言高级语言相对于汇编语言,更接近自然语言和数学公式,编程过程基本脱离了机器硬件的细节。程序员使用更易理解的方式编写源程序,然后通过编译器或解释器将其翻译成机器代码运行。编译器和解释器是用来实现高级语言到机器语言转换的工具。高级语言的出现使编程更加抽象,不再需要直接操作硬件指令,程序能够更好地描述和解决实际问题。高级语言主要分为两大类:以C语言为代表的面向过程的程序设计语言和以Java、C#语言等为代表的面向对象的程序设计语言。了解高级语言的核心概念,首先要理解四个要素:“变量”是内存中的若干字节,通过命名使用,无需关心具体位置;“表达式”采用数学算式的形式描述数据计算过程;“语句”表示执行特定任务的一段代码;“赋值”将计算结果保存到变量中。计算机主要能做两件事:执行计算和保存结果,而高级语言以数学式子的方式描述数据计算,其中变量用于保存计算的初值、中间结果和最终结果。

程序设计语言概述编译执行和解释执行编译执行编译是将高级语言程序(源程序)转换成机器语言程序,也称为可执行程序。每种高级语言的开发者都会开发对应的编译器,用于将该语言的程序转换为机器语言。源程序转变为最终可执行程序经历两个阶段:编译和连接。在编译阶段,源程序被翻译成机器语言书写的目标模块;而在连接阶段,这些目标模块与编译软件提供的一些基本模块连接在一起,形成可以直接在计算机上运行的可执行程序。在编译过程中,编译器一般会对源程序进行两遍扫描:第一遍做基本的预处理,而第二遍按照语言的语法定义的翻译规则将源程序翻译成目标代码。如果源程序没有按照语言的严格语法定义写,编译器就会报编译错误,并指出错误的位置和原因。编译执行和解释执行解释执行解释执行是由解释器来完成的,它不像编译器将整个源程序一次性转换成目标代码,而是逐行解释执行源程序。结构化程序设计语言C语言程序的基本框架一个C程序是由一个称为main的主函数和若干个自定义函数构成的。结构化程序设计语言C语言C语言编程示例结构化程序设计语言C语言数据存储与运算C语言提供了大量的运算符用于各种计算,参与计算的是数据,数据需要保存在计算机内存中。数据是分类型的,不同类型的数据需要的存储空间大小不同,支持的运算也不同,运算主要涉及算术运算、关系运算和逻辑运算等,通过这些运算可以解决很多实际问题。数据存储与运算C语言的基本数据类型short:短整型,一般占2字节,表示的数的范围是-215~215-1。int:整型,一般占4字节,表示的数的范围是-231~231-1。long:长整型,一般也占4字节。longlong:长长整型,一般占8字节,表示的数的范围是-263~263-1。以上4种类型可以用unsigned修饰,表示无符号整数类型。char:字符型,占1字节。从技术层面看,char类型也是一个标准的整数类型。因为char类型实际上存储的是整数而不是字符,是字符的ASCII码,如'a'的ASCII码是97。float:单精度浮点型,一般占4字节。double:双精度浮点型,一般占8字节。数据存储与运算C语言的运算符C语言的运算符有算术运算符、赋值运算符、关系运算符、逻辑运算符和位运算符等多种。算术运算符用于数值计算:+、-、*、/、%、++、--。赋值运算符用于对变量进行赋值:=、+=、-=、*=、/=、%=、&=、|=、^=,>>=、<<=。关系运算符用于数值的大小比较:>、<、==、>=、<=、!=。逻辑运算符用于数值的逻辑操作:&&、||、!。位运算符用于对某个整数类型变量中的某一位进行操作:&、|、^、~、<<、>>。一个表达式中可以有多个、多种运算符。不同的运算符优化级不同,可以用括号来规定表达式的计算顺序。分支语句if语句if语句的形式为:if(表达式1)

语句/语句组1elseif(表达式2)

语句/语句组2……else

语句/语句组n分支语句switch语句switch(表达式){

case常量表达式1:语句/语句组1case常量表达式2:语句/语句组2……case常量表达式n:语句/语句组ndefault:语句/语句组n+1}循环语句for语句for(表达式1;表达式2;表达式3)

语句/语句组循环语句while语句while(表达式)

语句/语句组循环语句do-while语句do

语句会/语句组while(表达式);循环语句break语句和continue语句break语句用来结束离它最近的do-while、for、switch或while语句。在do-while、for或while语句中,continue语句会使其后的语句被忽略,直接进入下一轮循环。函数函数定义函数是一段相关代码的抽象,它通过函数名将相关的代码组织在一起,先对输入的数据(称为参数)进行处理,然后返回特定的输出(称为返回值)。一旦定义好函数之后,就完成了对函数名和该函数对应的相关代码的绑定,以后就可以利用函数名调用这段代码来完成相应的功能。返回值类型函数名(形式参数列表){

语句1

语句2…return返回值;

}函数函数声明、函数调用和函数定义示例一般情况下,在main函数的前面声明函数,在main函数的后面定义函数。结构化程序设计语言C语言数组如果需要保存一组类型相同、含义相同、作用域相同的数据,可以使用数组来保存它,而不用使用很多个独立的变量来保存。数组一维数组编程示例一维数组的定义方法如下:类型名数组名[元素个数];数组二维数组编程示例二维数组的定义方法如下:类型名数组名[行数][列数];指针指针就是内存地址,指针变量就是存储地址的变量。指针变量的定义方式:类型名*指针变量名;结构学生的个人信息无法用基本数据类型一次描述清楚,因为个人信息包括姓名、年龄、专业、班级等,这时就需要用到C语言提供的结构(struct)数据类型。结构数据类型可以把基本数据类型和派生类型组合起来,以描述复杂的事物。结构数据类型定义的语法如下:struct结构名{成员类型名成员变量名;成员类型名成员变量名;成员类型名成员变量名;……};面向对象编程语言JavaJava是Sun公司(后被Oracle收购)推出的Java程序语言和Java平台的总称,是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、分布式、泛型、多线程等特点,用于开发在移动设备、台式计算机和服务器上运行的软件。Java采用了一种不同于传统编程语言的方法来实现跨平台的目标。Java在编译时将源代码转换成一种称为字节码的中间状态。这种字节码不针对特定的操作系统,而是针对Java虚拟机(JVM)设计的。JVM是一个在操作系统上的平台层,它负责将Java字节码转换成特定平台的机器指令并执行。因此,Java程序可以在任何安装了Java虚拟机的平台上运行,而不必关心底层操作系统的细节。尽管这种解释执行方式可能导致Java程序的执行速度比编译型语言慢一些,但它确保了跨平台的兼容性,使得Java成为一种广泛应用的编程语言。面向对象编程语言JavaJava语言从源代码到可执行程序的过程面向对象编程语言JavaJava语言的面向对象编程Java是面向对象的程序设计语言,面向对象的基本思想是使用对象、类、方法、接口、消息、继承、多态等基本概念进行程序设计。对象(Object)是对程序中事物的描述,世间万事万物都是对象,对象是个体,如张三这名同学、你在淘宝网的一个订单等。类(Class)是具有共同属性和行为的一组对象的描述,任何对象都隶属于某个类。使用类生成对象的过程称为实例化。属性是用来描述对象静态特征的一组数据。例如,学生的姓名、学号、性别、专业等。方法是对对象动态特征(行为)的描述。每一个方法能确定对象的一种行为或功能。例如,汽车的行驶、转弯、停车等动作,可分别用move()、rotate()、stop()等方法来描述。Java程序设计从类开始,类的程序结构由类说明和类体两部分组成。类说明部分由关键字class与类名组成;类体是类声明中花括号所包括的全部内容,它由数据字段(属性)和方法(函数)两部分组成。数据字段描述对象的属性,方法描述对象的行为,每一个方法能确定一个功能或操作。面向对象编程语言JavaJava程序示例动态程序设计语言PythonPython简介Python是一种具有动态语义和面向对象的开源程序设计语言。它可以在Windows、Linux、Android等系统中使用,并可以实现Python与C/C++、Java、.Net等开发平台的混合编程,因此程序员有时会把Python称为“胶水语言”。Python的创始人是荷兰人吉多·范罗苏姆(GuidovanRossum)。Python是一种代表简单主义思想的编程语言,具备高度的可读性。Python不再有指针等复杂的数据类型,而且简化了面向对象的实现方法。Python提供了丰富的API和工具,以便程序员能够使用C/C++语言、Java来编写扩充模块。Python拥有丰富的软件包。Python提供了功能丰富的标准库。动态程序设计语言PythonPython基本元素Python程序有时称为脚本,是一系列定义和命令,通常称为语句,用来指示解释器做一些事情。Python解释器用于解释和执行Python语句和程序,Python解释器是解释Python脚本执行的程序。语句print('hello,world!')指示解释器调用print函数,输出字符串hello,world!。对象是Python程序处理的核心元素。每个对象都有类型,其定义了程序能够在这个对象上做的操作。Python主要对象类型如下表所示:对象类型说明描述例子str字符由字符组成的不可修改元素'hello,world!'bytes字节由字节组成的不可修改元素b'hello'list列表包含多种类型的可修改的元素,类似于数组[4.0,'string',True]tuple元组包含多种类型的不可修改的元素,类似于记录(4.0,'string',True)set集合一个无序且不重复的元素集合{4.0,'stri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论