第9話 「プログラム」って何?

第9話 「プログラム」って何?

わたる
プログラムだらけって言(い)われても、ピンとこないなぁ。。
はかせ
ホッホッ、それでは「プログラムとはなに?」から始(はじ)めようかのう。
カンタンに言(い)えば、コンピュータが何(なに)をすれば良(よ)いのかを記(しる)した手順書(てじゅんしょ)じゃよ。
くるみ
手順書(てじゅんしょ)?
はかせ
うむ。
スケジュールや予定(よてい)と言(い)っても構(かま)わんじゃろう。
わたる
えぇー?
コンピュータってアタマ良(い)いのに、なんかフツウだね。
はかせ
否(いな)、賢(かしこ)いとは言(い)えんぞ。
高速(こうそく)で正確(せいかく)に計算(けいさん)できるが、コンピュータには常識(じょうしき)もなければ考(かんが)えることもできないからな。
ナビ
AIで知(し)られる「人工知能(じんこうちのう)」が注目(ちゅうもく)されているのも、いまのコンピュータは指示(しじ)されたことしかできないからニャ。
はかせ
家電(かでん)が良(よ)い例(れい)じゃな。
自動(じどう)で氷(こおり)を作(つく)る冷蔵庫(れいぞうこ)、ちょうど良(よ)い温度(おんど)に温(あたた)めてくれる電子(でんし)レンジなどは、プログラムがなければ成り立(な た)たんのじゃよ。
くるみ
そうなんだ!
いつでも氷(こおり)があるのって、プログラムのおかげなのね。
はかせ
プログラムといってもシンプルなものじゃがな。
ときどき氷(こおり)の量(りょう)をチェックしなさい、少(すく)なければ追加(ついか)しなさい、たくさんあるときは何(なに)もしない、といった具合(どぐあい)じゃ。
わたる
そういわれるとカンタンに思(おも)えてきたけど…
はかせ
じゃが人間(にんげん)の言葉(ことば)は通(つう)じないからの、手順書(てじゅんしょ)は「コンピュータ語(ご)」で作(つく)る必要(ひつよう)がある。
それがプログラミングじゃよ。
ナビ
スマホやパソコンのアプリも「プログラム」ニャし、Windows(ウィンドウズ)やAndroid(アンドロイド)といったOS(オー・エス)もプログラムの仲間(なかま)ニャ。
くるみ
おもしろそう!
プログラムを作(つく)るには、なにが必要(ひつよう)なの?
はかせ
なにがしたいか次第(しだい)じゃ。
ゲームやアプリを作(つく)りたいなら、パソコン上(じょう)でプログラミングしてそのまま実行(じっこう)できる言語(げんご)が良(よ)いじゃろう。
ロボットを作(つく)りたければマイコンじゃな。
ナビ
マイコンはマイクロ・コントローラの略(りゃく)で、センサーやモーターなどをつないで動(うご)かせるニャ。
最近(さいきん)は、micro:bit(マイクロビット)のようにプログラミング言語(げんご)を使(つか)わないマイコンもあるニャ。
わたる
ゲームとロボットかぁ、どっちも魅力(みりょく)だなぁ~!
気絶(きぜつ)するほど悩(なや)ましい~
はかせ
ホッホッ、どちらも遊(あそ)びが目的(もくてき)のようじゃが、プログラムの勉強(べんきょう)になるから良(よ)いじゃろう。
じゃが、うまく作(つく)れないとイヤになるからな、カンタンそう!と思(おも)えたものがオススメじゃな。
ナビ

ナビれぽやわくラボでも紹介(しょうかい)しているから、興味(きょうみ)があるひとは参考(さんこう)にして欲(ほ)しいニャ!

アンドウくん
ワタシの新(あたら)しいプログラム、早(はや)く作(つく)ってくださいネ。。。

質問:「プログラム」って何?

 

答え:コンピュータが、いつ、なにを、どのようにおこなうべきかを記した「手順書」です。

学芸会や運動会でご存じのように、プログラムは「予定」「計画表」と訳されます。コンピュータのプログラムも同様で、実行させたい内容を記した手順書と表現できます。

もっともシンプルなプログラムは、時間の流れに沿って実行すべき内容を A→B→C→D… のように指定したもので、初心者でも比較的カンタンに作れます。しかし一方的に命令しているだけなので、処理が間に合わない、思ったよりも早く済んだ、など、予想外のできごとに対処できません。そのため「もし〇〇なら□□しなさい」のように回避するのが一般的で、これを条件分岐や条件実行と呼びます。

これはセンサーを使う場合も同じで、「もし暗くなったら」→照明をつける、「もし障害物にぶつかったら」→バックする のようにプログラムして処理を自動化しているのです。

プログラムや条件と聞くとムズカシそうに思えるかもしれませんが、「雨が降ったら」→傘をさす、「水曜の朝になったら」→可燃ゴミを出す など、われわれが普段おこなっていることを、コンピュータの世界に置き換えたに過ぎません。思い通りのプログラムが作れないときは、コンピュータの目線でシミュレーションすると良いかもしれませんね。