电气1601第一小组,什么是程序_第1页
电气1601第一小组,什么是程序_第2页
电气1601第一小组,什么是程序_第3页
电气1601第一小组,什么是程序_第4页
电气1601第一小组,什么是程序_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6讲讲 程序与递归:组合程序与递归:组合-抽象与构造抽象与构造-程序是实现系统复杂功能的一种重要手段程序是实现系统复杂功能的一种重要手段-程序的本质是组合、抽象与构造程序的本质是组合、抽象与构造-构造的基本手段是递归,一种表达相似性对象及动作构造的基本手段是递归,一种表达相似性对象及动作的无限性构造的方法的无限性构造的方法程序与递归:组合程序与递归:组合-抽象与构造抽象与构造1. 程序的作用和本质程序的作用和本质?程序的作用和本质程序的作用和本质-计算系统与程序计算系统与程序-程序:组合、抽象与构造程序:组合、抽象与构造首先,设计并实现系统可以执行的基本动作首先,设计并实现系统可以执行的基

2、本动作(可实现的可实现的),例如,例如“与与”动作动作“或或”动作动作“非非”动作动作“异或异或”动作动作那么,复杂的动作呢?那么,复杂的动作呢?系统需要提供复杂的动作系统需要提供复杂的动作复杂的动作千变万化复杂的动作千变万化复杂的动作随使用者使用目的的不同而变化复杂的动作随使用者使用目的的不同而变化复杂的动作是通过对基本动作进行各种组合来实现的复杂的动作是通过对基本动作进行各种组合来实现的1. 程序的作用和本质程序的作用和本质1.1 怎样设计并实现一个计算系统怎样设计并实现一个计算系统?如何设计实现一个基本计算系统?如何设计实现一个基本计算系统?已知的基本事实是已知的基本事实是:“加减乘除运

3、算都可转换为加法运算来实现加减乘除运算都可转换为加法运算来实现”“加法运算又可以转换为逻辑运算来实现加法运算又可以转换为逻辑运算来实现”“基本的逻辑运算与、或、非、异或等可通基本的逻辑运算与、或、非、异或等可通过门电路予以实现过门电路予以实现” 则基本计算系统可以如下实现则基本计算系统可以如下实现 指令指令:控制基本动作执行的命令:控制基本动作执行的命令“与与”动动作作“或或”动作动作 “非非”动作动作ANDOR NOT系统系统(A AND B) AND C) OR (NOT C)复杂动作复杂动作拆解开拆解开X= A AND B X= X AND CY= NOT C X= X OR Y程序程序

4、:由基本动作指令构造的,由基本动作指令构造的,若干指令的一个组合或一个执行若干指令的一个组合或一个执行序列,用以实现复杂动作序列,用以实现复杂动作如何设计实现一个基本计算系统?如何设计实现一个基本计算系统?1.程序的作用和本质程序的作用和本质1.2 什么是程序什么是程序?指令指令:控制基本动作执行的命令:控制基本动作执行的命令“与与”动动作作“或或”动作动作 “非非”动作动作ANDOR NOT系统系统(A AND B) AND C) OR (NOT C)复杂动作复杂动作程序执程序执行机构行机构自动解释程序自动解释程序中的各种组合中的各种组合, 并按次序调用并按次序调用指令指令(基本动基本动作作

5、)予以执行予以执行程序程序:由基本动作指令构造的,由基本动作指令构造的,若干指令的一个组合或一个执行若干指令的一个组合或一个执行序列,用以实现复杂动作序列,用以实现复杂动作如何设计实现一个基本的计算系统?如何设计实现一个基本的计算系统?1.程序的作用和本质程序的作用和本质1.3 程序能否自动执行程序能否自动执行?基本动作基本动作 对基本动作的对基本动作的 抽象与控制抽象与控制“与与”动作动作 AND “或或”动作动作 OR“非非”动作动作 NOT复杂动作复杂动作 = 基本动作的各种方式的组合基本动作的各种方式的组合(Ai XOR Bi) XOR Ci(Ai XOR Bi) AND Ci) OR

