こんにちは。いわさき先生です。

みなさんは、うるう年というのが、どういうものか知っていますか?

1年の日数は365日ですが、これは、地球が太陽の周りを一回りするのにかかる日数のことです。しかし、詳しく調べると、1年の日数は365日ぴったりではなくて、約365.24219日(365日と約5.8時間)なのです。カレンダーでは1年を365日としているので、毎年、この約5.8時間分が実際の季節とカレンダーの間でずれてしまい、このずれが4年で約23.2時間(約1日)になります。そのため、4年に1回うるう年をつくって実際の季節とカレンダーの間のずれを調整しています。

ここからは、プログラムの話をしたいと思います。

うるう年というのは、次のような決まりになっています。
・西暦年号が4で割り切れる年をうるう年とする。
・ただし、西暦年号が100で割り切れて400で割り切れない年はうるう年ではないとする。

西暦年号がうるう年かどうか、というのをプログラムで判断するとしたら、みなさんは、どのようなプログラムにしますか?
プログラムの表現方法はたくさんあります。

先ほどの説明文のとおりそのままプログラムにすると次のようになります。

4で割り切れる、100で割り切れる、400で割り切れない、の判定の順番を変えて、次のようなプログラムにする方法もあります。

もし、の部分に判定式をつめこむと、次のようなプログラムになります。

他にも色々なプログラムが作れると思います。(ぜひ、みなさんもチャレンジしてみてください)
今回は3つのプログラムをのせましたが、どれも良いところもあれば、そうではないところもあります。例えば、3つ目のプログラムは、とっても短いけれど、もし、の後がふくざつで意味がわかるまでに時間がかかりそうです。1つめのプログラムは長いけれど、うるう年に関する説明文そのままの順番で書いてあるので意味が分かりやすいです。

プログラムの表現方法には良い/悪いはなくて、問題文の意味をどのくらい考えたか(今回であれば、うるう年の説明をただ読むのではなくて、その意味をじっくり考えてみたか)、プログラムにする方法をいろいろ考えてみたか、どのような考えでそのプログラムにしたのか、といったことのほうが大切です。

みラボのレッスンでも、わかりやすいプログラムにした、出来る限り短いプログラムにした、エージェントの動きが少なくなるようにしたなどの、みなさんのアイデアを、ぜひ先生にお話してください。先生はみなさんのアイデアを聞くのをとても楽しみにしています!

参考サイト:
国立天文台 どの年がうるう年になるの?
https://www.nao.ac.jp/faq/a0306.html
学研キッズネット 科学なぜなぜ110番
https://kids.gakken.co.jp/kagaku/kagaku110/science0371/