师:今天我们来学习 2.1 计算机解决问题的过程。本节课我们将学习:一、计算机解决问题的过程;二、流程图的规范表示方法,使用自然语言和流程图描述算法;三、算法的三种基本结构。我们将通过实现“最强大脑”游戏项目,来了解和学习计算机解决问题的过程。首先,我们了解一下“最强大脑”游戏的规则:用 10 秒记忆 10 个物品及其编号,之后根据提问回答 5 个物品的编号,看谁记住的物品编号数量多。
大家回忆一下,在“最强大脑”的舞台上,选手记忆卡片,嘉宾出题、选手答题和助手计分的过程。如何通过计算机编程实现这个游戏呢?下面请看老师演示这个程序,请同学们多关注求解过程。
(老师双击运行“最强大脑”游戏程序)
师:首先是出题环节,屏幕上显示游戏规则、10 种物品及其编号,屏幕停留 10 秒。接着是答题环节,随机出题,给出物品,让玩家回答编号,判断回答是否正确,如果正确,答对的题数加一,重复以上步骤,直到答完 5 道题。最后是输出结果环节,显示答对的题数。以上就是“最强大脑”游戏程序的运行过程。
一、分析问题
师:通过“最强大脑”游戏的演示,我们了解到该游戏各环节需要解决的问题。出题环节,显示物品和编号 10 秒;答题环节,随机出 5 种物品,让玩家回答其对应的编号;输出结果环节,输出答对的题数。那么,解决这些问题的方法和步骤是什么呢?我们接着看下面的内容。
二、设计算法
师:分析问题后,我们要找出解决问题的方法和步骤,这就是设计算法的过程。我们可以先用自然语言描述算法。自然语言是指人们日常生活中使用的语言,像汉语、英语、德语等都是自然语言。用自然语言描述算法符合我们的表达习惯,并且容易理解。
活动一:使用自然语言描述“最强大脑”游戏的算法
师:请同学们根据各个环节解决的问题,把具体的步骤描述出来。
(老师展示自己写的步骤)
师:看看老师写的步骤是不是和你写的差不多,大家可能漏了哪些步骤呢?出题环节解决的步骤有两个:一、显示游戏规则、物品及其编号,10 秒后清屏;答题环节解决的步骤有 4 个:一、给出一个物品名称;二、玩家回答编号;三、如果回答正确,答对的题数加 1;四、重复以上步骤,直到答完 5 道题;输出结果环节解决的步骤有一个:输出答对的题数。用自然语言描述算法简单且通俗易懂。我们也可以使用流程图来描述算法。
四、使用流程图描述算法
师:流程图是算法的一种图形化表示方法。以下是流程图的符号及含义:一、起始框表示一个算法的开始和结束;二、处理框表示操作的内容;三、输入输出框表示从外部输入数据到计算机内部,或者从计算机内部输出数据;四、判断框表示判断的条件;五、流程线指向算法运行的方向;六、连接符表示流程图的接续。三种基本结构的流程图分别是顺序结构、分支结构和循环结构。顺序结构是一种最简单的基本结构,按照自上而下的先后顺序依次执行程序语句,如图所示,先执行处理框 a,再执行处理框 b。分支结构也称为选择结构,是一种根据给定的条件进行判断的结构,如图所示,若满足条件,则执行处理框 a;若不满足条件,则执行处理框 b。循环结构是一种重复某一部分操作的结构,如图所示,若满足条件则执行循环体处理框 a,若不满足条件,则跳出循环,执行循环结构后面的代码。
活动二:用流程图描述“最强大脑”游戏的算法
师:自然语言与流程图。出题环节,计算机解决的问题有两个:一、显示游戏规则、物品及编号 10 秒;二、清屏。流程图需要使用顺序结构,解决的步骤使用两个处理框进行描述。答题环节,计算机解决的问题有 4 个:一、给出一个物品名称;二、玩家回答编号;三、如果回答正确,答对的题数加 1;四、重复以上步骤,直到答完 5 道题。流程图需要使用顺序结构、分支结构、循环结构,解决的步骤使用两个判断框和三个处理框进行描述。输出结果环节,计算机解决的问题有一个:输出答对的题数。流程图需要使用顺序结构,解决的步骤使用一个输入输出框进行描述。这就是用流程图描述“最强大脑”游戏算法的完整过程:开始,出题环节,显示游戏规则、物品及其编号,10 秒后清屏;答题环节,判断是否出满 5 题,若否,则出题、答题,判断回答是否正确,若正确,答对的题数加一,直到出满 5 题;输出结果环节,输出答对的题数,结束。
三、编写代码
师:前面我们用流程图可以对算法进行描述,但是流程图一般不能直接在计算机上运行,这时需要使用一种计算机能理解的程序设计语言将算法表达成程序。我们以 Python 语言为例介绍。下面我们通过运行“最强大脑”游戏程序来了解 Python 语言的开发环境。
