トレたび JRグループ協力

2022.08.05鉄道大好きな電車で身につけよう! 時刻表で学ぶ プログラミング的思考

【おうちの方へ】時刻表で学ぶプログラミング的思考とは…?

プログラミング的思考とは、実現に向けてどのような手順で実行するかを考えることです。ここでは時刻表を使って、目的地までの道順を考えるというプログラミング的思考を養います。

ある課題について、それを解決するための手続き、手順、データの扱い方などを具体的に述べたものをアルゴリズムといいます。
プログラミングでのアルゴリズムの最も基本となる要素には、順次処理(シーケンス)、条件判断、繰り返し処理があります。

・順次処理(シーケンス):計算や動きの手続きを順番に連続して記述していく方法。最も単純なプログラミングです。
・条件判断:処理の途中の段階で、処理する内容が2つに分かれ、ある条件を調べて、いずれか一方を選んで処理して実行することです。
・繰り返し処理:ある条件によって、同じ処理を繰り返し実行することです。

お話の最後には、ダウンロードできる練習問題もあります。

時刻表を使って、東京駅から青森駅への旅行の計画をたてよう!

電車が大好きなつばさくんは お父さんとお母さんといっしょに、東京駅(とうきょうえき)から新幹線にのって、おじいちゃん・おばあちゃんの家に遊びに行くため、青森駅(あおもりえき)までの旅の計画をたてています。

1.出発地から目的地までの行き方を考えよう!

次の条件に合うのはAとBのどちらでしょうか。
①出発地は東京駅です。
②目的地は青森駅です。
③途中の仙台駅(せんだいえき)で降りて観光を楽しみます。
④新幹線の他に秋田駅(あきたえき)から五能線(ごのうせん)を走る観光列車〔リゾートしらかみ〕に乗ります。


Bの行き方でも青森駅にたどり着けますが、④に合うのはAの行き方です。
それでは東京駅から乗る列車を探します。

2.出発地から乗る列車を探そう


お父さん「東京駅から仙台駅に行くにはどの列車に乗ればいいかな?」

東京駅から仙台駅の新幹線の時刻です。


  • 一部駅を割愛しています。
  • レ=通過(この駅には列車がとまりません)

つばさくん「う~ん、どうやって みればいいんだろう?」
お父さん「まず東京駅をみてみよう。東京駅を7時に出発するならどの列車がいいかな」
つばさくん「〔はやぶさ1号〕と〔やまびこ203号〕には乗れないから、7時の〔なすの251号〕だね! あ、でも仙台駅には行かないのか。じゃあ次の〔やまびこ123号〕かな。仙台駅に9時18分に着くみたいだ。」
お父さん「そうだね。じゃあ次の〔はやぶさ101号〕だと仙台駅に何時に着くかな?」
つばさくん「8時49分! あれ? 先に出発する〔やまびこ123号〕よりもはやく着くんだね。その次の〔はやぶさ5号〕だと仙台駅に9時4分到着だから〔はやぶさ101号〕の方がはやいね!」

お母さん「出発が7時だとはやすぎるから、8時にしましょう。」
つばさくん「東京駅に8時だと、〔はやぶさ103号〕には乗れないから〔やまびこ127号〕か〔はやぶさ7号〕だね。仙台駅には〔やまびこ127号〕が10時11分、〔はやぶさ7号〕が9時50分だから、〔はやぶさ7号〕に乗ろう!


E5系はやぶさ


解説

つばさくんは次の手順で列車を選びました(順次処理)。
1.出発駅での列車の時刻を見ます。
2.「つばさくんたちが出発する時刻」よりも後に出る列車のうち、一番目に出発する列車を仮の「候補の列車」としてその列車名と出発駅の出発時刻、目的駅の到着時刻を記録します(条件判断)。
3.二番目に出発する列車の到着時刻も調べ、「候補の列車」の目的駅の到着時刻よりもはやく到着するならば、それを新たな「候補の列車」として入れ替えます。そうでない場合は何もしません(条件判断)。
4.3の手順を、適当な出発時刻の列車のすべてに繰り返します(繰り返し処理)。
5.最後に残った「候補の列車」が一番はやく到着する列車です。

今回、「出発する時刻」を7時としたときには〔やまびこ123号〕から順番に仙台駅の到着時刻を調べていきました。その後に「出発時刻」を8時に変更したときには〔やまびこ127号〕と〔はやぶさ7号〕の仙台駅の到着時刻を調べ、先に到着する〔はやぶさ7号〕に乗ることにしました。

3.到着時刻から乗る列車を探そう!

〔はやぶさ7号〕は9時50分に仙台駅に到着する予定です。