6、 (Ai AND Bi) 解释这种组合解释这种组合, 并并按次序调用基本动按次序调用基本动作予以执行作予以执行程序程序执行执行机构机构程序程序指令指令计算系统计算系统 = 基本动作 + 指令 + 程序执行机构指令指令 = 对可执行基本动作的抽象,即控制基本动作执行的命令程序程序 = 基本动作指令的一个组合或执行序列, 用以实现复杂的动作程序执行机构程序执行机构 = 负责解释程序即解释指令之间组合,并按次序调用指令即调用基本动作执行的机构基本动作基本动作1.程序的作用和本质程序的作用和本质1.4 计算系统与程序计算系统与程序?基本动作基本动作 对基本动作的对基本动作的 抽象与控制抽象与控制“加加

7、”动作动作 +“减减”动作动作 -“乘乘”动作动作 x“除除”动作动作 复杂动作复杂动作 = 基本动作的各种方式的组合基本动作的各种方式的组合(V1 + V2) x (V3 V4) V5(V1 (V2 x (V3 + V4) - ( V5 x V6) 解释这种组合解释这种组合, 并并按次序调用基本动按次序调用基本动作予以执行作予以执行程序程序程序程序执行执行机构机构指指令令一种较高抽象层次的一种较高抽象层次的系系统统抽象抽象抽象抽象:将经常使将经常使用的、可用的、可由低层次由低层次系统实现系统实现的一些复的一些复杂动作,杂动作,进行进行命命名名,以,以作为高层作为高层次系统的次系统的指令被使指

8、令被使用用一种较低抽象层一种较低抽象层次的次的系统系统1.程序的作用和本质程序的作用和本质1.5 程序:组合程序:组合-抽象抽象-构造构造?程序构造示例程序构造示例(I)-运算组合式的表达运算组合式的表达-组合、抽象与构造组合、抽象与构造-命名计算对象命名计算对象和和构造中使用名字构造中使用名字及及计算中以计算对象替换名字计算中以计算对象替换名字程序与递归:组合程序与递归:组合-抽象与构造抽象与构造2. 程序构造示例程序构造示例(I)2. 程序构造示例程序构造示例(I)2.1 运算组合式运算组合式?(100 + 205) 由数值,到基本运算组合式由数值,到基本运算组合式 中缀表示法中缀表示法,

9、 用运算符用运算符(即前述的指令即前述的指令)将两个数值组合起来,运算符在中间将两个数值组合起来,运算符在中间(+ 100 205) 100205实际的数值实际的数值前缀表示法前缀表示法, 用运算符用运算符(即前述的指令即前述的指令)将两个数值组合起来,运算符在前面将两个数值组合起来,运算符在前面将运算符表示的操作应用于后面的一组数值上,求出结果将运算符表示的操作应用于后面的一组数值上,求出结果(+ 100 205 300 40051 304) 一个运算符可以表示连加,一个运算符可以表示连加,连减等情况,连减等情况,(+ 100 205) (- 200 50) (* 200 5) (* 20

10、5 4 2) (- 20 5 4 2) (+ 20 5 4 2) 由数值,到基本运算组合式由数值,到基本运算组合式 2. 程序构造示例程序构造示例(I)2.1 运算组合式运算组合式?运算组合式的运算组合式的“嵌套嵌套”及其计算过程及其计算过程 (+ 100 205) (+ (+ 60 40) (- 305 100) (* (* 3 (+ (* 2 4) (+ 3 5) (+ (- 10 7) 6) 计算过程计算过程(* (* 3 (+ (* 2 4) (+ 3 5) (+ (- 10 7) 6) (* (* 3 (+ 8 8) (+ 3 6) (* (* 3 16) 9 ) (* 48 9 )

11、 4322. 程序构造示例程序构造示例(I)2.2 如何构造运算组合式如何构造运算组合式-组合组合(define height 2) (+ (+ height 40) (- 305 height) 名字的定义:定义名字名字的定义:定义名字height与与2关联关联, 以后可以用以后可以用height来表示来表示2一种类型的名字:数值型的名字一种类型的名字:数值型的名字(+ (* 50 height) (- 100 height) 名字的使用名字的使用命名计算对象命名计算对象和和构造中使用名字构造中使用名字及及计算中以计算对象替换名字计算中以计算对象替换名字2. 程序构造示例程序构造示例(I)2

12、.3 如何用名字简化运算组合式的构造如何用名字简化运算组合式的构造?-抽象抽象(define pi 3.14159) (define radius 10) (* pi (* radius radius)(define circumference (* 2 pi radius)(* circmference 20)命名计算对象命名计算对象和和构造中使用名字构造中使用名字及及计算中以计算对象替换名字计算中以计算对象替换名字2. 程序构造示例程序构造示例(I)2.3 如何用名字简化运算组合式的构造如何用名字简化运算组合式的构造?-抽象抽象程序构造示例程序构造示例(II)-组合、抽象与构造组合、抽象与

13、构造-命名新运算符命名新运算符和和构造中使用新运构造中使用新运算符算符及及执行中以过程替换新运算符执行中以过程替换新运算符-带有条件的运算组合式带有条件的运算组合式程序与递归:组合程序与递归:组合-抽象与构造抽象与构造3. 程序构造示例程序构造示例(II)(define (square x) (* x x) 名字的定义:定义名字名字的定义:定义名字square为一个为一个新的运算,即过程或称函数新的运算,即过程或称函数另一种类型的名字:运算符型的名字另一种类型的名字:运算符型的名字名字的使用名字的使用新运算符,即过程名或函数名新运算符,即过程名或函数名形式参数,形式参数,使用时将被实使用时将被

14、实际参数所替代际参数所替代过程体,用于表示新运算符的具体计过程体,用于表示新运算符的具体计算规则,其为关于形式参数算规则,其为关于形式参数x的一种的一种计算组合。计算组合。(square 3)(square 6) 命名新运算符命名新运算符和和构造中使用新运算符构造中使用新运算符及及执行中以过程替换新运算符执行中以过程替换新运算符3. 程序构造示例程序构造示例(II)3.1 如何用名字简化运算组合式的构造如何用名字简化运算组合式的构造?-抽象抽象名字的使用名字的使用(square 10)(square (+ 2 8)(square (square 3)(square (square (+ 2 5

15、) (define (SumOfSquare x y) (+ (square x) (square y) (SumOfSquare 3 4)(+ (SumOfSquare 3 4) height)命名新运算符命名新运算符和和构造中使用新运算符构造中使用新运算符及及执行中以过程替换新运算符执行中以过程替换新运算符3. 程序构造示例程序构造示例(II)3.2 程序构造程序构造组合与抽象组合与抽象(define (NewProc a) (SumOfSquare (+ a 1) (* a 2) (NewProc 3)(NewProc (+ 3 1)命名新运算符命名新运算符和和构造中使用新运算符构造中使

16、用新运算符及及执行中以过程替换新运算符执行中以过程替换新运算符3. 程序构造示例程序构造示例(II)3.2 程序构造程序构造组合与抽象组合与抽象(NewProc (+ 3 1)的两种计算过程示意的两种计算过程示意(NewProc (+ 3 1)(NewProc 4) (SumOfSquare (+ 4 1) (* 4 2)(SumOfSquare 5 8)(+ (Square 5) (Square 8)(+ (* 5 5) (* 8 8)(+ 25 64)89先求值,再代入先求值,再代入含名字的运算组合式的计算方法:求值、代入、计算含名字的运算组合式的计算方法:求值、代入、计算命名新运算符命名

17、新运算符和和构造中使用新运算符构造中使用新运算符及及执行中以过程替换新运算符执行中以过程替换新运算符3. 程序构造示例程序构造示例(II)3.3 构造程序的执行构造程序的执行求值、代入与计算求值、代入与计算(NewProc (+ 3 1)的两种计算过程示意的两种计算过程示意(NewProc (+ 3 1)(SumOfSquare(+ (+ 3 1) 1) (* (+ 3 1) 2)(+ (Square (+ (+ 3 1) 1) (Square (* (+ 3 1) 2)89(+ (* (+ (+ 3 1) 1) (+ (+ 3 1) 1) (* (* (+ 3 1) 2) (* (+ 3 1) 2)(+ (* (+ 4 1) (+ 4 1) (* (* 4 2)

温馨提示

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

评论

0/150

提交评论