《第1章 程序设计基础知识.ppt》由会员分享,可在线阅读,更多相关《第1章 程序设计基础知识.ppt(41页珍藏版)》请在优知文库上搜索。
1、第第1 1章程序设计基础知识章程序设计基础知识程序设计基础知识第1章第第1 1章程序设计基础知识章程序设计基础知识1.1 程序设计程序设计1.3 程序设计语言程序设计语言1.4 程序开发环境程序开发环境1.2 程序设计方法程序设计方法第第1 1章程序设计基础知识章程序设计基础知识1.1 1.1 程序设计程序设计第第1 1章程序设计基础知识章程序设计基础知识利用利用计算机解决问题计算机解决问题使用程序设计语言将问题的求解过程描述成计算机能够识别的方式程序程序设计程序设计先从问题描述开始,经过分析问题确定解决方案、设计解决问题的算法、依据算法编写程序、测试、运行维护等一系列过程,最终得到解决问题的
2、计算机程序整个过程第第1 1章程序设计基础知识章程序设计基础知识(1)分析问题分析问题明确要解决什么问题明确要解决什么问题(2)设计算法设计算法数据结构和算法数据结构和算法(3)编写程序编写程序将算法用程序设计语言描述出来将算法用程序设计语言描述出来(4)调试运行调试运行语法错误、语义错误、异常语法错误、语义错误、异常 1.1.1 1.1.1 程序设计步骤程序设计步骤第第1 1章程序设计基础知识章程序设计基础知识算法就是解决问题所需的操作步骤的集合。算法就是解决问题所需的操作步骤的集合。1.1.2 1.1.2 算法算法求最大数的算法:求最大数的算法:(1)(1)将第将第1 1个数赋值给个数赋值
3、给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的值。的值。第第1 1章程序设计基础知识章程序设计基础知识1.1.3 1.1.3 数据结构数据结构数据:数据:用来描述现实世界的数字、字符、图像、声音以及能够输入到计算机中,并能被计算机处理的符号集合。例如,整数、图书馆中书目。数据元素:数据元素:数据集
4、合中的个体,是数据的基本单位数据项:数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小标识单位。数据对象:数据对象:具有相同性质的数据元素的集合,是数据的一个子集。第第1 1章程序设计基础知识章程序设计基础知识数据结构:数据结构:相互之间存在一种或多种特定关系的数据元素的集合。数据的逻辑结构:数据的逻辑结构:数据元素之间存在的固有的逻辑关系。常简称为数据结构。(1)集合集合(2)线性结构线性结构(3)树形结构树形结构(4)图状结构图状结构第第1 1章程序设计基础知识章程序设计基础知识(1)集合:结构中的数据元素之间除了“同属于一个集合”的关系以外,没有其它关系。草原中的草草
5、原中的草第第1 1章程序设计基础知识章程序设计基础知识(2)线性结构:结构中的数据元素之间存在“一对一”的关系。第第1 1章程序设计基础知识章程序设计基础知识(3)树形结构:结构中的数据元素之间存在“一对多”的关系。第第1 1章程序设计基础知识章程序设计基础知识(4)图状结构:结构中的数据元素之间存在“多对多”的关系。第第1 1章程序设计基础知识章程序设计基础知识数据的存储结构:数据的存储结构:数据元素及其关系在计算机内的表示(1)顺序存储结构:顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。(2)链式存储结构:链
6、式存储结构:用指针或引用表达数据元素之间的逻辑关系。(3)索引存储结构:索引存储结构:在存储数据元素的同时,还建立附加的索引表。通过索引表,可以找到存储数据元素的节点(4)散列存储结构:散列存储结构:根据散列函数和处理冲突的方法确定数据元素的存储位置。第第1 1章程序设计基础知识章程序设计基础知识数据的操作:数据的操作:在数据的逻辑结构上定义的操作算法。例如,插入、删除、检索等。逻辑结构和存储结构的关系:u是一个事物的两个方面,相辅相成,不可分割;u一种逻辑结构可以映射为多种存储结构。算法与数据结构的关系:u算法由各种数据及其操作构成,算法构成依赖于数据结构;u算法设计和选择制约数据结构的确定
7、;u对数据结构所能施加的操作需要相应的算法。第第1 1章程序设计基础知识章程序设计基础知识1.21.2程序设计方法程序设计方法结构化程序设计面向对象程序设计函数式程序设计事件驱动程序设计。第第1 1章程序设计基础知识章程序设计基础知识基本思想:基本思想:采用采用“自顶向下,逐步求精自顶向下,逐步求精”的程的程序设计方法和序设计方法和“单入口单出口单入口单出口”的控制结构。的控制结构。1.2.1 1.2.1 结构化程序设计结构化程序设计强调先考虑总体,再考虑细节。经过对问题的逐步强调先考虑总体,再考虑细节。经过对问题的逐步细化,将问题分解为基本程序模块,从而将原来较细化,将问题分解为基本程序模块
8、,从而将原来较为复杂的问题化简为一系列简单的模块。为复杂的问题化简为一系列简单的模块。任何复杂的程序都由顺序、选择和循环三种基本程任何复杂的程序都由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,从而形成一个单入口序结构通过组合、嵌套构成,从而形成一个单入口单出口的程序。单出口的程序。第第1 1章程序设计基础知识章程序设计基础知识开发一个银行系统:开发一个银行系统:该系统能够对账户进行存款、取款和转账操作。进行存款操作时,需要提供“账号”、“存款日期”、“存入金额”等参数信息。进行取款操作时,需要。long accountID=Convert.ToInt64(Console.ReadLin
9、e();double amount=Convert.ToDouble(Console.ReadLine();DateTime date=DateTime.Today;double balance=Acount.MakeDeposit(accountID,date,amount);Console.WriteLine(你存入了0元,账户上现有余额1元,amount,balance);第第1 1章程序设计基础知识章程序设计基础知识有现金账户有现金账户还要有基金账户!还要有基金账户!if(acountType=现金)else 还要有支票账户!还要有支票账户!第第1 1章程序设计基础知识章程序设计基础知
10、识基本思想:基本思想:以人类的自然思维方式建立问题域以人类的自然思维方式建立问题域模型。以抽象、封装、继承、多态等方式认识模型。以抽象、封装、继承、多态等方式认识问题和解决问题。强调以现实世界中的客观事问题和解决问题。强调以现实世界中的客观事物为中心,而不是以功能为中心。用对象来描物为中心,而不是以功能为中心。用对象来描述现实世界中的客观事物,使得解空间与问题述现实世界中的客观事物,使得解空间与问题空间具有自然的对应关系,有利于对复杂问题空间具有自然的对应关系,有利于对复杂问题给出解决方案。给出解决方案。1.2.2 1.2.2 面向对象程序设计面向对象程序设计第第1 1章程序设计基础知识章程序
11、设计基础知识开发一个银行系统:开发一个银行系统:每个账户具有账号、账户类型、明细等,可以对账户进行存款、取款和转账操作abstract class Account protected long acountID;protected double balance;protected List items=null;public double MakeDeposit();public double WithDraw();public double Transform();第第1 1章程序设计基础知识章程序设计基础知识有现金账户有现金账户还要有基金账户!还要有基金账户!派生出CashAcount、C
12、hequeAccount与FundAccount类,分别表示现金账户、支票账户和基金账户。还要有支票账户!还要有支票账户!第第1 1章程序设计基础知识章程序设计基础知识围绕函数进行,计算过程体现为一系列的函数围绕函数进行,计算过程体现为一系列的函数应用。应用。函数式程序由一些原始函数、定义函数和函数函数式程序由一些原始函数、定义函数和函数型组成的函数表达式。型组成的函数表达式。1.2.3 1.2.3 函数式程序设计函数式程序设计LISPLISP是一种最早的函数式程序设计语言,在人工智是一种最早的函数式程序设计语言,在人工智能领域应用较多。能领域应用较多。第第1 1章程序设计基础知识章程序设计基
13、础知识 编写一个函数,它能够生成累加器,即这个函编写一个函数,它能够生成累加器,即这个函数接受一个参数数接受一个参数n n,然后返回另一个函数(这,然后返回另一个函数(这个函数接受参数个函数接受参数i i,然后返回,然后返回n n加加i i的值)的值)LispLisp的写法:的写法:(defun foo(n)(lambda(i)(incf n i)(defun foo(n)(lambda(i)(incf n i)JavascriptJavascript的写法:的写法:function foo(n)function foo(n)return function(i)return n+=i retu
14、rn function(i)return n+=i 第第1 1章程序设计基础知识章程序设计基础知识事件:事件:是一个对象能够识别的一个动作,比如是一个对象能够识别的一个动作,比如鼠标事件、键盘事件等。鼠标事件、键盘事件等。1.2.4 1.2.4 事件驱动程序设计事件驱动程序设计事件驱动程序设计主要应用在事件驱动程序设计主要应用在WindowsWindows应用程序上应用程序上WindowsWindows程序以一种非顺序的方式运行。运行后,程序以一种非顺序的方式运行。运行后,就进入等待状态,等待事件的发生。一旦有事件发就进入等待状态,等待事件的发生。一旦有事件发生,程序就被激活并运行相应的事件处
15、理过程生,程序就被激活并运行相应的事件处理过程第第1 1章程序设计基础知识章程序设计基础知识1.31.3程序设计语言程序设计语言第第1 1章程序设计基础知识章程序设计基础知识1.3.1 1.3.1 语言分类语言分类机器语言:机器语言:是用二进制代码表示的机器指令的集合,是计算机能够直接识别和执行的一种语言,是一种面向机器的语言。内存占用少、直接执行和速度快;通用性较差,不易阅读和记忆,编程工作量大,难以维护。10100000 00000001 0000000000000010 00000110 00000010 0000000010100010 00000011 000000001111010
16、0第第1 1章程序设计基础知识章程序设计基础知识1.3.1 1.3.1 语言分类语言分类汇编语言:汇编语言:用助记符表示的面向机器的计算机语言MOV AL,XADD AL,YMOV SUM,ALHLT第第1 1章程序设计基础知识章程序设计基础知识1.3.1 1.3.1 语言分类语言分类高级语言:高级语言:与自然语言相近并为计算机所接受和执行的计算机语言int sum;sum=x+y;第第1 1章程序设计基础知识章程序设计基础知识翻译有两种方式:编译和解释。翻译有两种方式:编译和解释。u编译是指将高级语言程序整个翻译成用机器语言编译是指将高级语言程序整个翻译成用机器语言表示的与之等价的机器语言程序表示的与之等价的机器语言程序(称为目标程序称为目标程序),然后再执行该目标程序,从而完成高级语言程序所然后再执行该目标程序,从而完成高级语言程序所要完成的任务;要完成的任务;u解释是指对高级语言作逐句输入、逐句翻译,并解释是指对高级语言作逐句输入、逐句翻译,并逐句执行,当翻译完成时程序也执行完毕,这种翻逐句执行,当翻译完成时程序也执行完毕,这种翻译方式并不产生目标程序。译方式并不产生目标程序。第