お母さん「仙台駅でおじいちゃんとおばあちゃんへのおみやげを買ってから、新幹線で秋田駅に行きましょう。秋田駅から〔リゾートしらかみ〕に乗るには、仙台駅を何時に出ればいいかな?」

〔リゾートしらかみ〕の時刻です。


  • 〔リゾートしらかみ3号〕は弘前駅が終点です。
  • 一部駅を割愛しています。

つばさくん「〔リゾートしらかみ3号〕に乗るには10時50分よりも前に秋田駅に着いていないといけないね。」

仙台駅から秋田駅の新幹線の時刻です。


  • 一部駅や列車を割愛しています。
  • レ=通過(この駅には列車がとまりません)

つばさくん「〔こまち1号〕は秋田駅に10時24分に着くけど、これだと仙台駅を8時5分に出ないといけない。仙台駅に着くのは9時50分だから間に合わないな。」
お母さん「そうだね、じゃあ〔リゾートしらかみ5号〕ならどうかな?」

つばさくん「〔リゾートしらかみ5号〕に乗るには秋田駅に13時57分までに着く列車を探そう」

仙台駅から秋田駅の新幹線の時刻です。


  • 一部駅や列車を割愛しています。

つばさくん「仙台駅10時41分の〔こまち11号〕に乗れば秋田駅に13時2分に着くね!」


E6系こまち

13時2分に秋田駅に着けば、13時57分の〔リゾートしらかみ5号〕に乗れそうです。

〔リゾートしらかみ〕は海沿いを走る観光列車。車窓からのきれいな景色を楽しみながら19時38分に青森駅に到着する予定です。


リゾートしらかみ(橅[ぶな]編成)



解説

つばさくんは次の手順で列車を選びました(順次処理)。
1.乗り換える列車を決め、その列車の出発する時刻を調べます。
2.1の時刻よりも前にその駅に到着する列車を選び、今の時刻から乗ることができるかを調べます(条件判断)。
3.2の列車に乗ることができない場合は1の乗り換える列車を変更して、1と2の手順を繰り返します(繰り返し処理)。

〔リゾートしらかみ〕に乗るための条件は、〔リゾートしらかみ〕の出発する時刻までに、秋田駅に到着していることです。
〔リゾートしらかみ3号〕に乗るためには秋田駅に10時50分よりも前に到着する新幹線に乗らなくてはいけません。仙台駅に到着する時刻を考えると乗ることができないため、〔リゾートしらかみ5号〕に変更しました。〔リゾートしらかみ5号〕の出発時刻は13時57分です。〔こまち11号〕と〔こまち17号〕の時刻を調べると〔こまち11号〕に乗れば13時2分に秋田駅に到着するので、無事に〔リゾートしらかみ5号〕に乗ることができます。

つばさくんは、時刻表を使って条件に合う計画をたてることができました。楽しい旅行になるといいですね!

東京駅から青森駅へはこんな行き方も…

今回は次の条件に合わせて行き方を決めました。
①    出発地は東京駅です。
②    目的地は青森駅です。
③    途中の仙台駅で降りて観光を楽しみます。
④    新幹線の他に、秋田駅から五能線を走る観光列車〔リゾートしらかみ〕に乗ります。
しかし、③④の条件の代わりに「8時に出発して、目的地まではやく着く」という条件にすると、次のような行き方になります。


  • 一部駅を割愛しています。
  • レ=通過(この駅には列車がとまりません)
  • 赤で囲ったところが最初に乗った列車、青で囲ったところが今回乗る列車です。

11時20分に新青森駅に着いてからは、奥羽本線に乗り換えます。


11時42分に青森駅に到着します。
さまざまな目的(条件)に合う行き方・列車を時刻表で探して、列車旅を楽しみましょう。

時刻表を見てみよう!

駅のみどりの窓口に置かれた『JR時刻表』や、コンパクトサイズの『コンパス時刻表』などの全国版時刻表の他、エリアごとに分かれた時刻表などさまざまな種類があります。また、タブレットやスマートフォンなどで見ることができる『デジタルJR時刻表Pro/Lite』などもあります。


練習問題をやってみよう!

時刻表を使ったプログラミング的思考を学べる練習問題をダウンロードできます!
親子で一緒に挑戦してみましょう。

  • 下のボタンを押すと、練習問題のファイルが開き、保存や印刷ができます。

ダウンロードはこちら

  • プログラミング監修=富永順一
  • イラスト=パシフィック・ウイステリア
  • 写真=交通新聞クリエイト
  • 物語の中の時刻表は説明用のものです。実際の列車の時刻は最新の時刻表でご確認ください。
  • 登場する人物は架空のものであり、実在のものとは関係ありません。
トレたび公式SNS
  • X
  • Fasebook