算法与程序设计(高中)复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主题一 利用计算机解决问题的基本过程

点击考点

1、了解利用计算机解决问题的基本过程

2、了解问题分析与算法设计之间的关系

3、了解算法的基本特征

4、能用自然语言、流程图或伪代码描述算法

5、了解程序设计语言产生与发展过程

考点注解

1、了解利用计算机解决问题的基本过程

一般来说,用计算机解决一个具体问题时,大致经过以下几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编出程序进行测试调整直道到最终解答。寻求数学模型的实质就是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。 2、了解问题分析与算法设计之间的关系

任何一个问题必须弄清楚其内容、性质、规模,才能找到解决问题的方法,所以分析问题就是要确定用计算机做什么,接下来,就解决怎么做的问题,也就是算法。 算法就是解决问题的方法与步骤。有了算法才能转化成指令代码,计算机才能按照指令代码一步一步去执行,直到得到问题的解。 算法是程序设计的灵魂,算法独立于任何一种程序设计语言,一个算法可以用多种程序设计语言来实现。

一个问题,可能有多种算法 ,应该通过分析、比较、挑选一种最优的算法。一个好算法必须用到科学的方法 ,应该好好学习各学科处理问题的科学方法。 3、了解算法的基本特征

一个算法应该具有以下特征:

1)有穷性:一个算法必须保证它的执行步骤是有限的,即它是能终止的。

2)确定性:算法中的每一个步骤必须有确切的含义,而不应当是模糊的,模棱两可的。 3)可行性:算法的每一步原则上都能精确运行

4)有零个或多个输入:所谓输入是指算法在执行时需要从外界获得数据,其目的是为算法建立某些初始状态。如果建立初始状态所需的数据已经包含在算法中了,那就不再需要输入了。 5)有一个或多个输出:算法的目的是用来求解问题的,问题求解的结果应以一定的形式输出。 4、能用自然语言、流程图或伪代码描述算法

一个算法可以用多种不同的方法来描述。一般用自然语言、流程图、伪代码描述。 1)自然语言

自然语言是人们日常所用的语言,如汉语、英语、德语等。用自然语言描述算法符合我们的表达习惯,并且容易理解。缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能被计算机识别和执行。

用自然语言描述一下解决以下问题的算法:借助一个空杯将一杯橙汁和一杯可乐互换所盛放的杯子。

(1) 橙汁倒入空杯;

(2) 可乐倒入刚空出的杯子; (3) 橙汁倒入刚倒出可乐的杯子 2)流程图

流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。也称为程序框图,它是算法的一种图形化表示方法。优点:形象、直观、容易理解。

由键盘输入一个任意值作为 n ,求1到 n 的累加值。

用流程图的方法描述一下求一元二次方程ax2+bx+c=0 (其中a≠0 )的实数解的算法。Input 三个实数值(其中a≠0 )To a,b,c

d=b^2-4*a*c

If d 大于等于0 Then

X1= (-b-d )/2*a

X2= (-b+d )/2*a

输出X1和X2的值

Else

输出方程无实数解

3)伪代码

伪代码是介于自然语言和计算机程序语言之间的一种算法描述。

优点:简洁、易懂、修改容易

缺点:不直观、错误不容易排查

比如:

IF 九点以前THEN

do 私人事务;

ELSE 9点到18点THEN

工作;

ELSE

下班;

END IF

这样不但可以达到文档的效果,同时可以节约时间. 更重要的是,使结构比较清晰,表达方式更加直观.

5、了解程序设计语言产生与发展过程

程序设计语言泛指一切用于书写计算机程序的语言。

计算机语言的发展经历了从机器语言、汇编语言到高级语言的历程,如图1-1所示。1)机器语言(Machine Language

计算机使用的是由“0”和“1”组成的二进制数,二进制编码方式是计算机语言的基础。计算机发明之初,科学家只能用二进制数编制的指令控制计算机运行。每一条计算机指令均由一组“0”、“1”数字,按一定的规则排列组成,若要计算机执行一项简单的任务,需要编写大量的这种指令。这种有规则的二进制数组成的指令集,就是机器语言(也称为指令系统)。不同系列的CPU,具有不同的机器语言,如目前个人计算机中常用AMD公司的系列CPU和Intel公司的系列CPU,具有不同的机器语言。

机器语言是计算机唯一能识别并直接执行的语言,与汇编语言或高级语言相比,其执行效率高。但其可读性差,不易记忆;编写程序既难又繁,容易出错;程序调试和修改难度巨大,不容易掌握和使用。此外,因为机器语言直接依赖于中央处理器,所以用某种机器语言编写的程序只能在相应的计算机上执行,无法在其他型号的计算机上执行,也就是说,可移植性差。

2)汇编语言(Assemble Language)

为了减轻使用机器语言编程的痛苦,20世纪50年代初,出现了汇编语言。汇编语言用比较容易识别、记忆的助记符替代特定的二进制串。下面是几条Intel80x86的汇编指令:ADD AX , BX ;表示将寄存器AX 和 BX 中的内容相加,结果保存在寄存器AX中。

SUB AX , NUM ;表示将寄存器AX中的内容减去NUM,结果保存在寄存器AX中。

MOV AX , NUM ;表示把数NUM保存在寄存器AX中。

通过这种助记符,人们就能较容易地读懂程序,调试和维护也更方便了。但这些助记符号计算机无法识别,需要一个专门的程序将其翻译成机器语言,这种翻译程序被称为汇编程序。汇编语言的一条汇编指令对应一条机器指令,与机器语言性质上是一样的,只是表示方式做了改进,其可移植性与机器语言一样不好。总之,汇编语言是符号化的机器语言,执行效率仍接近于机器语言,因此,汇编语言至今仍是一种常用的软件开发工具。

3)高级语言

尽管汇编语言比机器语言方便,但汇编语言仍然具有许多不便之处,程序编写的效率远远不能满足需要。1954年,第一个高级语言—FORTRAN问世了。高级语言是一种用能表达各种意义的“词”和“数学公式”按一定的“语法规则”编写程序的语言,也称为高级程序设计语言或算法语言。半个多世纪以来,有几百种高级语言问世,影响较大、使用较普遍的有FORTRAN、A LGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、Visual C++、Visual Basic 、Delphi、Java等。高级语言的发展也经历了从早期语言到结构化程序设计语言、面向对象程序设计语言的

相关文档
最新文档