单元三 · 用算法解决问题

第11课 闰年平年我知道(1)

任务场景
任务场景:闰年平年我知道(1)

一、学习目标

  • 进一步学习分支结构,体验多分支结构的应用,感受用算法解决问题的过程。
  • 通过描述判断闰年与平年的算法,知道算法的输入、判断处理中的条件以及输出。

二、情境导入

周末,小思和几位同学在家人的陪同下去公园游玩。他们参加了公园举办的「猜数学谜题获得公园纪念品」的活动。其中一道题是:有一个小朋友今年已经 11 岁了,可是他只过了 2 次生日,这是为什么呢?

想一想:你能解释这个谜题吗?它与闰年、平年有什么关系?

三、核心讲解

本课学习路径:

1认识判断闰年的规则
2描述判断闰年与平年的算法

1.认识判断闰年的规则

想一想:

  1. 哪一天出生的人,生日会少呢?
  2. 为什么这一天出生,生日天数会少?
  3. 如何判断某年是不是闰年?
观察发现:2 月 29 日出现的机会相对较少,每四年才会有一次。只有这一天出生的人,生日次数才会较少。

闰年是包含 366 天的特殊年份。闰年的二月有 29 天,而平年的 2 月只有 28 天。

人们常说「四年一闰,百年不闰,四百年又闰」。分析下面的年份,填写表格,说一说闰年应该符合的判断条件是什么。

年份:2023、2000、2020、2100——分别判断是否被 4、100、400 整除,以及是否为闰年。

  • 如果一个年份能够被 4 整除,但不能被 100 整除,那么这一年就是闰年。
  • 如果一个年份能够被 400 整除,那么这一年也是闰年。

2.描述判断闰年与平年的算法

把判断闰年的条件组合在一起,用自然语言描述:

  1. 如果一个年份能被 4 整除,但不能被 100 整除,那么这一年就是闰年。
  2. 如果一个年份能被 400 整除,那么这一年也是闰年。
  3. 如果不满足以上条件,这一年就是平年。

也可以写成:如果(「一个年份能被 4 整除」而且「不能被 100 整除」)或者「一个年份能被 400 整除」,则结论为「是闰年」,否则结论为「是平年」。加上括号后,条件优先级更清晰。

用流程图描述时:(1)补充流程图空白处的判断条件;(2)如果输入的年份分别是 1900、2008、2033、2400,讨论每个年份执行的判断路径和结果;(3)为了实现判断闰年还是平年,流程图使用了分支结构。判断条件形成两个双分支结构。

流程图:判断闰年 / 平年(完整条件)

开始输入年份 yy 能被 400 整除?是否闰年再判:能被 100整除→平年;否则能被 4 整除→闰年结束

本课新语法与图形块

本课首次强调取余 %。闰年判断算法见流程图;if/else 已在第 6 课讲过。

语法图形块说明
y % 4 == 0
取余/运算
% 求余数,判断能否整除

弄清以上要点后,再进入下方 Python Online,用程序验证闰年判断算法。

四、动手体验 · Python 3 Online 编程

五年级 · 闰年规则:改年份再运行。

五、课堂总结

  • 分支结构能够根据不同的判断条件选择不同的执行路径。
  • 分支结构的判断条件以及条件之间的关系要准确描述,执行路径才能正确。
  • 分支结构使得算法有了选择性,解决问题时更加灵活。
  • 现实生活中,只要认真观察,就会发现很多场合都存在分支结构的应用。

六、拓展提升

  • 小思是五年级学生,已经满 11 岁,假期要与妈妈以及 8 岁的妹妹、5 岁的弟弟一起乘坐火车去看望爷爷奶奶。小思和爸爸一起查看了火车购票的规定:随同成年人乘车的儿童,年满 6 周岁且未满 14 周岁的应当购买儿童优惠票;年满 14 周岁,应当购买全价票。每一名持票成年人旅客可免费携带一名未满 6 周岁且不单独占用席位的儿童乘车。请分析小思一家的购票方案是什么?其中包含了哪些条件判断?
  • 在第 9 课的移位密码算法中,添加判断条件:「如果明文中出现非字母符号,则保持原样输出。」请补充流程图,使算法在移位输出字母的同时可以原样输出其他符号。

测评

选出后点「检查」。答错会显示简短说明。

  1. 下列年份中,哪一个是闰年?

  2. 关于闰年判断,下列说法正确的是?

  3. 判断闰年还是平年的流程图主要使用了哪种算法结构?

本节小结

闰年二月有 29 天;判断闰年要综合「能被 4 整除但不能被 100 整除」或「能被 400 整除」两个条件。用分支结构描述算法,条件关系要准确。