愛知県岡崎市のプログラミングスクールなら「iTeen(アイティーン)岡崎南校」!!教育のプロが、プログラミングを一から丁寧に個別指導します。小学生から高校生対応!愛知県岡崎市のプログラミング、IT知識の個別指導「iTeen岡崎南校」

5年前のお正月は何曜日? ~プログラムで計算しよう!~
33 Views

あけましておめでとうございます!

iTeen岡崎南校です!


皆さま年末年始はいかがお過ごしだったでしょうか?

去年の12月28日は土曜日だったため、1月5日の日曜日までの9日間がお休みとなる方が多く

今回の年末年始は「奇跡の9連休」と呼ばれる大型連休となりました。

これは5年ぶりで、2019年の12月28日も今回と同じく土曜日だったそうです。


……5年前と言われても、そんな前の曜日を覚えてる人なんてそういませんよね。

ですが、〇年の〇月〇日が何曜日だったかを計算する方法があるんです!


ということで、今回はScratchを使って「ある日付の曜日を計算する」プログラムを作ってみます!




まずは曜日を計算する方法ですが、ツェラーの公式というものを使います。

少し複雑なので、それをコンピュータで計算する用に簡単にしたものが下の式です。



これでも文字や記号が多くてちょっと難しそうに見えますが、
実は、計算自体は四則演算(足し算・引き算・掛け算・割り算)だけでできちゃいます!

1つずつ確認していきましょう。


まず分数ですが、割り算の形に直せるので y ÷ 4 や y ÷ 100 と表せますね。

更に y は「年」なので変数を作っておき、コンピュータでは「÷」の代わりに「/」を使うので


となります。

そして y / 4 を囲っている [ ] のような記号は、Scratchの「〇〇の切り下げ」と同じ意味なので

とするだけです。


次に 13m + 8 の部分ですが、「文字を使った計算は×(かける)を省略する」というルールがあります。

なので、省略せずに表すと 13×m + 8 となります。

更に m は「月」なので変数を作っておき、コンピュータでは「×」の代わりに「*」を使うので

となります。

そして分数の部分と [ ] の記号もさっきと同様に表すと

となります。


最後に mod 7 ですが、これは「7で割った余り」を求めるという意味です。

例えば、 10 mod 7 なら 10 ÷ 7 = 1 … 3 で答えは 3 となります。

Scratchには「〇〇を〇〇で割った余り」というブロックがあり、これが mod と同じ意味ですね。

d は「日」なので変数を作っておき、かっこの中身を全て計算した後に7で割った余りを求めると

となって、これで計算式の完成です!



あとは、調べたい日付の年・月・日を入力するプログラムを作って、

1月と2月だった場合は前年の13月・14月に直す処理(2025年の1月は2024年の13月として計算)、

最後に計算の答えが0だったら「日曜日」、1だったら「月曜日」……という変換をすることで

日付から曜日を計算してくれるプログラムの完成です!


さっそく曜日を聞いてみると……

ちゃんと正しい答えが返ってきました!

コンピュータは計算が得意なので、こういった難しい計算も一瞬でしてくれます。

自分が生まれた日の曜日だってすぐ分かっちゃいます。


他にも、このプログラムを改造して聞いた日付の曜日を答えるだけでなく、

その月のカレンダーを作って表示してくれるようにしても面白そうですね。


このプログラムを使ってみたい、もっと詳しく知りたいという方は、
お気軽に当教室までお越しください!

無料体験授業もお問い合わせフォームより随時受付中です!




_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ 

iTeen岡崎南校

岡崎市南明大寺町4-24 TSビル202

プログラミングで『考える力』をつける!!

スクラッチ、Unity、Pythonなど生徒に合わせた個別指導で確実に習得いただけます!

常設校ならではの「自習スペース」完備!

無料体験授業は、フリーダイアル 0120-370-270 まで!

※ホームページからのお問い合わせも受付中!


開校中はアポなし教室見学OKです!


※教室が入居しているビルはセキュリティ万全!

 ビル入口のインターフォンで「202」をお呼び出し下さい。

_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/