プログラミング的{10}

 

第 1 章 プログラムとは何か
 第 1 節 あみだくじ  
 第 2 節 人生ゲーム  
  第 1 項 基礎編
  コラム 中級コース:ジャンプあれこれ
  第 2 項 応用編 オリジナルマシンを作ろう
  第 2 項 応用編(1) ゆでたまごを作る
  コラム 閑話:大事なこと(上級コース)
  第 2 項 応用編(2) 対戦ゲーム的なもの
  コラム 中級コース:ちょっとお使いに行って来て


突然ですが 「三遍回ってワン!」 をプログラムで表現してみよう、という課題があったとしましょう。 とりあえずは、

  001 【一度回る】
  002 【一度回る】
  003 【一度回る】
  004 【ワン、と吼える】

と書くのが簡単でしょう。

さて、これが 3 回ではなく 100 回だったら ? 何回か決まっていなかったら ? その場で回るのではなく 「公園に行って口に水を含んで帰りに隣の家の花壇に撒いて帰ってくる」 だったら ? 

どうでしょう ?

行数ばかり増えて面倒くさいですよね、同じことを繰り返すのにも関わらず。

このように 「同じようなことを繰り返す」 場合にその 「同じようなこと」 を本来の(ゲーム|プログラム の)進行とは別のところに書いて必要になったらその部分を呼び出して(何度でも)実行するようにすれば、書く量が少なくて済みます。


一般に何かの目的を果たす一連の 手順|プログラム を 「ルーチン」 と呼んだりします。 英語で表しただけですね。


さて。

ごはんの支度をしていてコショウが無くなっていることに気がつきました。 ちょっと近所のコンビニまで お使いに行ってきてと頼まれました。 「コショウ」 と書いた紙を握りしめて お財布を持ってお出かけします。

コンビニ行ってくる プログラム|ルーチン は、本来の進行(ごはんの支度)とは違う 「補助的な」 プログラム|ルーチン ですから 「サブルーチン」 と呼びます。

では書いてみましょう。

 001 【十一進む】
 002 【015】
 003 【お財布を用意する】
 004 【メモを持って家を出て鍵をかける】
 005 【コンビニに行く】
 006 【メモに書いてあるものをカゴに入れる】
 007 【レジで支払いをする】
 008 【家に戻る】
 009 【鍵を開けて「ただいま」言う】
 010 【買ってきたものを渡す】
 011 【002 番地に書いてある番地に飛ぶ】
 012 【お買い物メモに「コショウ」と書く】
 013 【002 番地に現在地 +2 の番地を書く】
 014 【003 番地に飛ぶ】
 015 【さあ、何ができるのかな】

こんな感じでしょうか。

あ、忘れ物がありました。 ごめん、もう一回行ってきて。 ww

  016 【お買い物メモに「カレールウ」と書く】
  017 【002 番地に現在地 +2 の番地を書く】
  018 【002 番地に飛ぶ】
  019 【さあ、今度こそ】
  020 【】

ほら、016, 017, 018 の 3 行を書けば何でも買ってきてもらえますよ、簡単でしょ ?

いろんな場面を考えるのは お任せします。 それでは、また。


次回予告(maybe 10/31)

第 1 章 プログラムとは何か
 第 1 節 あみだくじ  
 第 2 節 人生ゲーム  
  第 1 項 基礎編(1) 番地(アドレス)
  第 1 項 基礎編(2) 三つ進む
  第 1 項 基礎編(3) どっちに進む ?
  コラム 中級コース:ジャンプあれこれ
  第 2 項 応用編 オリジナルマシンを作ろう
  第 2 項 応用編(1) ゆでたまごを作る
  コラム 閑話:大事なこと(上級コース)
  第 2 項 応用編(2) 対戦ゲーム的なもの
  コラム 中級コース:ちょっとお使いに行って来て
  第 2 項 応用編(3) ポテトサラダを作る
第 2 章 何を使ってプログラムをするか

*

この記事が気に入ったらサポートをしてみませんか?