8.まずは計算



ここからやっとプログラミングに突入して行く事にしましょう。と、ここでちょっと考えてしまいました。それは「何からプログラムの勉強を始めれば良いのか?」でして、「そんな事は講座を始める前に考えておけよな」なんて言われそうですが・・・・まあ、そんな言葉は置いといてと。
まずは計算をしてみましょう。次の6行を新規のテキストファイルにコピーするなり、打ち込むなりして記述後、LGPで実行してみてください。
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
G@PRINT(CH,0,0,STR(4+5))
LOOP
G@FLIP()
ENDLOOP

どうですか、うまく動きましたか?
うまく動いているのならば、ディスプレイ上に真っ黒な背景に「9」と表示されたウインドウ画面が現れているはずです。終了するときには「ESC」ボタンを押すか、ウィンドウ右上の「×」を押してください。

この6行のプログラムが何をしているのかといえば、上から3行目の括弧内にある「4+5」を計算させ画面に表示するだけのプログラムです。
たかだか「4+5」をさせるだけで6行もの訳の分からない命令を記述させなければならないなんて馬鹿馬鹿しい・・・・なんて思わないでくださいね。
だって1〜2行目及び4〜6行目は計算とは関係の無い命令でしてすから。
これについては、今回の趣旨(計算の勉強)がことなるので詳細は後にします。といっても、何も分からないままでは気持ち悪いので簡単に説明しておくと、
1行目はウィンドウ画面の初期化(ウィンドウのサイズを指定している)を、2行目はウィンドウに表示する文字のフォントを指定を、4〜6行目は「ESC」ボタンが押されるまでプログラムが終わらないようにしています。(4〜6行目が無いと画面に結果を表示後一瞬にしてプログラムが終わってしまう)
今回はこのあたりはそんなもんなんだ程度で十分ですから、気にしないでください。(^^;)

ではちょっとずつ計算を高度にして行きましょう。4と5の2たつの計算が出来るのならば、数字を3つにした「4+5*2」も出来るはず。前回と同じように次の6行を実行してみてください。青色の部分が前回から変更となった部分です。

CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
G@PRINT(CH,0,0,STR(4+5*2))
LOOP
G@FLIP()
ENDLOOP

どうですか、「14」という結果が出ましたか?
ここで確認を取っておきたいのですが、「4+5*2」の結果が「14」だという事がどうも理解できないという人はいませんか?一応小学校の算数で習っている内容なので、そこらへんの詳しい説明は省かせてもらいますが、演算子(+−*/等)には計算をする優先順位があります。次にその優先順位の一覧を載せますので参考にしてみてください。(小さい番号程優先順位が高くなります)

優先順位 種別
括弧で囲まれたもの
関数式
マイナス符号
*%/
+−
<<,>>
関係式
論理式
代入式

もっと複雑な計算をしてみましょう。「5+6」の結果に「4」を掛けた結果と、「7−1」の結果を2で割ったものを足すというのはどうでしょう。
まず「5+6」に「4」を掛けるのですが、単純に「5+6*4」とすると計算は「6*4」が先に行われ、その結果に「5」が加えられてしまいます。ここでは「*」よりも優先順位の低い「+」を先に計算させたいのですがどうしたら良いのでしょう。と、ここで登場するのが括弧記号「(,)」です。これは中学生の数学で勉強する括弧記号と同じ性質のものであり、「括弧の中を優先的に計算をする」事を意味します。この括弧記号を使って「5+6」に「4」を掛ける計算を記述すると「(5+6)*4」となり、「5+6」を優先的に処理します。
ここで、ワンポイントなのですが、「(5+6)*4」という書き方と「4*(5+6)」は同じ結果になる・・・・ことは説明するまでもないですね。
同じように「7−1」の結果を2で割る計算は「(7−1)/2」となります。その2つの結果を加えるとなると「(5+6)*4+(7−1)/2」となります。計算の順番を次に示しますのでじっくりと理解してみてください。


この計算を次に示すので実行してみてください。青色の部分が前回から変更となった部分です。
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
G@PRINT(CH,0,0,STR((5+6)*4+(7-1)/2))
LOOP
G@FLIP()
ENDLOOP

どうですか「47」という結果になりましたか?
もし「(5+6)*4+(7−1)/2」というのが分かりずらければ「(5+6)*4(7−1)/2」というように括弧記号(青い部分)を上手く使ってみるとよいでしょう。(ちなみに括弧記号は幾ら書いても処理速度には影響しません)