2016年12月27日火曜日

生涯学習:導入説明【プログラミングって その三】

プログラミングって-その二の続きです。
------------------------------------------- “伝えたい内容”
○四則演算と関数
○プログラムを組めるようになるには
------------------------------------------------------------
   ※命令の表記自体はMSX用なので覚える必要はありませぬ。
    この記事では上にある“伝えたい内容”が伝わればいいんでス。

まずは前置き。

 ○前置き1○
説明のためにWebMSXエミュレータを使用します。別ウインドウで開いておいてください。
(左下の電源マークをクリックーResetを選んでぶとリセットできます。)

 ○前置き2○
例に挙げたプログラムを保存したフロッピーディスクです。
これをMSXで読み込むことで、プログラムを打ち込んだ状態にできます。



●ディスクをMSXにセットするMSX画面のディスクマーク(左下電源マークの右)をクリック-Load From Files
上でダウンロードしたフロッピーディスクを選択。

●ディスクの中を確認するFILES[ENTER]
保存されているプログラムファイルが並んで表示されます。

●ディスクからプログラムを読み込むLOAD "(ファイル名)"[ENTER]
LIST[ENTER]としてプログラムを確認してください。

  ※[ENTER]とある部分は打ち込んだ後、[ENTER]キーを押すという意味です。
   この動作は毎回忘れずにお願いしまス。


それでは、

プログラミングって-その二でコンピュータの処理には明確な順番があることが分かりました。

では、実際にどう処理するの???
てことで、まずは四則演算ぽいものの方法を。

●四則演算ぽいもの

●例1(LOAD "3-REI1"[ENTER]で読み込めます)10 cls[ENTER]
20 A=8.5[ENTER]
30 B=5.1[ENTER]
40 PRINT "A=";A,"B=";B[ENTER]
50 PRINT ""[ENTER]
60 PRINT "+ =";A+B[ENTER]
70 PRINT "- =";A-B[ENTER]
80 PRINT "* =";A*B[ENTER]
90 PRINT "/ =";A/B[ENTER]
100 PRINT "MOD =";A MOD B[ENTER]


さぁ目を皿のようにして1ステップづつ追いかけます。
流れはこんな感じ。
     10行     画面消す
     20、30行   A、Bに値を代入
     40、50行   A、Bの値と空白行を表示
     60~100行  計算結果を画面上に表示する(掛け算は*、割り算は/)
     PRINT の後""で囲まれた部分は、その部分を表示してその後;(セミコロン)以降を表示せよという意味です。

RUN[ENTER]として実行しましょ。
計算結果をみるとちゃんと計算されてますな。
暗算して表示結果が正しいかチェックしてみましょ。これ大事。
見慣れないのは100行目。
          A MOD Bは、
          「AをBで割ったときの余りを返せ」という演算。
          今、Aは8.5、Bが5.1なので、余りは3.4。表示は3。
       どうもこの機械のMOD演算は答えを整数に直して出力するみたいですな。


これが四則演算ぽいものでした。
お次は関数。


●関数-数値演算

●例2(LOAD "3-REI2"[ENTER]で読み込めます)10 cls[ENTER]
20 A=3.1414[ENTER]
30 B=0[ENTER]
40 PRINT "A=";A,"B=";B[ENTER]
50 PRINT ""[ENTER]
60 PRINT "kansu1=";INT(A)[ENTER]
70 PRINT "kansu2=";SIN(B)[ENTER]
80 PRINT "kansu3=";COS(B)[ENTER]

また目を皿のようにして1ステップづつ追いかけます。
流れはこんな感じ。
     10行     画面消す
     20、30行   A、Bに値を代入
     40、50行   A、Bの値と空白行を表示
     60~80行   計算結果を画面上に表示する

RUN[ENTER]として実行しましょ。
     INT()は、「渡された値(カッコの中)を整数にして返す」関数。
          プログラムでは 3.1414 を渡したので結果は 3 と表示されました。
   ↓サイン・コサインが苦手な方は無視してね。↓
     SIN()は、「渡された値のサインを計算して返す」関数。
          プログラムでは 0 を渡したので結果は 0 と表示されました。
          合ってますか?計算してみましょ。
     COS()は、「渡された値のコサインを計算して返す」関数。
          プログラムでは 0 を渡したので結果は 1 と表示されました。
          合ってますか?合ってますな?
   ↑サイン・コサインが苦手な方は無視してね。↑
