Jasmine Teaで変数を使う!

この記事は、 [Jasmine Tea アドベントカレンダー 2023](https://qiita.com/advent-calendar/2023/jasminetea) の第4日目です。

# はじめに

[Jasmine Tea](https://jasminetea.app) (ジャスミンティー) は、プログラミングの楽しさを多くの人に知ってもらうために作られたプログラミング言語です。初心者が学びやすい仕組みで、実際に社会で使われている多くのプログラミング言語に応用できる基礎が身に付きます。

ここでは、Jasmine Teaを実際に開いて、計算結果などを覚えておく「変数」の使い方を紹介します。

まず、Studio 画面を開いてください。もし Studio 画面をまだ開いたことがなければ、 [Studio画面を表示する - Jasmine TeaでHello, world!](https://qiita.com/yoichiro6642/items/3dc478726f4f73941b46#studio%E7%94%BB%E9%9D%A2%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B) を参考にして Jasmine Tea の試用を開始してください。

# 複数の式を使った計算

コンピューターは計算が得意です。とても高速に計算しますし、複雑な計算式でも大丈夫です。

学校の算数や数学では、1つの式で計算できることもありますが、ほとんどの場合において「複数の式」を使って計算を進めていきます。「途中式が書いていないから減点だよ」と先生に言われた経験は、誰しもあるでしょう。

2日目の記事では、Jasmine Tea で計算をするための方法を紹介しました。`print 2*(1+3)/4` というプログラムを取り上げましたね。[`print` 命令](https://jasminetea.app/docs/references/command-print) のパラメーターに計算式を書くことで、Jasmine Tea が計算をしてくれて、その答えが実行画面に表示されました。

https://qiita.com/yoichiro6642/items/ccf50ba6ea4565aca5a5

`print` 命令に計算してもらうことができるのは1つの式だけです。これが、複数の式を使って答えを求める計算をしたいときは、どうしたら良いでしょうか？

例えば、以下の図形を考えてみましょう。

![Screenshot_20231204_095143.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/366e8959-79de-d02f-1baa-f0d43bf07628.png)

横が 10cm、縦が 5cm の長方形の角を折り曲げたときの、グレーになっている部分の面積を求めたいとしましょう。これは、以下の段階を踏んで、計算をすることになります。

```math
10\times5=長方形の面積
```

```math
(10-5)\times(5-2.5)\div2=折り曲げた三角形の面積
```

```math
長方形の面積-折り曲げた三角形の面積=答え
```

特に3つ目の式は、1つ目の式の答えと2つ目の式の答えを使って計算することになるため、いきなり3つ目の式から計算することはできません。

# 変数に計算の結果を覚えさせよう

プログラミングでは、一時的に情報を記憶しておくための仕組みが提供されていることが普通です。その代表格が「変数」です。変数とは、コンピューター内に「箱」が作られると想像してください。その箱には、一つだけ情報を記憶しておくことができます。

変数は、コンピューター内にいくつも作っておくことができます。変数を区別するために、名前をつけておきます。

![Screenshot_20231204_104434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/19ad9a2a-ab81-6f3d-8358-fff117f1aee1.png)

変数に情報を入れることを「代入する」と言います。また、変数に入っている情報を使いたいときは、変数から「取り出す」と言います。

では、先ほどの図形の面積の計算を、変数を使ってプログラミングしてみましょう。最初の式である長方形の面積の答えを、ここでは `square_area` という名前の変数に代入します。以下のプログラムを、Studio画面の左にあるエディターに入力してください。

```vb
square_area=10*5
```

算数の式と違って、`10*5` が右に来ています。Jasmine Tea では、「変数名 = 式」という形式で書きます。

![Screenshot_20231204_105723.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/8cb47d50-0694-6120-3ecb-dc7c780251b0.png)

まず、「=」記号の右側に書かれた式が計算されます。次に、その答えが、左に書かれた変数に代入されます。これにより、式の計算結果を、変数を使って記憶しておくことができます。

同じようにして、三角形の面積の計算結果も、`triangle_area` 変数に代入しておきましょう。Studio画面のエディターの2行目に、以下のプログラムを入力してください。

```vb
triangle_area=(10-5)*(5-2.5)/2
```

エディターは以下のようになっているかと思います。

![Screenshot_20231204_111324.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/f85e9ff9-e322-7c87-5c48-b55e7819bfe3.png)

# 変数から取り出して計算しよう

変数に代入されている数は、式の中で利用することができます。Jasmine Teaでは、変数から数を取り出すためには、式の中で変数名を直接書けば大丈夫です。

では、エディターの3行目に以下のプログラムを入力してください。

```vb
answer=square_area-triangle_area
```

長方形の面積は 50、三角形の面積は 6.25 なので、上のプログラムが実行されたときは

```vb
answer=50-6.25
```

と同じことが行われていることになります。これで、変数 `answer` に、求めたい面積の数が代入されたはずです。変数 `answer` に代入された数を、`print` 命令を使って実行画面に表示します。エディターの4行目に、以下のプログラムを入力してください。

```
print answer
```

エディタは以下のようになっていれば大丈夫です。

![Screenshot_20231204_112508.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/1604a693-7c73-7278-f01d-8184963e0c7f.png)

では、実行してみましょう。エディターの下にある青色の「実行」ボタンを押して、プログラムを実行してください。

![Screenshot_20231204_112559.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/69600bb2-2285-9ce7-472d-116a3623f1d2.png)

変数を使って、複数の式から答えを導き出すことができました。

# `for` 命令の `i` ってなんだったの？

3日目の記事では、[`for` 命令](https://jasminetea.app/docs/references/command-for) を使って、繰り返しのテクニックを紹介しました。

https://qiita.com/yoichiro6642/items/76c4266f4974ebaf3caa

そのときに取り上げたプログラムは、以下でした。

```vb
for i=1 to 10
  print random(1,6)
next
```

`for` 命令で出てきた `i` は、実は変数です。`for` 命令は「決められた回数だけ繰り返す」ということを行いたいときに利用します。上記のプログラムでは、「1 から開始して、10 になるまで繰り返す」ということになりますが、その数は変数 `i` に代入されます。

そのことを実際に確認してみましょう。エディター内のプログラムをすべて削除して、以下のプログラムを入力してください。

```vb
for i=1 to 10
  print i
next
```

入力できたら、「実行」ボタンを押してプログラムを実行してみてください。

![Screenshot_20231204_113349.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632303/7b4338f0-e3cd-b4a7-2c0d-0ac86b788ab5.png)

実行画面に、1 から 10 まで表示されたのがわかります。繰り返されるたびに、変数 `i` に代入された数が変化しているのを確認できました。

`for` 命令で使われる変数を「ループ変数」と呼びます。ループ変数を使うことで、「今、何回目の繰り返しなのか」を得て、それを別の計算などに利用することができます。

# 明日は何をつくるの？

明日は、ちょっと楽しめな話を取り上げます。それは「音楽」です。Jasmine Tea で素敵な音楽を奏でるための方法を紹介する予定です。