师:同学们好,在前边的学习中,我们学习了计算机解决问题的过程,请大家回顾一下其中的步骤是什么呢?

  生:分析问题,设计算法,编写程序运行验证。

  师:非常好,其中设计算法指的是解决问题的方法和步骤,那算法可以用什么方式去表示呢?

  生:可以用自然语言、流程图、程序代码来表示,还可以用拍图、NS 框图或者伪代码来表示。

  师:看来同学们的复习和预习都相当不错,接下来我们开始新课的学习。首先老师问大家一个问题,一年有多少天呢?

  生:365 天,但有些特殊年份是 366 天,是闰年。

  师:没错,那大家知道闰年的来由吗?请同学们观看一段视频,了解一下闰年的来由。(播放视频)这是因为地球绕太阳公转的周期并不是完整的 365 天,而是 365.24219 天。但人们不会在 365.24219 天的时候庆祝新年,所以把零头去掉,统一为 365 天,不过每年都少过了将近 5.8 个小时。700 年后就少过了 175 天,这样节气就会被搞得一团糟。这时古罗马独裁者凯撒皇帝想出了一个解决办法,先正常过三年,等第四年再把这些没过的时间加起来,凑出一整天,安排在 2 月份。就这样,闰年和闰月出现了。每年多出来的 5.8 小时乘以 4 之后是 23.25 小时,少于闰年的一天 24 小时,每四年又会多过大概 45 分钟,但也总算是方便了许多。好,通过视频的观看,我们知道闰年的来由了。接下来我们通过这节课的学习,要通过设计算法、编程实现来解决如何判断某一年是闰年的问题。那同学们,你们平时是怎么样去判断一年是否是闰年的呢?请大家先思考一下。我们有一句俗话,“四年一闰百年不闰,四百年又闰”,在这一句话当中其实就包含了闰年的判断。接下来我们尝试用自然语言的方式来描述闰年判断的算法。当我们用自然语言描述算法的时候,就是用我们最熟悉的语言采取分步的方式来表示解决问题的步骤。所以请同学们拿出笔记本,在上边试一下,用自然语言分步的方式来描述闰年判断的算法。

  生:(思考并书写)

  师:好,同学们写出来了吗?请同学们参考一下老师写的:第一步,首先是输入需要判断的年份,比如说 2021 年。第二步计算,我们需要判断一下这个年份能否被 4、100 或者 400 整除。第三步,如果能够被 4 整除,并且不能被 100 整除,这个条件成立,那它是闰年。如果能被 100 和 400 整除,那它也是闰年。如果上述两个条件都不满足,那输出就不是闰年或者是平年。好,同学们再来看一下我们设计的这个算法,它的输入是什么?它的计算是什么?它的输出又是什么?

  生:输入是第一步,计算是第二步当中的能否被 4、100、400 整除,输出就是第三步根据条件的成立与否,输出是闰年或者不是闰年。

  师:非常好,算法有 5 个重要的特征,请同学们结合这个例子和书本的 88 页了解一下算法的重要特征。

  生:(阅读书本了解)

  师:好,同学们了解了算法的重要特征了吗?我们一起来看一下。第一个有穷性,指的是算法在执行了有限的步骤之后必须终止。如果算法一直在运行,陷入了死循环,那这个算法就不成立了。第二个确切性,每一次的运算都要有明确的定义,并且是唯一的一个输出结果。第三个输入,算法当中必须有 0 或者多个输入,输出算法的中间一定要有输出项。最后是可行性,我们的算法要在有限的时间内运行,并且它的运算都是可以实现的。所以我们在设计算法的时候要检查和反思一下它是否符合算法的 5 个重要特征。刚才我们用了自然语言来描述了闰年判断的一个算法,同学们会发现用自己熟悉的语言去描述还是比较得心应手的。但是自然语言描述算法也存在一些不足,比如说它在表示流程的运算过程当中,流程的执行过程就不够清晰了,所以接下来我们尝试一下用流程图的方式来描述算法。流程图指的是通过各种框图、箭头等图标表示算法,它在描述流程的执行步骤上会更加具体和清晰。那我们先来回顾一下闰年判断的两个条件,满足这两个条件的它是闰年,否则就是平年。接下来我们看一下流程图的规范,我们在设计一些比较大型程序的时候,通常是采取分工合作的方式,所以所设计的流程图要能分享,要能够用于理解和给别人阅读。这个时候就要遵循流程图的规范,大家看一下,我们是采用圆角矩形表示起止框,采用平行四边形表示输入和输出,采用矩形表示处理,采用菱形表示条件的判断,采用箭头表示流程线,采用圆圈表示连接符。好,请同学们拿出笔记本,根据刚才闰年的两个判断条件和流程图的规范,尝试把闰年判断的算法用流程图的方式表示出来。

  生:(绘制流程图)

  师:同学们,画出来了吗?请同学们看一下老师画的,请大家阅读一下这个流程图,想一下这里的输出 1,输出 2 和输出 3 应该是什么呢?我们一起来读一下。开始之后首先是输入,把用户的输入赋值给了变量 n 表示年份。接下来就是第一个条件的判断,如果 n 能被 4 整除,并且不能被 100 整除这个条件成立,那它输出的是闰年。如果这个条件不成立,我们来判断第二个条件,n 能被 100 整除,且能被 400 整除。如果这个条件也成立,那它同样是闰年,所以它的输出也是闰年。如果这个条件也不成立的话,那我们的输出就不是闰年。同学们,你的流程图画对了吗?我们可以看到,流程图在表示算法的时候,它除了步骤具体,而且执行的流程会更加清晰。好,刚才我们采用了自然语言和流程图的方式来描述算法,接下来我们尝试一下用编写程序的方式实现算法。同学们可以尝试把刚才算法当中的每一个步骤,转换成对应的编程语言。大家试一下在笔记本上边写一下。

  生:(编写程序)

  师:大家写出来了吗?参考一下老师的,我们来看一下。首先第一步是输入年份给变量 n,那我们可以采用什么语句?input 语句把用户的输入给了变量 n,输入完毕之后,接下来我们就要判断这个年份的数值能否被 4 整除,且不能被 100 整除。在这里我们可以用到分支结构当中的 if 语句来实现。如果这个条件成立,我们要输出,我们可以用到 print 语句。好,如果这个条件不成立,我们来到第二个条件。第二个条件的判断我们可以采取分支结构当中的 else if 语句。如果这个条件成立,那输出的时候我们同样可以用到 print 语句来实现。如果这些条件都不成立的话,那它输出不是闰年,我们同样可以用到 print 语句。接下来请同学们整理一下这些代码。好,同学们来看一下,请同学们根据刚才的分析阅读这段代码,尝试在笔记本当中把空 1 到空 5 对应的代码写出来,我们来看一下。首先第一句,用户输入并且赋值给变量 n,我们用了 input 语句,接下来我们需要做什么呢?判断,所以我们用了一个 if 语句来判断 n 能否被 4 和 100 整除,如果这个条件成立,我们要输出,所以是用 print 语句,输出是闰年。如果第一个条件不成立,接下来我们来判断第二个条件,那我们可以用到分支结构当中的 else if 语句来判断 n 能否被 100 和 400 整除。如果这个条件成立,那它同样是闰年,所以我们用到 print 语句输出是闰年。如果上述两个条件都不成立的话,那我们用了一个 else,表示接下来不是闰年,我们用了一个 print 语句输出不是闰年,运行这段程序就可以实现。当用户输入一个年份,程序帮我们去判断它是否是闰年了。闰年的知识在生活当中还有很多应用,接下来我们通过另外一个问题来巩固一下今天的学习。同学们看一下,小明的生日是 3 月 1 号,如果我知道某年的 1 月 1 号是星期一,请问你能通过编程的方式推算出小明该年的生日是星期几吗?请同学们先在脑海当中分析一下这个问题。接下来请同学们试一下,拿出笔记本写一下,用自然语言来描述这个算法,采取分步的方式。

>> 点击阅读全文
《信息技术 必修1 4.1算法及其特征(第一课时) 逐字稿-5,107字 第5版》.docx
将本文下载保存,方便收藏和打印
导出文档