1-2算法的描述与设计的第2课时 下载本文

1-2节 算法描述与设计

一、 【教学目标】

1、了解利用计算机解决问题的基本过程 2、了解问题分析与算法设计之间的关系 3、了解算法的基本特征

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

二、 重点难点

(一)教学重点

1、用流程图描述简单的算法。

2、能用自然语言、流程图或伪代码描述算法 (二)教学难点

3、算法的描述(三种); 4、用流程图描述算法。 三,教学过程:

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

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

四、课堂同步练习: 一、选择题

1、人们利用计算机解决问题的基本过程一般有如下五个步骤(①~⑤),请按各步骤的先后顺序在下列选项(A~D)中选择正确的答案( )

①调试运行程序 ②分析问题 ③设计算法 ④问题解决 ⑤编写程序

A、①②③④⑤ B、②④③⑤①C、④②③⑤① D、②③⑤①④

2、在下图中利用计算机解决问题的基本步骤流程图中,对于标注为(1)的流程线,以下说明正确的是( )

A.该流程线可有可无

B.当程序运行不出结果时,才需要该部分流程线

C.该部分流程线保证了问题解决的正确性D.该部分流程线有错

3、下列三种算法的描述,缺乏直观性、简洁性,最容易产生歧义的是( ) A、自然语言描述法 B、流程图 C、伪代码

4、流程图中表示判断的是( ) A、矩形框 B、菱形框 C、圆形框 D、椭圆形框 5、“分支判断”作为解决问题的算法的一个基本步骤,正是体现了计算机的( )能力。 A、算术运算能力 B、逻辑运算能力 C、分布式运算能力 D、记忆存储能力 6、下面关于算法的描述,正确的是( )

A、算法不可以用自然语言描述 B、算法只能用框图来描述 C、一个算法必须保证它的执行步骤是有限的

D、算法的框图表示法有0个或多个输入,但只能有一个输出 7、下面关于算法的描述,正确的是( )

A、一个问题只有一个算法B、一个问题可能有多种算法

C、能解决问题的算法都是好算法,没优劣之分D、算法不是程序设计所必需的 8、下列关于算法的叙述,正确的是( )

A、解决一个问题的算法只有一种 B、有穷性是算法的基本特征之一 C、可行性不属于算法基本特征 D、算法对程序设计没有任何作用 9、下列关于算法的叙述,正确的是( )

A、解决一个问题的算法只有一种 B、算法必定有一个或一个以上的输出 C、算法中可以存在不确切的步骤 D、描述算法的步骤可以是无穷的 10、从以下计算S的算法可以看出,S的代数式表示是( ) ①变量S的初值是0; ②变量I从1起循环到N;

③循环表达式为S=S+(-1)*i; ④输出变量S的值

A.1-2+3-4+?+(-1)N*(N-1) B.1-2+3-4+?+(-1)N-1*n C.1+2+3+4+?+(n-1)+n D.-1-2-3-4-?-(n-1)-n 11、下列选项都是属于高级语言的是( ) A、汇编语言 机器语言 B、Basic语言 Pascal语言 C、汇编语言 Basic语言 D、机器语言 Pascal语言 12、下列选项都是属于低级语言的是( )

A、汇编语言 机器语言 B、Basic语言 Pascal语言 C、汇编语言 Basic语言 D、机器语言 Pascal语言 13、________是计算机能直接识别,理解执行的语言。 A、汇编语言 B、Pascal语言 C、Basic语言 D、机器语言

14、下列关于程序设计言中机器语言的说法,正确的是( ) A、Visual Basic属于机器语言的一种B、机器语言就是Visual Basic C、机器语言比高级语言更早出现 D、高级语言比机器语言更早出现