2017年4月16日日曜日

プログラミング学習四【理解するべきポイント】

プログラミングとは何なのか、まず知るべきことは何なのか、どうすればできるようになるのかを説明するブログ。今回の学習四では一~三で理解した“部品”を並べて簡単なプログラムを作ります

話の内容

○“部品”を使って命令を並べたのがプログラム
ポク太郎です。

今回はいよいよプログラムを組みます。
一~三で理解した“部品”を使った命令を並べます。

【注意】
説明のために、WebMSXエミュレータ(クリックするだけでブラウザ上で動きます)を使用します。別ウインドウで開いておいて下さい。
他の学習から続けて行う方は一旦リセットを行ってください。(左下の電源マークをクリックーReset)

プログラム中にある[ENTER]の表記は、打ち込むのではなくエンターキーを押すという意味です。
※命令自体はMSX用なので一切覚える必要はありません。上にある“話の内容”が伝わればいいんです。

まずはフロッピーの使い方

それでは、以下のように打ち込んでみてください…と思ったのですが、長いので打ち込むのが大変です。
プログラムを身に付ける場合には“四苦八苦して打ち込む”という苦行が非常に大切なのですが、今触っているのは35年前の化石コンピュータ。いくらなんでもこれでの苦行は意味が無いので、プログラムが保存してあるフロッピーディスクを用意しました。
フロッピーディスク使い方
ディスクをMSXにセットするMSX画面のディスクマーク(左下電源マークの右)をクリック-Load From Files
→上でダウンロードしたフロッピーディスクを選択
ディスクの中を確認するFILES[ENTER]
→保存されているプログラムファイルが並んで表示されます。
ファイル名が確認できます。
ディスクからプログラムを読み込むLOAD "(ファイル名)"[ENTER]
→LIST[ENTER]としてプログラムを確認してください。
読み込みできましたでしょうか。フロッピーをセットして、
files[ENTER]
今回のファイル名は"REI4-1"ですので、それがあるのを確認して、
load "REI4-1"[ENTER]
これで読み込み完了です。
プログラムの内容を確認するには、
list 行番号(省略すると全行表示)[ENTER]
“行番号”を省略すると、全部の行が一気に表示されます。
10 cls[ENTER]
20 A$="Poku"[ENTER]
30 B$="James.Rambo"[ENTER]
40 M1=len(A$)[ENTER]
50 M2=len(B$)[ENTER]
60 KEI=M1+M2[ENTER]
70 SA=M1-M2[ENTER]
80 PRINT A$,B$[ENTER]
90 PRINT "Moji No Kazu"[ENTER]
100 PRINT M1,M2,KEI,SA[ENTER]
110 C$="(c) "+A$+"."+B$[ENTER]
120 PRINT ""[ENTER]
130 PRINT C$[ENTER]
140 PRINT "All Rights Reserved"[ENTER]
上記のプログラムが表示されましたでしょうか。


“部品”を使って命令を並べたのがプログラム

それではプログラムを見てみます。
●例4-1
行番号プログラム命令の内容
10cls 画面を全部消セヨ
20A$="Poku" 変数A$に値を代入セヨ
30B$="James.Rambo" 変数B$に値を代入セヨ
40M1=len(A$) 変数M1にLEN()関数の戻り値を代入セヨ
※LEN()関数は文字の数を返す関数でしたね。
50M2=len(B$) 変数M2にLEN()関数の戻り値を代入セヨ
60KEI=M1+M2 変数KEIにM1とM2を足し算した結果を代入セヨ
70SA=M1-M2 変数SAにM1からM2を引いた結果を代入セヨ
80PRINT A$,B$ 変数A$とB$を表示セヨ
90PRINT "Moji No Kazu" "Moji No Kazu"という文言を表示セヨ
100PRINT M1,M2,KEI,SA 変数M1、M2、KEI、SAを表示セヨ
110C$="(c) "+A$+"."+B$ 変数C$に"(c)"と変数A$と"."(ピリオド)と変数B$を
足し算したものを代入セヨ
文字列を足し算すると文字列をつなげることができます。
120PRINT "" ""(空白)を表示セヨ
130PRINT C$ 変数C$を表示セヨ
140PRINT "All Rights Reserved" "All Rights Reserved"という文言を表示セヨ

実行してみましょう。
run[ENTER]

結果がどうなっているかを見ながら1行づつ上表の“命令の内容”を読んでみてください。


表を見ると分かりますが、一~三で見てきた“部品”を使って変数に値を代入する命令文が並んでいます。10行目から始まり一つづつ処理して進みます。表のように手順をコンピュータに教えているものが「プログラム」と呼ばれるものです。
※今回の例は処理の順番が一切入れ替わることなく進み、最後まで到達した時点で“Ok”と表示して終了するタイプです。

「プログラム」というものがどういうものかつかめたら、以下のように遊んでみてください。(これ大事です。)
20、30行目でポク太郎の英名を変数に代入しています。この部分をご自身の名前に変更して遊んでみてください。以下で目的の行番号を表示させ、書き換えて[ENTER]です。
list 行番号(省略すると全行表示)[ENTER]


ここで大事な大事な心構え

プログラムの内容を理解するには、目を皿のようにして命令を一つ一つ追いかける必要があります。
通常、無駄な命令は一切書かないのですべてに意味があります。
そうやって1ステップづつ確認したものをコンピュータの演算速度でブン回します。

それが「プログラミング」という作業なのです。



簡単なプログラムを一つ眺めてみました。
分かるようになるためには。目を皿のように1ステップづつ。(これ大事です)


話の内容

こんな話でしたが内容は伝わりましたでしょうか。
○“部品”を使って命令を並べたのがプログラム


プログラミング学習
学習一その場で触って“変数”を理解
学習ニ利用できる“部品”の一つ-四則演算と剰余を理解
学習三利用できる“部品”の一つ-関数を理解
イマココ→学習四“部品”を使ってかんたんなプログラムを作る
学習五プログラムが「命令の順番を書き記したもの」ということを実感
学習六“順番を変える命令”の一つ-ループを理解する
学習七“順番を変える命令”の一つ-条件分岐を理解する
学習八プログラムを組めるようになるにはどうするべきかを理解する

その場で実践するプログラミング学習

プログラミング作業の心得、肝、ミソ


スポンサーリンク



ブログ村へ blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 コンピュータ(ハード/ソフト)
映画・ドラマ・芸能
変人のつぶやきとトラブル
ホームへ戻る


4 件のコメント:

  1. MSX、導入しやすそうでいいですね(^-^)
    これから高度なプログラム期待してますw

    返信削除
    返信
    1. >アリスさん
      導入?
      クリックするだけでブラウザ上で立ち上がりますよ。Javaも要らないみたいです。

      高度なことというより、35年前の化石を使って歴史を追体験していただこうかと。
      そうすることで今の開発環境に標準装備されている機能の意味がクローズアップされるので、
      その開発環境(どんなものでも)を新しく始める方の理解の助けになるのではと思いまして。

      削除
  2. ほんとだ スマホからだったんで諦めてクリックしてなかったですが、クリックしたら立ち上がったw
    僕はいまPOKUを表示してみましたw

    返信削除
    返信
    1. >アリスさん
      ぉぉ~できましたか~
      しかしこのWebMSXってどうなってるんですかね。こんなものがブラウザ上で動くなんて。
      この機械をリアルタイムで触っていたポク太郎からすると21世紀を感じてしまいますw

      削除