2020-07-13

プログラミング入門書を読む前に

プログラムとは

と言うのを辞書っぽく書いてもよくわからないと思うので、ここでは「小さな指示をまとめた手続き」ぐらいの説明で十分だと思う。

イメージで言うと、

と言うような感じ。これがプログラムです。

この例で明らかにしたいのが、基本的プログラムは上から順番に実行される、と言うこと。

プログラムを書くときは5歳児に説明するイメージ

大人ならさっきの例でお米が炊けると思う。じゃあ5歳児ができるか、と言うとちょっと説明が足りないと思う。どうかな? 実は子供を育てた経験がないので、5歳児がどれぐらい賢いかからない...。でも次の例ならいけるんじゃないかな。

  • お米をカップに「2」杯とり、ボウルに入れる
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(1)
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(2)
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(3)
  • 釜にお米をうつし、内側に書かれてる「2」の線まで水を入れる
  • 釜を炊飯器にセットし、スタートボタンを押す

どうだろう? できそうじゃない? これは例だから感覚的な感じだけど、実際のプログラムを書くときの指示の細かさはだいたいこれぐらいだと思う。

自分がやりたいことをプログラムに起こすときは、5歳児に教えるぐらいの気持ちでやるといいと思う。本物の5歳児はもっといかもしれないけど...。

暗記力のある5歳児を相手にする

暗記力のある5歳児だと、

  • 最初に取り出したお米のカップ数と、釜に水を入れるときの線の数字は同じ
    • 例えば最初に取り出したお米が2カップなら、釜に入れる水の量は2の線
      • 同じように、最初に取り出したお米が3カップなら、釜に入れる水の量は3の線

と言うのを覚えることができると思う。パソコンは5歳児より暗記力があるので、パソコン向けのプログラムなら安心して覚えてもらう前提で書ける。

  • "今から炊くお米のカップ数" : 2
  • お米をカップに "今から炊くお米のカップ数" 杯とり、ボウルに入れる
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(1)
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(2)
  • ボウルに水を入れて、猫の手で5回かき混ぜ、水を捨てる(3)
  • 釜にお米をうつし、内側に書かれてる "今から炊くお米のカップ数" の線まで水を入れる
  • 釜を炊飯器にセットし、スタートボタンを押す- "今から炊くお米のカップ数" 分のお米を

これで 1 合でも 5 合でも炊けるようになった。釜さえ対応できれば 100 合でもいけるはず。これがプログラミング変数って呼ばれるやつです。

お米は何回とげばいい?

ここまで、お米をとぐステップは 3 回やればいいってことにしてたけど、2回でいい時もあれば、4回やりたい時もあると思う。箇条書きにしてみよう。

1. ボウルに水を入れて、猫の手で5回かき混ぜる

2. 水を見て、真っ白に濁っていたら 1. に戻る。うっすら濁る程度なら次に進む

ちょっと複雑になった。でもこれでいい感じにお米がとげると思う。プログラミング解説書を読んでいると「制御構文」ってやつが出てくるんだけど、これです。上から実行するはずのプログラムが、また上の行に戻ったりするのが面白いね。

プログラム雰囲気をより掴むためにそれっぽく書いてみると、こうです。ふーんって感じで見て。

	for {
		// KomeWoTogu(ToguKaisuu): コメをとぐ命令コメを研いだ後にはどれぐらい濁ってるか(0.0 〜 1.0)を教えてくれる。1.0が真っ白。
		nigoriGuai := KomeWoTogu(5)
		if nigoriGuai < 0.5 {
			break
		}
	}
	// 続きの処理...

実は "(1) に戻る"、みたいな意味命令もだいたいのプログラミング言語にあるんだけど、プログラムが読みにくくなるのであまり使いません。ここではループって言う繰り返し処理に置き換えてます

急に難しくなった気がする

気がしませんか? 気がしない人は大丈夫。難しい気がした人にはおすすめツールがありますフローチャートっていうの。

https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AD%E3%83%BC%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88

これは限られた図形を使ってプログラム解決したい課題表現するので、課題理解するのにとても役立ちます

プログラミングを初めて最初のうちって、「自分がやりたいこと」と「プログラム表現できること」の間に谷があって苦しくなることがあると思うんだけど、そういうときは落ち着いてフローチャートを書くといいよ。慣れてくるとフローチャートなしでバリバリ書けるようになります

  • 概念的な理解でいいなら、この動画もセットにすると楽しく学習できる https://www.youtube.com/watch?v=5FejvFO1fM0

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん