いよいよ本格的なプログラムのはじまりです。ちょっとワクワクしますね。
ここからが長いと考えると、ちょっとウンザリしますね。
でもプログラムはおぼえたことが増えていくと、どんどん楽しくなってきます。
そのための準備運動だと思ってここはガマンしましょう。
今回用意したプログラムは、ここまでのおさらいでもありますが、ちょっと新しいこともいくつか出てきます。
どれもあとあと大事になってくることなので、ひとつひとつ身につけていきましょう。
ほっほっほ。ショクン、がんばっておるかな? ワシからのプレゼントとしてサンプルプログラムを用意したぞい。
プチコンにはサンプルプログラムが最初からいくつか入っているんだよね。
そのトオリだぜ! どうやって見ればいいのかも知らねえけどな!
そういえば方法はまだ教えてなかったね。DIRECTモード でこう入力してみよう!
- LOAD”SYS/EX1TEXT”
ゲームのセーブデータを「ロード」するのと同じ、英語の「LOAD」なんだね。
ミミザワリな効果音がついてるじゃねえか。パンクスピリットを感じるゼ!
パンクかどうかはわからんが、昔のBASICではこんなふうに音声化したデータをロードしていたのじゃよ。この画面で流れる音はさすがにただのカザリじゃがな。
オイ、OKしか出てきてねえぞ! 失敗してんじゃねェのか?
気が早いなあ。EDITモード にしてごらん。
ウ、ウオォ、なんだか今まで見たコトのない世界じゃねえか。コレは逃げるしかねえ!
CLSやPRINT命令は見おぼえがあるけど、それ以外にもいろいろ……
まあまあ。そうコワがるモノでもないんじゃよ。どれも知れば「なーんだ」というくらいの命令じゃ。ためしにRUNしてみればよかろう。
キホン的には、文字を表示するプログラムなんだね。色つきになってるところがあるけど、どうやってるんだろう?
グムム……下の方では足し算をやってんのか? オレは算数とか勉強みてえのはエンリョしたいゼ。
だいじょうぶだよワンパク君。計算するのはキミじゃなくプチコンだから。
ナニ? 計算もプログラムでやるってのか、聞きずてならねェな!?
じゃあ1行目から順に見ていこう!
ワシじゃワシじゃ、プチコン界のアイドルことハカセじゃ。
とうとう長めのプログラムのトウジョウじゃのう。そんな時にベンリなテクニックを教えておくぞい。
プログラムのあちこちに「’」で始まる行があるのがわかるよね。
ホントだ。1~4行目、10行目、15行目……
- ’┌──────────┐
- ’│ EXAMPLE1 │
- ’│ もじひょうじ │
- ’└──────────┘
- ’−−−
- ’−−−
で、ケッキョクこの「’」はナンだってんだ?
こうやって「’」と書くと、その行はプログラムで何も起きなくなるんだよ。
ハ、ハァ!? イミねえじゃねえか!
ははは。プチコンにとっては意味がないよね。でも、ボクらがプログラムを読むときにはベンリだろう?
そうかあ……3行目で文字を表示するプログラムであることをメモしてあるんだ。10行目や15行目はプログラムの区切りがわかりやすくなってるね。
そういうこと! この「’」はもともとREMと書くものだったんだ。REMとは英語のREMARK(コメント)の略だから、「プログラムに自分のコメントを書くための命令」ってところだね。もっとも、4文字使って「REM 」と書くよりもシンプルに「’」と書く方が多いかな。
「−−−」と線を書いておるのも、プログラム的には意味はないが、見やすくするためのクフウじゃな。1行目のように記号を使ってちょっと見た目を良くしたり、REM命令はある意味プログラマーのこだわりポイントじゃぞ。
そこなんだがよォ、それなら「−−−」ってムゴンで区切るだけじゃなくて、ちゃんとセツメイを書いてくれないとフシンセツじゃねぇか?
その通りなんじゃあああああああ
REM文が続いた次の5行目でまた新しい命令が出てくるね。「XSCREEN」に「VISIBLE」……?
- XSCREEN 0
- VISIBLE 1,1,1,1
む。これはショクンにはまだ早いかの。言ってしまえば、XSCREENで上下どちらの画面を使うか決めて、VISIBLEで画面上に表示するもの・しないものを決めているのじゃが……今のところ、今までどおり上画面に文字ぐらいしか表示しとらんからのう。
じゃあナンのためにプログラムに入れてるんだ? ムダじゃねえか!
他のプログラムを実行した後だと、その画面がまだ残っていることがあるからね。
もっともリセットすればそれも消えるし、いまボクらがやっているコトの間はあまり関係ないのさ。
今はこう書いておけば役にたつこともある、くらいにおぼえておくのがいいのかな。
じゃあ次の7行目を見てみようか。
- CLS
- COLOR 15
CLSはもう知ってるけど、その後はなんだろう?
COLORは色のことだよね。でも色を15にするって……?
これは「15番の色を選ぶ」と考えるといいよ。プチコンでは文字の色として
こんなふうに0番から15番まで色が決まってるんだ。
15番は白だから、つまり白をエラんで、……だから、どうだってんだ?
いちどえらんだ色はその後もずっとえらびっぱなしになるんだ。つまりこの行から後は、またCOLORで決めるまで、ずっと白色で字を表示することになるね。
てことは……オッ、やっとわかる行が出てきたゼ! 11~12行目で白色で文字をPRINTしてるってワケだ!
- PRINT”Ж:ニコチャン”
- PRINT”ALPHABET”
この2行はカンタンじゃな。一応、記号とカナとアルファベットを全部入れてみたぞい。
前から思ってたんだけどよォ、Жって「ニコチャン」マークってほど笑ってなくねェか?
そこは気がつかんかったああああああ
たとえば、さっきのこの2行なんだけど、実は1行にまとめることもできるんだ。
- CLS
- COLOR 15
こんなふうにね。
- CLS:COLOR 15
「:」(コロン) を間に挟むことで、ふたつの命令を1行につなげることができるよ。
こうやって1行につなげても、プログラムでのイミは変わらないんだね。
その通り、この2つの命令の場合は変わらないんだ。トクシュな命令だとそうでないこともあるけど、今は気にしなくていいよ。それはおいおいわかってくるさ。
ウーン? パッと見た目がちょっとワカリニククなっただけじゃねェか? ナンのメリットがあってこれを使うんだ?
コロンを使わないと、どうしてもタテに長いプログラムになってしまうからのう。コロンを使うのは、リストをコンパクトにまとめるクフウでもあるのじゃ。
ほかにも、区切りのいい命令まとめて1行におさめたい時なんかにも使うわい。
いくらでもつなげることができるけど、1行に詰め込みすぎると見づらくなってしまうこともあるね。
- CLS:XSCREEN 0:VISIBLE 1,1,1,1:CLS:COLOR 15:PRINT”みづらいよ”:PRINT”たすけて”
なにごともバランスがカンジンなのさ。
13行もPRINT文だけど、いつもとちょっと違うね。
- PRINT”12345”;”カタカナ ひらがな”
この途中にある記号はさっきの「:」に似てるけど、別のもの?
この記号「;」は「セミコロン」と言って、PRINT命令でよく使われるんだ。
カンタンに言えば、”を閉じた後に、改行せずに文字をくっつけるんだよ。
あんまりカンタンじゃねーぞ! もっとワカるように言いヤガレ−!
ためしにこう書いてみようか。
- PRINT”12345”
- PRINT”カタカナ ひらがな”
こうしてRUNするとどうなるかな?
- 12345
- カタカナ ひらがな
PRINTで書くたびに、次の行に表示されるんだね。
では、元にもどしてRUNしよう。
- PRINT”12345”;”カタカナ ひらがな”
- 12345カタカナ ひらがな
くっついてる! たしかにくっついてるぜ! ……だからナンだってんだ!!
そのままPRINT”12345カタカナ ひらがな”って書けばすむコトじゃねーのか!?
まあまあ。それじゃ、;の意味がわかってきたところで、こういう書き方はどうかな?
- PRINT”12345”;
- PRINT”カタカナ ひらがな”
- 12345カタカナ ひらがな
2つのPRINTでも、1つにくっついて表示されるんだね。
イヤイヤ、これも1行でPRINT”12345カタカナ ひらがな”って書けばイイってのは変わらねェぞ!
これはいちばんカンタンな例だからね。じゃあ、この先で「;」が本当に役に立つところを見てみよう。
- COLOR 12:PRINT”а”;
- COLOR 13:PRINT”б”;
- COLOR 11:PRINT”Я”;
- COLOR 9:PRINT”в”;
いままで習ったことがいくつも入っているね。まずCOLORで色を決めて、その色で記号をPRINTして、「;」で……
なるほど! そういうワケか!
気が付いたようだね。PRINT文の最後に「;」を付けておくと、次にPRINTするときにも、くっついたままで表示されるんだ。こんなふうにね。
абЯв
あいだにCOLOR命令が入ってもやっぱりくっつくってコトか……。
コロンといいセミコロンといい、イミはちがっても2つの行をくっつけるのは同じってトコだな。
ワンパク君、なかなかスルドイのう。
この後で出てくるが、セミコロンにはもう1つダイジな使い方があるのじゃよ。
23行と24行は、変数だね。
- APPLE=56
- ORANGE=123
今度の変数の名前はずいぶん長いけど、リンゴとミカンになっているね。
プログラムを実行した画面でリンゴとミカンの数を表示しているから、どうしてこういうバケツの名前にしたか、だいたいわかるんじゃないかな?
つまり変数APPLEには、リンゴの数を入れて、変数ORANGEには、ミカンの数を入れたってことだね。
スターップ! テメエらめんどクセエぜ! バケツにそれぞれリンゴ56コとミカン123コを入れたってことだろ、要するによォ!
ものすごくランボウにたとえたが、まさしくそういうコトじゃな。こんなふうに書くこともできるぞい。ちょっと書きかえてみい。
- APPLE=20+36
よ……よけいややこしくなってんじゃねェか!
ちょっと待って、コレは足し算になってるのかな?
さよう。20個のリンゴと36個のリンゴを、バケツにまとめて入れたら56個。変数APPLEには56という数字が入っておることになるな。
PRINT 20+36みたいな使い方もできるよ。これをDIRECTモードで書いてみると……
- PRINT 20+36
- 56
- OK
おいおい、ちょっとした計算機じゃねえか! なんかスゲエまだるっこしいけど!
今はまだ電卓を使ったほうがラクなレベルじゃが、プログラムの世界ではこの計算がなにかと役に立つんじゃよ。まあおいおいワカってくるじゃろう。
27行目にある、こりゃナンだ?
- LOCATE 5,10
ロ…カ……テ?
初めて出てきた命令だね。読み方は「ロケート」。英語で「場所を決める」って意味さ。
たしかにRUNすると、この先の文字が表示される場所が変わってるね。
文字をどこに出すか決める命令ってワケか。だが、しくみがサッパリだぜ! なんだこの5とか10とかの数字?
プチコンの上画面はヨコに50文字ぶん、タテに30文字ぶんあるのは知ってるね。マス目にするとこうかな。
そして、左上のマスをゼロとして、順に数字をふっていくとこうなるね。
つまりLOCATE 5,10は「左から6文字目、上から11文字目」に表示するということになるね。
ゼロから始まるから、6文字目をあらわす数字は「5」になるんだね。イメージした数より1少なくなるのは注意しないといけないなあ。
ワナみてえなモンじゃねェか! なんで左上を1にしなかったんだ?
こればっかりは、「コンピューターの世界ではゼロから始まるのがお約束」としか言いようがないのう。ゼロで始まる数え方はコレ以外の命令でもちょくちょく出てくるから、よーくおぼえておいた方がいいじゃろうな。
とにかく文字を出す場所はよくワカったぜ! そのPRINT文はコレ、どういうこった?
- PRINT”リンゴ = ”;APPLE;”こ”
セミコロンはもう出てきたね。
そんでAPPLEってのはたしか変数だったよな。それがセミコロンでくっつく……?
そうか! 変数APPLEには56って数字が入ってるから、これはこう書いてるのと同じなんだね。
- PRINT”リンゴ = ”;56;”こ”
たしかにRUNしても同じように表示されてるぜ! ナルホドな、PRINT文で文字と変数をつないで書きたいときは、セミコロンでつなぐしかねえってコトか……。
わかってきたじゃないか。そうやって28行と30行でリンゴとミカンの数を表示してるんだね。34行ではまた違った変数の使い方をしているよ。
- TOTAL=APPLE+ORANGE
- PRINT”ごうけい = ”;TOTAL
このTOTALっていうのは、やっぱり変数なのかな?
何が変数で何が命令か、初心者にはなかなか区別がむずかしいね。英字のあとにイコールが付いていたら、その英字はたいてい変数だって考えると早いかもしれないな。
それと、PRINTみたいな命令には EDITモード で色がつくから、色がついていないことでも区別できるね。
APPLEもORANGEも変数……で、+ってのは足し算か?
その通り! 変数の中に数字が入っていれば、そのまま計算式が使えるんだ。ここでTOTAL=APPLE+ORANGEと書いてあるのは、中の数字におきかえればTOTAL=56+123ということになるね。
それを35行目で表示してるんだね!
- PRINT”ごうけい = ”;TOTAL
それにしても……ナンのために変数を使ってんのか、オレはまだナットクいってねェぜ。サイショからゼンブ数字で書いてもいいんじゃねえか?
ホッホッホ。気持ちはワカらんでもないわい。
じゃが、たびたびリンゴやミカンの数が変わるとしたらどうじゃ? まず上のリンゴ=の数を書きかえて、次はミカンの数、最後に合計の数を順に書きかえねばならんな。これが変数なら、APPLEとORANGEの数を書き換えるだけで、最後の合計分は自動になるのじゃぞ。
プログラムの中でリンゴやミカンの数が何度も出るほど、手間がはぶけるってことだね。
ウーム……。カンゼンにナットクしたワケじゃねーが……。
まだモヤモヤしておるようじゃな。よかろう、そこがスッキリするようなサンプルを次までに用意しておくぞい。さらば、カミングスーンじゃ!
あ、行っちゃった。
いまさらだけど、博士って何の仕事してる人なんだろうね。
まァ、このへんはワカるようなワカらねえような……。
- PRINT ””
- PRINT ”─”*50;
- PRINT ”PUSH А BUTTON”
イヤ、やっぱりワカんねえな。
ず、ズイブン早くあきらめたね。
どれもPRINTしてるから、画面に出すメッセージのサイゴを書いているのはマチガイないんじゃないかな。
そうだね。ただ今までと書き方がちょっとちがうから、フシギに思うかな?
- PRINT ””
この行なんかは、画面に何も書いてないようにも見えるよね。
その通りだゼ! ”ではさんだナカミを書くハズが、中には何もねェじゃねえか!
ムダなことをしてるようにも見えるけど……あっ! この行の終わりには;がないんだ!
わかってきたかな。終わりに;が書かれていないPRINTは……
次の行にいくんだったな! ツマリ、この行は「1行だけ先にすすめる」ための行ってワケだ。
というコトは、次の行では長い線を引いているんだよね。
- PRINT ”─”*50;
???
プログラムを動かした画面を見ればココで─の字を50コ書いてるのはわかるんだけど……*50って書くの?
うーん、それで合ってるんだけど、なんで*記号なのかはまだヒミツ、にしておこうかな。
ナンだそりゃ?
この先はちょっとムズカしい話がつづくからね。そもそもこのあたりはプログラムがイキナリ終わってビックリしないように、後からつけたした部分だから、他のところよりムズカしい命令が多いんだ。
イ、インテリ君もけっこうミもフタもないコトを言うよね……。
あいだはとばすけど、せっかくだから最後の行だけはおぼえておこうか。
- END
END命令は、プログラムを終わりにするという、名前のとおりの命令だよ。
そのまんまだね……。
しかしコレ、どうせ最後の行だろ? ワザワザそんな命令入れなくても、自動的に終わるんじゃねえか?
だよね。かといってプログラムの途中に書いても、そこから先が実行されなくなるからムダになっちゃうし……
今はまだそう思うよね。だけどけっこうダイジな命令なんだ。またすぐに出てくるから、それまではこういう命令があるとだけおぼえておこう!
さっきからそんなのバッカリだな。オレのナカにモヤモヤがチクセキされていくぜ!
キソをおぼえておけば、応用がラクになるのがプログラムさ。この使い方はキソのキソ。応用に入る前におぼえておく方がトクだよ。
チッ、オリコウさんぶりやがって! しかしつねにラクな道を選ぶのがオレだ。今のうちにオボエとくぜ!
……。
今回のサンプルプログラムはほとんどいじってないけど、最後だしプログラムのセーブ方法もおぼえておこうか。
ロードがLOADだったということは、セーブもSAVE?
つまりそのままロードとセーブを置きかえて、こういうコトだな!
- SAVE”SYS/EX1TEXT”
- SAVE”SYS/EX1TEXT”
- Illigal function call(SAVE)
ガッデム! あっさりキョヒられたぜ!
サンプルプログラムは、上書き禁止になってるんだ。だから機能の呼び出しかたが正しくないというエラーになるよ。
上書きできねェだと!? ナットクいかねえな!
ヘンに改造したままセーブすると、サンプルプログラムがなくなっちゃうものね。でも書き換えたプログラムは保存できないのかな?
大丈夫、プチコンでは自由にファイル名を付けられるよ!
- SAVE”TORIAEZU”
- OK
とりあえずすぎるファイル名だな、オイ!
14文字以内で英数字であればなんでもいいよ。逆にこうして名前を付けたプログラムは、上書きでセーブされるから気をつけないとね。
テキトーにテストしたプログラムを大事なファイルに上書きしてタイヘンなことになったこともあるんじゃああああああ
(帰ったんじゃなかったっけ……)
ワシじゃワシじゃ、プチコン界のドンことハカセじゃ。
DIRECTモードにもダイブなれてきたことじゃろう。ちょっとしたテクニックをさずけておこうかのう。
- LOAD”(ファイル名)”
中に書いてあるファイル名のプログラムをロードします。
- SAVE”(ファイル名)”
中に書いてあるファイル名で、プログラムをセーブします。
- REM (好きなことば)
- ’(好きなことば)
自由なコメントを書きのこせます。
- XSCREEN 0
- VISIBLE 1,1,1,1
とりあえずこう書いておけば今はまちがいない、とだけおぼえておきましょう。
- COLOR (番号)
文字の色を変更します。
- LOCATE (横方向),(縦方向)
横0~49、縦0~29まで好きな位置に、文字の表示位置を決めます。
プログラムを終了します。
- PRINT 1+1
- A=1+1
- PRINT B+C
- A=B+C
このように数字や変数で計算したり、変数の中に入れることができます。
- (好きな命令):(好きな命令)
ふたつの文を1行につないで書けます。
- PRINT ”(好きな文字)”;”(好きな文字)”
- PRINT ”(好きな文字)”;
セミコロンの後には、文字がくっついて表示されます。
「スライドパッド、またはLボタン+十字ボタンで1画面スクロール」「Lボタン+Yボタン(バックスペースキー)で1行消す」「画面右下のボタンでコピー・ペースト」とおぼえておくといいでしょう。
「十字ボタン上下で、これまでの命令を読みもどし」「画面の上にある5つのキーは短縮ボタン」と、おおざっぱにおぼえておくと便利です。
「Lボタンを押しているあいだ、画面の上にカンタンにセーブとロードできるボタンがあらわれる」、とおぼえておくと便利です。
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.572 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:29 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30