プログラム

コンピューターは、様々なことを人間の代わりに行うことができます。Jasmine Tea もコンピューターと同じように、命令を使って様々なことをお願いすることが可能です。一つお願いしたいことがあれば、命令を一つ使えば Jasmine Tea はその指示通りに何かをしてくれます。

しかし、人が達成したいことは、もっと複雑なことが多いです。例えば、算数の計算問題を考えてみましょう。「5個入りのいちごの箱が10個と、6個入りのみかんの袋が8個あります。いちごとみかんは合わせて何個あるでしょうか」という問題があったときに、答えを計算する際には、

  1. 5 x 10 = 50 (いちごの数)
  2. 6 x 8 = 48 (みかんの数)
  3. 50 + 48 = 98 (答え)

というように、計算を3回に分けて行うことになります。

もう一つ例を考えてみましょう。電子レンジの使い方がわからない子供に、お弁当を温めてもらいたいとします。子供にお願いするときには、

  1. 電子レンジのフタを開けてください。
  2. お弁当を持って、電子レンジの中に置いてください。
  3. 電子レンジのフタを閉めてください。
  4. 電子レンジにある「あたため」と書かれたボタンを押してください。
  5. 「チン」と音がするまで、何か歌を歌ってください。
  6. 電子レンジのフタを開けてください。
  7. お弁当を持って、電子レンジの中から出してください。
  8. 電子レンジのフタを閉めてください。
  9. お弁当を持ってきてください。

というように、子供が理解して行うことができそうな指示をかなり細かく言い続けることになるでしょう。

これらの例のように、何か一つのことを達成するためには、細かなことを連続して行うことが必要です。Jasmine Tea においても、同じことです。Jasmine Tea に何かやって欲しいことがあったときに、それが一つの命令だけでは達成できないときは、2つ以上の命令を順番に行っていくことになります。

この「Jasmine Tea に行って欲しい一つ以上の命令を並べたもの」のことを「プログラム」と呼びます。命令はパラメーターと共に文と呼びますので、プログラムは「複数の文である」ということもできます。

ここで、Jasmine Tea の簡単なプログラムの例を見てみましょう。日本国旗を画面に描いてみます。

cls
box (10,10)-(629,389),7,7
circle (320,200),100,2,2

Jasmine Tea は、このプログラムを 1 行目に書かれている命令から順に実行していきます(これを「順次(実行)」と呼びます)。

  1. cls 命令により、画面上の文字や図形を消します。
  2. box 命令により、画面上に白色の四角形を描画します。
  3. circle 命令により、画面の中央付近に赤色の円を描画します。

このプログラムの実行結果は、以下となります。

program-1

Jasmine Tea では、プログラムは以下の規則があります。

  • Jasmine Tea のプログラムは、画面上のプログラムエディターに入力します。
  • 1 行に書ける文(命令とパラメーターの組み合わせ)は 1 つのみです。
  • 何も書いていない行(「空行」といいます)は、Jasmine Tea は何も実行せずに無視します。
  • 入力できる行数に制限はありません。
  • 行の先頭にある 1 つ以上の空白は、無視されます。
  • プログラムの最後の行の命令が実行された後に、プログラムの実行は終了します。

何も書いていない空行を入れることで、複数の命令のまとまりを表現することができます。また、行の先頭に空白をいくつか入れることを「インデント」と呼びます。このインデントを使うことでも、複数の命令のまとまりを表現することが可能です。

cls

do
  circle (random(0,639),8),8,7,7
  roll (0,0)-(639,399),0,1,0
loop

上記のプログラムでは、画面を消す処理と、白い円を次々と描いて( circle 命令)は画面の下に流していく( roll 命令)処理とを、2行目を空行にすることで明確にしています。また、3 行目の do 命令と 4 行目の loop 命令の間にある 2 行が「ずっと繰り返される」ことを、インデントすることでわかりやすく表現しています。

空行を入れることや、インデントをすることは、プログラムを書く人の自由です。これらのテクニックを使って、できるだけ読みやすいプログラムを心がけましょう。