1、计算机导论高级程序设计语言提纲高级程序设计语言递归与迭代提纲高级程序设计语言高级程序设计语言递归与迭代高级程序设计语言第一代机器语言:第一代机器语言:机器语言是由二进制 0、1 代码指令构成,不同的 CPU 具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。高级程序设计语言第二代汇编语言:第二代汇编语言:汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。从软件工
2、程角度来看,只有在高级语言不能满足设计要求,或不具备支持某种特定功能的技术性能(如特殊的输入输出)时,汇编语言才被使用。高级程序设计语言第三代高级语言第三代高级语言是面向用户用户的、基本上独立于计算机种类和结独立于计算机种类和结构构的语言。高级程序设计语言高级程序设计语言的高级程序设计语言的优点:优点:形式形式上接近于算术语言和自然语言;概念概念上接近于人们通常使用的概念;高级语言的一个一个命令可以代替多条可以代替多条汇编语言的指令;高级程序设计语言高级程序设计语言的高级程序设计语言的分类分类(应用角度应用角度):):通用语言专用语言高级程序设计语言高级程序设计语言的分类(应用角度):高级程序
3、设计语言的分类(应用角度):通用语言通用语言它历史悠久,流传很广,有大量的已开发的软件库,拥有众多的用户,为人们所熟悉和接受。属于这类语言的有 FORTRAN、COBOL、BASIC、PASCAL、C、C+、Java、C#等。高级程序设计语言高级程序设计语言的分类(应用角度):高级程序设计语言的分类(应用角度):专用语言专用语言是为某种特殊应用而专门设计的语言,通常具有特殊的语法形式。一般来说,这种语言的应用范围狭窄,移植性和可维护性不如结构化程序设计语言。随着时间的发展,被使用的专业语言已有数百种,应用比较广泛的有 APL 语言、Forth 语言、LISP 语言、IRS语言。高级程序设计语言
4、高级程序设计语言的高级程序设计语言的分类分类(描述角度描述角度):):面向过程语言面向对象语言高级程序设计语言高级程序设计语言的分类(描述角度):高级程序设计语言的分类(描述角度):面向过程语言面向过程语言以“数据结构+算法”程序设计范式构成的程序设计语言,称为面向过程语言。高级程序设计语言高级程序设计语言的分类(描述角度):高级程序设计语言的分类(描述角度):面向对象语言面向对象语言以“对象+消息”程序设计范式构成的程序设计语言,称为面向对象语言。高级程序设计语言程序表达的三种机制基本动作及其表达(指令指令)组合组合组合简单元素以构造出复杂的元素抽象抽象为复合元素命名,进而可以将复合元素当做
5、基本元素去使用。高级程序设计语言在高级语言层面基本动作及其表达(指令指令)就是基本语句包括各类运算符及表达式+、-、*、/、=、=、!=、&、|、!高级程序设计语言在高级语言层面组合组合组合语句形成函数组合函数和数据形成类高级程序设计语言在高级语言层面抽象抽象为函数和类命名,进而可以将函数和对象当做基本元素去使用。高级程序设计语言程序设计语言的程序设计语言的基本成分:基本成分:数据数据成分,用以描述程序中所涉及的数据。运算运算成分,用以描述程序中所包含的运算。控制控制成分,用以表达程序中的控制构造。传输传输成分,用以表达程序中数据的传输。高级程序设计语言高级程序设计语言高级程序设计语言高级程序
6、设计语言高级程序设计语言程序设计的程序设计的基本思想基本思想:模块化模块化大而复杂大而复杂l基本思想:基本思想:把程序分成若干个模块,每个模块完成一个子功能,把程序分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。将多个模块组织起来实现整个系统的功能。l设计模块的重点:设计模块的重点:清楚地定义每个模块的功能和输入清楚地定义每个模块的功能和输入/输出参数,而模输出参数,而模块的实现细节隐含在各自的模块之中。模块间是调用块的实现细节隐含在各自的模块之中。模块间是调用关系。关系。小而简单小而简单高级程序设计语言程序设计的程序设计的基本思想基本思想:执行并反馈执行并反馈模
7、块模块A模块模块B调用1、执行规定的功能、执行规定的功能2、出错处理、出错处理出错原因完成状态高级程序设计语言程序设计的程序设计的基本思想基本思想:消除重复功能消除重复功能AC1DBC2DAC1BC2D提纲高级程序设计语言递归与迭代递归与迭代递归与迭代迭代结构(迭代结构(iterative structureiterative structure)在这种结构中,一组指令以循环方式重复执行;递归与迭代迭代结构示例:编写程序求n!。递归与迭代迭代结构示例:编写程序求n!。递归与迭代递归结构(递归结构(recursive structurerecursive structure)递归与迭代递归的基本
8、思想递归用程序表达出来,确定了三个要素:递+结束条件+归。递归与迭代递归的基本思想递归用程序表达出来,确定了三个要素:递+结束条件+归。递归与迭代递归的基本思想递归用程序表达出来,确定了三个要素:递+结束条件+归。递归与迭代递归结构示例:编写程序求n!。递归与迭代递归结构示例:编写程序求n!。递归与迭代fact(4)fact(3)43fact(2)2fact(1)1return 1)return 2)213246return 6)return 24)递归与迭代fact(4)fact(3)43fact(2)2fact(1)1return 1)return 2)213246return 6)ret
9、urn 24)递归与迭代fact(4)fact(3)43fact(2)2fact(1)1return 1)return 2)213246return 6)return 24)递归与迭代递归与迭代的关系递归与迭代递归与迭代的关系迭代迭代是一种由远变近的逼近,问题的规模不见得缩小了,但是慢慢在调整接近答案。递归递归是把规模大的问题分解为规模小的子问题和可以在子问题解决的基础上剩余的可以自行解决的部分。而后者就是递归的精髓所在,是在实际解决问题的过程。递归与迭代递归与迭代的关系请用递归结构实现下面的迭代程序请用递归结构实现下面的迭代程序递归与迭代递归与迭代的关系请用递归结构实现下面的迭代程序请用递归结构实现下面的迭代程序递归与迭代课堂练习:用递归结构求斐波那契数提纲高级程序设计语言递归与迭代课后练习任务:统计学生成绩输入10个学生的计算机导论课程成绩统计学生的平均分用递归算法用递归算法统计班级最高分和最低分输出10个学生的平均成绩、最高分和最低分