程序设计基础知识1.ppt_第1页
程序设计基础知识1.ppt_第2页
程序设计基础知识1.ppt_第3页
程序设计基础知识1.ppt_第4页
程序设计基础知识1.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

VIP免费下载

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

文档简介

,程序设计基础知识,第1章,1.1 程序设计,1.3 程序设计语言,1.4 程序开发环境,1.2 程序设计方法,1.1 程序设计,利用计算机解决问题,使用程序设计语言将问题的求解过程描述成计算机能够识别的方式程序,程序设计,先从问题描述开始,经过分析问题确定解决方案、设计解决问题的算法、依据算法编写程序、测试、运行维护等一系列过程,最终得到解决问题的计算机程序整个过程,(1) 分析问题明确要解决什么问题 (2) 设计算法数据结构和算法 (3) 编写程序将算法用程序设计语言描述出来 (4) 调试运行语法错误、语义错误、异常,1.1.1 程序设计步骤,算法就是解决问题所需的操作步骤的集合。,1.1.2 算法,求最大数的算法: (1)将第1个数赋值给max; (2)初始化计数变量i为1; (3)in时,重复执行以下操作,否则转到第(4)步: 比较ai与max,若ai大于max,则将ai赋值给max; i自增1; (4)返回max的值。,1.1.3 数据结构,数据:用来描述现实世界的数字、字符、图像、声音以及能够输入到计算机中,并能被计算机处理的符号集合。例如,整数、图书馆中书目。,数据元素:数据集合中的个体,是数据的基本单位,数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小标识单位。,数据对象:具有相同性质的数据元素的集合,是数据的一个子集。,数据结构:相互之间存在一种或多种特定关系的数据元素的集合。,数据的逻辑结构:数据元素之间存在的固有的逻辑关系。常简称为数据结构。,(1)集合 (2)线性结构 (3)树形结构 (4)图状结构,(1)集合:结构中的数据元素之间除了“同属于一个集合”的关系以外,没有其它关系。,草原中的草,(2)线性结构:结构中的数据元素之间存在“一对一”的关系。,(3)树形结构:结构中的数据元素之间存在“一对多”的关系。,(4)图状结构:结构中的数据元素之间存在“多对多”的关系。,数据的存储结构:数据元素及其关系在计算机内的表示,(1)顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 (2)链式存储结构:用指针或引用表达数据元素之间的逻辑关系。 (3)索引存储结构:在存储数据元素的同时,还建立附加的索引表。通过索引表,可以找到存储数据元素的节点 (4)散列存储结构:根据散列函数和处理冲突的方法确定数据元素的存储位置。,数据的操作:在数据的逻辑结构上定义的操作算法。例如,插入、删除、检索等。,逻辑结构和存储结构的关系: 是一个事物的两个方面,相辅相成,不可分割; 一种逻辑结构可以映射为多种存储结构。,算法与数据结构的关系: 算法由各种数据及其操作构成,算法构成依赖于数据结构; 算法设计和选择制约数据结构的确定; 对数据结构所能施加的操作需要相应的算法。,1.2程序设计方法,结构化程序设计 面向对象程序设计 函数式程序设计 事件驱动程序设计。,基本思想:采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。,1.2.1 结构化程序设计,强调先考虑总体,再考虑细节。经过对问题的逐步细化,将问题分解为基本程序模块,从而将原来较为复杂的问题化简为一系列简单的模块。,任何复杂的程序都由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,从而形成一个单入口单出口的程序。,开发一个银行系统: 该系统能够对账户进行存款、取款和转账操作。 进行存款操作时,需要提供“账号”、“存款日期”、“存入金额”等参数信息。 进行取款操作时,需要。,long accountID = Convert.ToInt64(Console.ReadLine(); double amount = Convert.ToDouble(Console.ReadLine(); DateTime date = DateTime.Today; double balance = Acount.MakeDeposit(accountID, date, amount); Console.WriteLine(“你存入了0元,账户上现有余额1元“, amount, balance);,有现金账户,还要有基金账户!,if( acountType = “现金“ ) else ,还要有支票账户!,基本思想:以人类的自然思维方式建立问题域模型。以抽象、封装、继承、多态等方式认识问题和解决问题。强调以现实世界中的客观事物为中心,而不是以功能为中心。用对象来描述现实世界中的客观事物,使得解空间与问题空间具有自然的对应关系,有利于对复杂问题给出解决方案。,1.2.2 面向对象程序设计,开发一个银行系统: 每个账户具有账号、账户类型、明细等,可以对账户进行存款、取款和转账操作,abstract class Account protected long acountID; protected double balance; protected List items = null; public double MakeDeposit(); public double WithDraw(); public double Transform(); ,有现金账户,还要有基金账户!,派生出CashAcount、ChequeAccount与FundAccount类,分别表示现金账户、支票账户和基金账户。,还要有支票账户!,围绕函数进行,计算过程体现为一系列的函数应用。 函数式程序由一些原始函数、定义函数和函数型组成的函数表达式。,1.2.3 函数式程序设计,LISP是一种最早的函数式程序设计语言,在人工智能领域应用较多。,编写一个函数,它能够生成累加器,即这个函数接受一个参数n,然后返回另一个函数(这个函数接受参数i,然后返回n加i的值) Lisp的写法: (defun foo(n)(lambda(i)(incf n i) Javascript的写法: function foo (n) return function(i) return n += i ,事件:是一个对象能够识别的一个动作,比如鼠标事件、键盘事件等。,1.2.4 事件驱动程序设计,事件驱动程序设计主要应用在Windows应用程序上,Windows程序以一种非顺序的方式运行。运行后,就进入等待状态,等待事件的发生。一旦有事件发生,程序就被激活并运行相应的事件处理过程,1.3程序设计语言,1.3.1 语言分类,机器语言:是用二进制代码表示的机器指令的集合,是计算机能够直接识别和执行的一种语言,是一种面向机器的语言。,内存占用少、直接执行和速度快;通用性较差,不易阅读和记忆,编程工作量大,难以维护。,10100000 00000001 00000000 00000010 00000110 00000010 00000000 10100010 00000011 00000000 11110100,1.3.1 语言分类,汇编语言:用助记符表示的面向机器的计算机语言,MOV AL, X ADD AL, Y MOV SUM, AL HLT,1.3.1 语言分类,高级语言:与自然语言相近并为计算机所接受和执行的计算机语言,int sum; sum = x + y;,翻译有两种方式:编译和解释。,编译是指将高级语言程序整个翻译成用机器语言表示的与之等价的机器语言程序(称为目标程序),然后再执行该目标程序,从而完成高级语言程序所要完成的任务; 解释是指对高级语言作逐句输入、逐句翻译,并逐句执行,当翻译完成时程序也执行完毕,这种翻译方式并不产生目标程序。,高级语言与汇编语言的比较:,如果要在高级语言中比较两个值,那么可以使用“IF Quantity-A = Quantity-B”。在汇编语言中,要将这两个量移到两个CPU寄存器中,然后进行比较 汇编语言没有类似于“while . do“、“repeat . Until“或“if . then . else“的指令。汇编语言提供了条件和非条件跳转指令,用于模拟与“if . then . else“类似的指令。 所以,从严格意义上讲,使用汇编语言编写一个结构化程序是不可能的。,1.3.2 主流程序设计语言,1.C#语言,特色: (1)完全面向对象:具有面向对象语言的一切特性 (2)简单易学:熟悉C、C+或Java即可掌握C#语言 (3)安全:避免使用指针;自动内存管理和垃圾回收;使用委托取代函数指针。 (4)跨平台:可以运行在不同操作系统上。 (5)跨语言:与任何支持.NET的语言互相交换信息 (6)强大的Web编程能力:ASP.NET Web应用程序,2.Java语言,特色: (1)面向对象:是一种纯粹面向对象的编程语言。 (2)平台无关性:可以运行于不同的软硬件平台。 (3)分布式:支持Internet应用的开发。 (4)安全性:提供了一个安全机制以防恶意代码的攻击,以及程序的非法访问。 (5)键壮性:强类型机制、异常处理、垃圾收集、安全检查机制等可保证Java程序的健壮性。,3.C+语言,特色: (1)完美地体现了面向对象的各种特性,如封装性、继承性、多态性等。 (2)生成的代码质量高,运行效率仅比汇编语言代码片段慢10%20%。 (3)保持与C语言兼容。,4.C语言,特色: (1) 简洁紧凑、灵活方便。 (2) 数据类型丰富。 (3) 运算符丰富。 (4) 语法限制不严格,程序设计自由度大。 (5) 可以直接对硬件进行操作。 (6) 代码质量高,程序执行效率高。,1.4程序开发环境,1.4.1 集成开发环境概览,解决方案:一个容器,用于包含多个项目。 项目:一组源文件以及相关元数据的集合。 解决方案资源管理器:是对解决方案所包含的项目和各种文件进行管理的工具。 通过解决方案资源管理器可 以向解决方案中添加新项目 、编辑已有项目,也可以向 项目中添加新项或编辑已有 项。,1.4.2 解

温馨提示

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

评论

0/150

提交评论