一つ一つ確認するのが大事です。

●関数-文字列演算

●例3(LOAD "3-REI3"[ENTER]で読み込めます)10 cls[ENTER]
20 A$="POKUTAROU"[ENTER]
30 PRINT "A$=";A$[ENTER]
40 PRINT ""[ENTER]
50 PRINT "kansu1 =";LEN(A$)[ENTER]
60 PRINT "kansu2 =";MID$(A$,1,4)[ENTER]

今度も目を皿のようにして1ステップづつ追いかけます。
流れはこんな感じ。
     10行     画面消す
     20行     A$に値を代入する(MSXでは文字列を代入する変数は後に $ を付けます。)
     30、40行   A$の値と空白行を表示
     50、60行   計算結果を画面上に表示する

RUN[ENTER]として実行しましょ。
     LEN()は、「渡された値の文字の数を返す」関数。
          プログラムでは POKUTAROU を渡したので結果は 9 と表示されました。
          POKUTAROU ←何文字ありますか?
     MID$(,N1,N2)は、
          「渡された値のN1文字目からN2文字分を返す」関数。
          プログラムでは "POKUTAROU"、N1に 1、N2に 4 を渡したので、
          結果は POKU と表示されました。
          どうですか?合ってますか?

     ちょと頭の体操
          60行目を MID$(A$,1,LEN(A$)) と変えたらどうなるでしょう??
               MID$(A$,1,LEN(A$)-1) と変えたらどうなるでしょう??
          やってみてくだされ。
          関数の結果を関数に渡すこともできるし、
          関数の結果に演算して関数に渡すこともできるということですな。


こういったINT()、SIN()、COS()、LEN()、MID$(,,)などというものを“関数”と言って、言語によってたくさん用意されています。また、自分の都合のよい関数を作って自作関数として使うなんてことも頻繁に行います。


●プログラムを組む

「プログラムを組む」作業は、「使う部品を目的の順番に並べる」ということ。
  並べるのは、その二で紹介したループと条件分岐。
  プログラムで使う部品は、四則演算や関数。

使う部品は山ほどあります。
だからといってリファレンスマニュアルを見つめて全部覚えても、部品の並べ方に目が行かないと組めるようにはなりませぬ。

プログラムを組むためには、「結果」を想定して「部品」をどういう「並べ方」で使うのか?ということを見つける必要があります。
でもそれって発明ですよね。コンピュータが登場してから50年、60年みんなで考えてできあがったものなので初めから組める方が不自然なのでス。
「こんな結果が欲しいならこうするんだ」と覚えていく、つまり慣れってやつです。
そうすることで自分で思いつくようになるんですな。

例えば、ギネスブックに挑戦!なんていうドミノ大会があったとします。
そういう番組をいくつか見てると、何らかの手法を自分で思いつきますよね?
そのまま真似るのではなく、“自分で思いつく”ってやつ。
同じことを考える人がいる、いないは関係ありません。
とにかく自分で思いつく。そういう状態になる=プログラムが組めるということになります。


まとめると、

   1.並べ方を変化させる命令があって、それを使って順番を決めるということを理解  ←シッカリ
   2.部品の数を覚えるのではなく、どれが部品なのかということを理解
   3.サンプルプログラムを目を皿のようにして1ステップづつ追いかける
   4.サンプルを少し自分でいじってみる

3.と4.の中で、部品をいくつか覚えるでしょうし、こんなときはこんな順番でということを覚えるでしょう。
そうなってくれば、リファレンスで部品を調べてどうこうできないか?と自分で思いつくようになると思います。


それがプログラムを組めるようになる方法でス。


小学校等の学校でプログラミング教育を必修とするニュースが流れてましたが、
お子さんが困らないかとご心配の方がいらっしゃるかもと、MSXを使って説明してみました。


記事の内容は伝わりましたでしょうか。
------------------------------------------- “伝えたい内容”
○四則演算と関数
○プログラムを組めるようになるには
------------------------------------------------------------


【関連記事】  プログラミングって-その二
プログラミングって-その一




スポンサーリンク

スポンサーリンク



0 件のコメント:

コメントを投稿