




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6讲程序与递归:组合-抽象与构造,-程序是实现系统复杂功能的一种重要手段-程序的本质是组合、抽象与构造-构造的基本手段是递归,一种表达相似性对象及动作的无限性构造的方法,程序与递归:组合-抽象与构造1.程序的作用和本质?,程序的作用和本质-计算系统与程序-程序:组合、抽象与构造,首先,设计并实现系统可以执行的基本动作(可实现的),例如“与”动作“或”动作“非”动作“异或”动作那么,复杂的动作呢?系统需要提供复杂的动作复杂的动作千变万化复杂的动作随使用者使用目的的不同而变化复杂的动作是通过对基本动作进行各种组合来实现的,1.程序的作用和本质1.1怎样设计并实现一个计算系统?,如何设计实现一个基本计算系统?,已知的基本事实是:“加减乘除运算都可转换为加法运算来实现”“加法运算又可以转换为逻辑运算来实现”“基本的逻辑运算与、或、非、异或等可通过门电路予以实现”则基本计算系统可以如下实现,指令:控制基本动作执行的命令,“与”动作“或”动作“非”动作,ANDORNOT,系统,(AANDB)ANDC)OR(NOTC),复杂动作,拆解开,X=AANDBX=XANDCY=NOTCX=XORY,程序:由基本动作指令构造的,若干指令的一个组合或一个执行序列,用以实现复杂动作,如何设计实现一个基本计算系统?,1.程序的作用和本质1.2什么是程序?,指令:控制基本动作执行的命令,“与”动作“或”动作“非”动作,ANDORNOT,系统,(AANDB)ANDC)OR(NOTC),复杂动作,程序执行机构,自动解释程序中的各种组合,并按次序调用指令(基本动作)予以执行,程序:由基本动作指令构造的,若干指令的一个组合或一个执行序列,用以实现复杂动作,如何设计实现一个基本的计算系统?,1.程序的作用和本质1.3程序能否自动执行?,基本动作对基本动作的抽象与控制“与”动作AND“或”动作OR“非”动作NOT,复杂动作=基本动作的各种方式的组合(AiXORBi)XORCi(AiXORBi)ANDCi)OR(AiANDBi),解释这种组合,并按次序调用基本动作予以执行,程序执行机构,程序,指令,计算系统=基本动作+指令+程序执行机构指令=对可执行基本动作的抽象,即控制基本动作执行的命令程序=基本动作指令的一个组合或执行序列,用以实现复杂的动作程序执行机构=负责解释程序即解释指令之间组合,并按次序调用指令即调用基本动作执行的机构,基本动作,1.程序的作用和本质1.4计算系统与程序?,基本动作对基本动作的抽象与控制“加”动作+“减”动作-“乘”动作x“除”动作,复杂动作=基本动作的各种方式的组合(V1+V2)x(V3V4)V5(V1(V2x(V3+V4)-(V5xV6),解释这种组合,并按次序调用基本动作予以执行,程序,程序执行机构,指令,一种较高抽象层次的系统,抽象,抽象:将经常使用的、可由低层次系统实现的一些复杂动作,进行命名,以作为高层次系统的指令被使用,一种较低抽象层次的系统,1.程序的作用和本质1.5程序:组合-抽象-构造?,程序构造示例(I)-运算组合式的表达-组合、抽象与构造-命名计算对象和构造中使用名字及计算中以计算对象替换名字,程序与递归:组合-抽象与构造2.程序构造示例(I),2.程序构造示例(I)2.1运算组合式?,(100+205),由数值,到基本运算组合式,中缀表示法,用运算符(即前述的指令)将两个数值组合起来,运算符在中间,(+100205),100,205,实际的数值,前缀表示法,用运算符(即前述的指令)将两个数值组合起来,运算符在前面,将运算符表示的操作应用于后面的一组数值上,求出结果,(+100205),(-20050),(*2005),(*20542),(-20542),(+20542),由数值,到基本运算组合式,2.程序构造示例(I)2.1运算组合式?,运算组合式的“嵌套”及其计算过程,(+100205),(+(+6040)(-305100),(*(*3(+(*24)(+35)(+(-107)6),计算过程,(*(*3(+(*24)(+35)(+(-107)6),(*(*3(+88)(+36),(*(*316)9),(*489),432,2.程序构造示例(I)2.2如何构造运算组合式-组合,(defineheight2),(+(+height40)(-305height),名字的定义:定义名字height与2关联,以后可以用height来表示2一种类型的名字:数值型的名字,(+(*50height)(-100height),名字的使用,命名计算对象和构造中使用名字及计算中以计算对象替换名字,2.程序构造示例(I)2.3如何用名字简化运算组合式的构造?-抽象,(definepi3.14159),(defineradius10),(*pi(*radiusradius),(definecircumference(*2piradius),(*circmference20),命名计算对象和构造中使用名字及计算中以计算对象替换名字,2.程序构造示例(I)2.3如何用名字简化运算组合式的构造?-抽象,程序构造示例(II)-组合、抽象与构造-命名新运算符和构造中使用新运算符及执行中以过程替换新运算符-带有条件的运算组合式,程序与递归:组合-抽象与构造3.程序构造示例(II),(define(squarex)(*xx),名字的定义:定义名字square为一个新的运算,即过程或称函数另一种类型的名字:运算符型的名字,名字的使用,新运算符,即过程名或函数名,形式参数,使用时将被实际参数所替代,过程体,用于表示新运算符的具体计算规则,其为关于形式参数x的一种计算组合。,(square3)(square6),x2,命名新运算符和构造中使用新运算符及执行中以过程替换新运算符,3.程序构造示例(II)3.1如何用名字简化运算组合式的构造?-抽象,名字的使用,(square10)(square(+28)(square(square3)(square(square(+25),(define(SumOfSquarexy)(+(squarex)(squarey),(SumOfSquare34),(+(SumOfSquare34)height),x2+y2,命名新运算符和构造中使用新运算符及执行中以过程替换新运算符,3.程序构造示例(II)3.2程序构造组合与抽象,(define(NewProca)(SumOfSquare(+a1)(*a2),(NewProc3),(NewProc(+31),(a+1)2+(a*2)2,命名新运算符和构造中使用新运算符及执行中以过程替换新运算符,3.程序构造示例(II)3.2程序构造组合与抽象,(NewProc(+31)的两种计算过程示意,(NewProc(+31),(NewProc4),(SumOfSquare(+41)(*42),(SumOfSquare58),(+(Square5)(Square8),(+(*55)(*88),(+2564),89,先求值,再代入,含名字的运算组合式的计算方法:求值、代入、计算,命名新运算符和构造中使用新运算符及执行中以过程替换新运算符,3.程序构造示例(II)3.3构造程序的执行求值、代入与计算,(NewProc(+31)的两种计算过程示意,(NewProc(+31),(SumOfSquare(+(+31)1)(*(+31)2),(+(Square(+(+31)1)(Square(*(+31)2),89,(+(*(+(+31)1)(+(+31)1)(*(*(+31)2)(*(+31)2),(+(*(+41)(+41)(*(*42)(*42),(+(*55)(*88),(+2564),先代入,后求值,代入阶段,求值阶段,含名字的运算组合式的计算方法:代入、求值、计算,命名新运算符和构造中使用新运算符及执行中以过程替换新运算符,3.程序构造示例(II)3.3构造程序的执行求值、代入与计算,(cond()().(),(define(absx)(cond(x0)x)(=x0)0)(x0)(-(Squarex)x)(=x0)0)(=1时,等比数列递推公式a0=5an=an-120当n=1时,第1项(或前K项)的值是已知的递推基础;由第n项或前n项计算第n+1项递推规则/递推步骤;由前向后,可依次计算每一项,等差数列的产生a0=5a1=a0+3=8a2=a1+3=11a3=a2+3=14a4=a3+3=17,28,数学中的数学归纳法,数学归纳法是一种用于证明与自然数有关的命题正确性的证明方法,该方法能用有限的步骤解决无穷对象的论证问题。由归纳基础和归纳步骤构成:假定对一切正整数n,有一个命题P(n),若以下证明成立,则P(n)为真。(1)归纳基础:证明P(1)为真;(2)归纳步骤:证明对任意的i,若P(i)为真,则P(i+1)也为真。,证明:(1)归纳基础:当n=1时,等式成立即1=1;(2)归纳步骤:设对任意k,P(k)成立,即1+3+5+(2K-1)=K2.则P(K+1)=1+3+5+(2K-1)+(2(K+1)-1)=K2+2K+1=(K+1)2,则当P(k)成立时P(K+1)也成立,根据数学归纳法该命题得证。证毕。,求证命题P(n)“从1开始连续n个奇数之和是n的平方”即公式:1+3+5+(2n-1)=n2成立。,4.递归的概念4.3如何表达延续不断却相似或重复的事物或过程?,2019/12/14,29,可编辑,什么是递归?,递归的思想源于数学的递推式和数学归纳法。递归是一种表达相似性对象及动作的无限性构造的方法。递归是一种关于抽象的表达方法-用递归定义无限的相似事物递归是一种算法或程序的构造技术-自身调用自身,高阶调用低阶,构造无限的计算步骤递归是一种典型的计算过程-由后向前代入,再由前向后计算递归递归基础:定义、构造和计算的起点,直接给出;递归步骤:由前n项或第n项定义第n+1项;由低阶f(k)且kcountermax-count)product)(countermax-count)product)(n1)(+(fib(-n1)(fib(-n2),示例:求Fibonacci数列的算法或程序-递归,7.运用递归和迭代7.6递归与迭代的比较?,递归定义,递归程序,递归程序的执行过程,54,(define(fibn)(fib-iter10n)(define(fib-iterabcount)(cond(=count0)b)(count0)(fib-iter(+ab)a(-count1),示例:求Fibonacci数列的算法或程序-迭代,7.运用递归和迭代7.6递归与迭代的比较?,递归定义,迭代程序,迭代程序的执行过程,55,递归是计算技术的典型特征,是以有限的表达方式来表达无限对象实例或无限计算步骤的一种经典的计算思维递归覆盖了重复、迭代和递归,递归是最典型的构造手段递归函数是可计算函数的精确的数学描述-计算理论的重要研究内容;(后面将介绍的)图灵机本质上也是递归:图灵可计算函数与递归函数等价,凡可计算的函数都是一般递归函数-丘奇-图灵命题-计算理论的重要研究内容;,关于递归的进一步学习,7.运用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市安全生产事故应急预案
- 绿色食品的全景解析
- 绿色旅游之路
- 2025届山西省高三下学期一模物理试题(适应性测试)【含答案】
- 2025商业借款合同范本「」
- 动漫游戏项目商业计划书范文
- 2025关于餐馆雇佣合同的范本
- 中医辩病辩证依据
- 中国数控玻璃加工机市场现状研究分析与发展前景预测报告
- 2025陕西省家庭居室装饰装修工程施工合同(I)
- 边缘计算与5G融合技术研究-全面剖析
- 浙江省台州市2025届高三第二次教学质量评估化学试题及答案(台州二模)
- 磁分离技术在天然气管道黑粉处理中应用的研究与效果分析
- 城市园林绿化养护管理服务投标方案(技术方案)
- 2025至2030年中国单级悬臂式化工离心泵行业投资前景及策略咨询报告
- 2025年广东省深圳市福田区5校中考一模历史试题(原卷版+解析版)
- 【初中地理】七年级地理下册全册期末总复习(课件)-2024-2025学年七年级地理课件(人教版2024年)
- 2025年无锡南洋职业技术学院单招职业技能测试题库含答案
- 2025年东北三省三校高三一模高考英语试卷试题(含答案详解)
- (高清版)DB11∕T2280-2024城市韧性评价导则
- 2025年内蒙古民族幼儿师范高等专科学校单招职业适应性测试题库新版
评论
0/150
提交评论