人生一度はやってみよう MSX Basic 入門
3.文字列と行番号
プログラミングの学習で有効なのは、記憶することではなく
体験した動作(操作)の意味を理解することだと私は思います。
例えば、お金を入れてジュースを買う、という動作の意味を理解していれば
切符などの自販機でも大丈夫ですよね。
記憶することよりも慣れることが大切です。
説明されたことだけなく、ちょっとアレンジして試してみましょう。
文字列を表示してみよう
日常の会話で文字列(もじれつ)という言葉はあまり使いませんが
プログラミングの世界ではよく使います。
ここまで print 命令で計算していたのは数値でした。
これから文字列の表示をやっていきます。
文字列を使うときはダブルクォーテーションで囲みます。
シフトキーを押しながら2のキーを押して入力します。
? hello [エンターキー]
? “hello” [エンターキー]
と入力してみましょう。
hello と入力したら 0 と表示されました。この理由はあとで説明します。
“hello” のときは hello と表示されました。
これは文字列として扱われています。
ダブルクォーテーションで囲むことでコンピュータは「これは文字列」と認識するのです。
今度は次のように入力しましょう。
? 12+3 [エンターキー]
? “12+3” [エンターキー]
ダブルクォーテーション無しなら、数値として計算されます。
有りなら、文字列としてそのまま表示されます。
行番号ではじめるプログラミング
これまでは入力してエンターキーを押せば、すぐ結果を表示していました。
この使い方だと電卓とそう変わりませんね。
もっと色々させるなら行番号(ぎょうばんごう)を使います。
行番号を使うことでコンピュータ上に記憶し、何度も繰り返し実行することができます。
次のように入力してみましょう。
cls [エンターキー]
10? 1+2 [エンターキー]
20? 3*4 [エンターキー]
clsは画面をクリアする命令です。
さて、今までと違う点に気づきましたか?
行番号を付けたことで、すぐに結果が表示されずOKの表示もありませんね。
listと入力してみましょう。
この命令は記憶されているプログラムを表示する命令です。
? はちゃんとPRINTに変換されて表示されます。
また、小文字で入力したものも大文字に変換されます。
コンピュータに記憶されたプログラムを実行するにはrun命令を使います。
runと入力してみましょう。
何度かrunと入力してみてください。
その度に同じ結果を表示します。
これがプログラミングです。
誰が操作しても何度と繰り返しても、記憶された命令を実行していくのです。
プログラムを消す命令 new
次のように入力してください。
cls [エンターキー]
list [エンターキー]
new [エンターキー]
list [エンターキー]
newは記憶したプログラムを消す命令です。
そのため、2回目のlistでは何も表示されずにOKがでました。
これまでに出てきたlistrunclsnewはよく使うので覚えましょう。
行番号は小さい番号から実行される
次のように入力してください。
cls [エンターキー]
100? 1+1 [エンターキー]
50? “2-2” [エンターキー]
5? 3*3 [エンターキー]
list [エンターキー]
run [エンターキー]
ご覧の通り、プログラムは小さい行番号から実行されます。
入力した順番は関係ありません。
また、10ずつ行番号を増やすルールもありません。
ただ、見た目がきれい、追加し易いなどの理由から行番号を10ずつ増やすことが多いです。
プログラムを追加してみよう
次のように入力してください。
cls [エンターキー]
list [エンターキー]
20? “msxbasic” [エンターキー]
list [エンターキー]
プログラムを追加するのは簡単です。
前後の行番号を確認して、間に入るように行番号を決めます。
プログラムを削除してみよう
次のように入力してください。
cls [エンターキー]
list [エンターキー]
delete 5 [エンターキー]
list [エンターキー]
deleteはプログラムを削除する命令です。
上の例では5行目を削除しました。
この命令の使い方は次の通りです。
使い方 | 例 | 動作 |
---|---|---|
delete 行番号 | delete 30 | 行番号 30を削除 |
delete 行番号-行番号 | delete 20-50 | 行番号 20から50までを削除 |
delete -行番号 | delete -30 | 行番号 30までを削除 |
ここで注意です。
存在しない行番号を指定するとIllegal function callというエラーになります。
最後にもう一つ、delete 命令を使わず削除する方法があります。
ただし、1行のみ消せます。
消したい行の行番号を入力しエンターキーを押すだけです。
delete 行番号と同じ動作をします。