




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章程序设计基础,程序:是解题方法和步骤的描述,是供计算机执行并能完成特定功能的指令序列。程序的核心:数据结构和算法。程序设计(Programming):先对问题进行分析并建立数学模型,然后考虑数据的组织方式和算法,并用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。,8.1程序设计的概念,程序设计的基本步骤:(1)分析问题,确定数学模型或方法。(2)设计算法,画出流程图。(3)选择编程工具,按算法编写程序。(4)调试程序,分析输出结果。,8.2算法,计算机解决问题的方法和步骤,就是计算机解题的算法(Algorithm)。算法举例:(1)将两个变量的值互换。(2)欧几里德(Euclid)算法求两个正整数m和n的最大公约数。(3)非数值计算算法:有9枚铜币,其中有1枚略轻的是假币,用一台没有砝码的天平将假币找出来,应怎样找称。,8.2.1算法的概念,(1)有穷性。算法中执行的步骤总是有限次数的,不能无止境地执行下去。(2)确定性。算法中的每一步操作必须具有确切的含义,不能有二义性。(3)有效性。算法中的每一步操作必须是可执行的。(4)可有零个或多个输入。输入是指在执行算法时从外界获得数据,如在判断某数是否为素数的算法中,必须要先获得被判断的数。(5)有一个或多个输出。,8.2.2算法的特性,1算法评价标准(1)正确性。(2)可读性。(3)通用性。(4)高效率。2.算法效率的度量(1)时间度量(2)空间度量,8.2.3算法的评价,用传统的流程图描述算法传统的流程图是用一些几何框图、流程线和文字说明表示各种类型的操作。一般用矩形框表示进行某种处理,有一个入口,一个出口。用菱形框表示判断,有一个入口,两个出口。在框内写上简明的文字或符号表示具体的操作,用带箭头的流向线表示操作的先后顺序。,8.2.4算法的描述,2.用结构化流程图描述算法(1)程序的三种基本结构:顺序结构、选择结构和循环结构。(2)结构化流程图(N-S图),2.用结构化流程图描述算法(1)程序的三种基本结构:顺序结构、选择结构和循环结构。(2)结构化流程图(N-S图),3用伪代码描述算法计算2+4+100并输出,设计算法并用VisualBasic伪代码描述如下:0sum1iDoWhilei100Ifi/2的余数为0THENsum+isumi+1iLoopPrintsum,1迭代算法迭代是一种建立在循环基础上的算法。在数学中,迭代经常被用来进行数值计算,例如求方程的解,不断用变量原来的值递推求新的值的过程。讨论求若干个数之和或乘积的问题。,8.2.5算法示例,2穷举算法穷举法也叫枚举法,它的基本思路是对众多可能解,按某种顺序进行逐一枚举和检验,并从中找出那些符合要求的可能解,作为问题的解。穷举的计算量是相当大的,但对于计算机来说,做起来很容易。穷举算法是一种重要的算法设计策略,可以说是计算机解题的一大特点。求方程x+2y+5z=100的整数解。,3排序算法所谓排序,就是将一组数据元素按照某个关键字递增或递减的次序排列起来。(1)选择排序(SelectionSort)选择排序法的实现过程是:首先找出表中关键字最小的元素,将其与第一个元素进行交换,然后,再在其余元素中找出关键字最小的元素,将其与第二个元素进行交换。依次类推,直到将表中所有关键字按由小到大的顺序排列好为止。,(2)冒泡排序(BubbleSort)冒泡法排序法是每趟将相邻的两个数两两进行比较,若满足升序次序,则进行下一次比较,若不满足升序次序,则交换这两个数,直到最后。总的比较次数为n-1次,此时最后的元素为最大数,此为一趟排序。接着进行第二趟排序,方法同前,只是这次最后一个元素不再参与比较,比较次数为n-2次,依次类推。,4查找算法查找是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素,若表中存在这样的数据元素,称此查找是成功的。若表中不存在关键字等于给定值的数据元素,称此查找是不成功的。(1)顺序查找顺序查找是最常用的查找方法,其查找过程为:从第一个元素起,逐个将给定值与数据元素的关键字进行比较,若某个元素的关键字与给定值相等,则认为查找是成功的,否则,查找失败。,(2)折半查找作为折半查找的表必须是顺序存储的有序表,即表采用顺序结构存储,表中的元素按关键字值递增(或递减)排列。假设表中的关键字值递增排列,则折半查找的实现方法是:首先取整个有序表的中间元素Am的关键字同给定值x比较,若相等,则查找成功;否则,若Am的关键字小于x,则说明待查元素只可能落在表的后半部分中,接着只要在表的后半部分子表中查找即可;若Am的关键字大于x,则说明待查元素只可能落在表的前半部分中,接着只要在表的前半部分子表中查找即可。这样,经过一次关键字的比较,就缩小一半的查找空间,重复进行下去,直到找到关键字为x的元素,或者表中没有待查元素(此时查找区间为空)为止。,8.3程序设计语言,8.3.1程序设计语言的分类,1机器语言(Machinelanguage)机器语言:机器指令的总称。特点:繁琐冗长、不直观、容易出错、程序不通用。2汇编语言(Assemblylanguage)用助记符表示的机器指令。特点:直观性增强了,但与机器指令一一对应。3高级语言(Highlevellanguage)高级语言:接近自然语言和数学表达式的一种语言。特点:直观、通用性,便于推广交流。两种执行方式:编译方式和解释方式。,高级语言程序的编译执行过程:,编译程序工作过程:,8.3.2高级语言的基本特征,1数据类型各种高级语言都提供了丰富的数据类型,这些数据类型可以分为两大类:简单类型和构造类型。其中简单类型一般有整型、实型、字符型、逻辑型、指针类型等,构造类型有数组类型、集合类型、记录类型、文件类型等。,2运算与表达式(1)常量(2)变量(3)表达式3语句(1)赋值语句(2)输入输出语句(3)程序的控制结构语句4子程序、函数与过程,8.3.3常用高级语言,1.传统高级语言(1)FORTRAN语言:FORTRAN66、FORTRAN77、FORTRAN90。(2)BASIC语言:BASIC、VisualBasic、VisualBasic.NET。(3)PASCAL语言(4)C语言:C、C+、C。(5)COBOL语言(6)Python语言,2网络编程语言(1)Java语言(2)脚本语言(ScriptingLanguage):JavaScript、VBScript、Perl、PHP。3科学计算语言:MATLAB,讨论:如何学习一种高级语言?如何选择高级语言?,8.4程序设计方法,8.4.1结构化程序设计,结构化程序设计采用自顶向下、逐步求精和模块化的分析方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子程序,便于开发和维护。,8.4.2面向对象程序设计(Object-OrientedProgramming,OOP),传统的程序设计是基于求解过程来组织程序流程。在这类程序中,数据和施加于数据的操作是独立设计的,以对数据进行操作的过程作为程序的主体。面向对象程序设计则以对象作为程序的主体。对象是数据和操作的“封装体”,封装在对象内的程序通过“消息”来驱动运行。在图形用户界面上,消息可通过键盘或鼠标的某种操作来传递。,(1)对象(Object)对象是指现实世界中具体存在的实体。每一个对象都有自己的属性(包括自己特有的属性和同类对象的共同属性)。属性反映对象自身状态变化,表现为当前的属性值。方法是用来描述对象动态特征的一个操作序列。(2)类(Class)类是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。,(3)消息一个系统由若干个对象组成,各个对象之间通过消息(Message)相互联系、相互作用。(4)封装(Encapsulation)是指把对象的数据(属性)和操作数据的过程(方法)结合在一起,构成独立的单元。(5)继承(Inheritance)是面向对象方法为了提高软件开发效率而采取的重要措施,它是指子类可以拥有父类的属性和行为。(6)多态性(Polymorphism)是指同一名字的方法产生了多个不同的动作行为,也就是不同的对象收到相同的消息时产生不同的行为方式。,8.4.3可视化程序设计,让程序设计人员利用语言工具本身所提供的各种控件,像搭积木式地构造应用程序的各种界面,使得整个界面设计是在“所见即所得”的可视化状态下完成。相对于编写代码方式的程序设计而言的,可视化程序设计具有直观形象、方便高效等优点。,VB.NET程序设计,1.VB2010集成开发环境,2.创建VB.NET应用程序的主要步骤(1)创建应用程序界面。(2)设置界面上各个对象的属性。(3)编写对象响应的程序代码。(4)保存工程。(5)运行和调试程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合作研发协议保密条款规定
- 2025年教师招聘之《小学教师招聘》通关试题库含完整答案详解【网校专用】
- 教师招聘之《幼儿教师招聘》从业资格考试真题附答案详解(综合题)
- 宿管员个人工作方案
- 钢铁行业与新质生产力适配性
- 智慧应急整体解决方案
- 新质生产力的低边际成本优势
- 教师招聘之《小学教师招聘》考试押题密卷附答案详解(模拟题)
- 安全知识培训与课件
- 新质生产力国内发展现状
- 化验室检验和试验管理制度
- 塔吊月检表优质资料
- 北京市建筑施工作业人员安全生产知识教育培训考核试卷ABCDE
- GB/T 14048.7-2016低压开关设备和控制设备第7-1部分:辅助器件铜导体的接线端子排
- 石材检测报告2023
- 议论文如何议论-使素材紧扣中心论点的方法
- 第十二章-地球系统科学课件
- 2022~2023血站上岗证考试题库及答案参考85
- 蒙台梭利的学前教育思想课件
- 公司产品报价单通用格式模板
- (中职)《电子商务基础》第1套试卷试题及答案
评论
0/150
提交评论