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