2017年10月07日

LGP講座(かり~第3回 入力と条件判断だ!

yuu_bustup.jpg
優:こ、こんにちは、柊優です……。今月もよろしくね……。

airi_bustup.jpg
愛梨:こんにちはー。結城愛梨ですー。今月もがんばるぞーっ。

haruka_bustup.jpg
陽香:永乃原陽香です。今月も、楽しく、DirectX対応BASIC・LGPについて勉強していきましょう。

yuu_bustup.jpg
今月は、入力と、条件判断について勉強していくよ……。頑張ろうね……。

airi_bustup.jpg
おーっ。今月は盛りだくさんだねっ。頑張っていこーっ。

haruka_bustup.jpg
それでは、今月もはじまりです。

~キーボードから入力しよう!KEYBTN2関数

yuu_bustup.jpg
それじゃ、まずはキーボードから入力することからやっていこうか……。それには、KEYBTN2関数を使うんだよ……。

airi_bustup.jpg
KEYBTN2か~。あれ?ということは、KEYBTN関数、というのもあるのかな?

haruka_bustup.jpg
はい、ありますよ。ただ、KEYBTN2関数のほうが便利なので、今回はそちらを使うことにします。

airi_bustup.jpg
はーいっ。それで、どう使えばいいのかな?

yuu_bustup.jpg
うん……。その前に、もう一つ関数を使うんだ。KEYGET2関数だよ……。

haruka_bustup.jpg
KEYGET2関数は、キーボードについての情報(どのキーが押されたかなど)を取得する命令です。KEYBTN2関数は、その情報から、実際に情報を調べる命令です。

yuu_bustup.jpg
まず、KEYGET2関数はこう書くんだよ……。
-----
I@KEYGET2( )
-----

haruka_bustup.jpg
そして、KEYBTN2関数はこう書くんですよ。
-----
変数=I@KEYBTN2(ボタンタイプ)
-----

haruka_bustup.jpg
こうすると、キーについての情報が変数に入るんですよ。

airi_bustup.jpg
このボタンタイプというのは?

yuu_bustup.jpg
うん。それは、どんな情報を取得するか、ということ……。どのキーが押されたかを知るなら、ここに0を入れればいいよ……。

haruka_bustup.jpg
ちなみに、1だと、キーが押されたかどうか、2だと押された時間を知ることができますよ。

yuu_bustup.jpg
それじゃ、これを踏まえたうえで、画面に押されたキーを表示するプログラムを作っていこうか……。なお、今回は数字キーだけについて考えていいよ……。

airi_bustup.jpg
はーいっ。

haruka_bustup.jpg
その前に、今回は次のプログラムを骨格として使います。
-----
SC=G@SETUP(640,480,16,1)
LOOP
G@CHRCLEAR(SC)
xxxxx
G@FLIP()
S@SLEEP(1000) //1秒停止
ENDLOOP
-----

airi_bustup.jpg
xxxxxの部分に、押されたキーを調べる文と、それを表示する文を入れればいいんだね。えーと……KEYBTN2命令は、押されたキーを調べるんだから、ボタンタイプに0を入れればいいんだよね。
そういえば、ボタンタイプに0を指定した場合、何が入るの?

yuu_bustup.jpg
うん。そのキーに対応した番号が入るんだけど、数字キーに限っていえば、押したキーの数字より1大きい数字が入るよ……。ただし、0が押された場合は、11が入るんだ……。

airi_bustup.jpg
ということは、単純に変数の値から1を引くわけにはいかないなぁ……。どうしたらいいんだろ?

haruka_bustup.jpg
よく考えてみてください。0が押されたときには変数に0を入れて、そうでないときには、そのまま1を引けばいいですよね?ということは……。

airi_bustup.jpg
あ!ここで、条件判断が出てくるんじゃないの?

yuu_bustup.jpg
うん、その通りさ……。条件判断については、この後説明するよ……。

~条件判断を入れてみよう~

yuu_bustup.jpg
さて……。条件判断の基本といえば、やっぱりIF文だね……。
IF文は、こう書くんだ……。
-----
IF 条件 THEN
条件が成立したときの処理
ELSE
条件が成立しなかったときの処理
ENDIF
-----

airi_bustup.jpg
へぇ~。VisualBasicなどのIF文と同じなんだね。
ということは、やっぱり、条件が成立したときだけ処理を実行させるときは、ELSE以降は省略してもいいの?

haruka_bustup.jpg
はい、そうですよ。 あと、条件の部分の式の書き方も、他の言語と同じです。

airi_bustup.jpg
よーし、それじゃさっそく、IF文を使って、プログラムを作るぞーっ。変数Kに押したキーの番号が入るんだから……。 Kが11ならKに0を入れ、それ以外なら普通に1を引くように処理を分岐させればいいんだよね。カタカタ……。

airi_bustup.jpg
よしっ。これでどうかな。
-----
SC=G@SETUP(640,480,16,1)
LOOP
G@CHRCLEAR(SC)
//キー入力受付
I@KEYGET2()
//変数Kに押したキーの番号を取得
K=I@KEYBTN2(0)
//Kが11(0キー)かどうかで処理分岐
IF K == 11 THEN
//Kに0を代入
K=0
ELSE
//Kから1を引き、押したキーと同じにする
K=K-1
ENDIF
//変数Kの内容を表示
G@PRINT(SC, 320, 240, STR(K))
G@FLIP()
S@SLEEP(1000) //1秒停止
ENDLOOP
-----

yuu_bustup.jpg
うん、これで大丈夫だと思うよ。 動かしてみて……

airi_bustup.jpg
はーいっ。
……やったぁっ。ちゃんと0を押したら、0って表示されたよっ。

lgp-01.JPG
▲ 0以外を押したとき

lgp-03.JPG
▲ 0を押したとき

haruka_bustup.jpg
よかったですね、愛梨ちゃん。
さて、条件判断の命令には、今回説明したIF文のほかにも、場合によって分岐させるSELECT文とSWITCH文の二つがあります。

airi_bustup.jpg
それってどういうものなの?

yuu_bustup.jpg
うん。まず、SELECT文は、成立した条件に合わせた処理を行うものなんだ……。
-----
SELECT
WHEN 条件1:
条件1が成立したときに実行する処理
WHEN 条件2:
条件2が成立したときに実行する処理
……
OTHER:
すべての条件が成立しなかったときに実行する処理
ENDSELECT

例:
SELECT
WHEN A > 5:
B=3
WHEN A == 5:
B=2
WHEN A < 5:
B=1
OTHER:
B=0
ENDSELECT
→例えば、変数Aが5より小さいときは、B=1が実行される。
-----

haruka_bustup.jpg
一方、SWITCH文は、指定した変数の値に合わせて処理を分岐させる命令なんですよ。
-----
SWITCH 変数
CASE 値1:
変数が値1のときに実行する処理
CASE 値2:
変数が値2のときに実行する処理
・・・
DEFAULT:
変数がいずれの値でもないときに実行する処理
ENDSWITCH

例:
SELECT A
CASE 1:
B=1
CASE 2:
B=3
CASE 3:
B=5
DEFAULT:
B=0
ENDSELECT
→例えば、変数Aが2のときは、B=3が実行される
-----

airi_bustup.jpg
なるほどーっ。うまく使い分けることが大切だねっ。

yuu_bustup.jpg
そ、そうだね……。それじゃ次回は、プログラム言語の、もう一つの大切な機能、繰り返しについて説明するよ。楽しみにしててね……。

airi_bustup.jpg
はーいっ。

haruka_bustup.jpg
それでは、また次回にお会いしましょう。

※次回の更新は、10月9日、『師匠のJava道場』の予定です。お楽しみに!
posted by 裏編 at 09:10| LGP講座(かり | 更新情報をチェックする

2017年10月04日

パソレクのなく頃に・2話

文 裏編/絵 伊地山基之 氏
※この記事は、裏編が習ったりしていた内容をもとに記述されています。
 現在の内容とは若干違っている部分があることをご了承くださいませ(平伏

page2a_1.jpg

page2a_2.jpg

page2a_3.jpg

page2a_4.jpg

※次の更新は、10/7、『LGP講座(かり』の予定です。お楽しみに~!
posted by 裏編 at 06:55| パソレクのなく頃に | 更新情報をチェックする

2017年10月01日

なでしこのIDE登場!『KMYsofts Easy Nadesiko』

師匠T:くああああっ!見よ、B-Magaはっ!

弟子D:黄金(こがね)に萌えているううぅぅぅぅっ!!

師匠T:ふぅ…… いい汗をかいたのう、弟子よ。さて、今回はなでしこ関係のソフトを特集するということで、なでしことなれば、わしらの出番であろう。

弟子D:そうですね……って、なにゆえでしょう?

師匠T:その答えは、遠い過去の彼方にあるのじゃ。

弟子D:わかるようなわからんような。

師匠T:無理やりわかれ。さて、今回紹介する『KMYsofts Easy Nadesiko(以下EasyNadesiko)』は、待ちに待った、待望のなでしこのIDEなのじゃ。

弟子D:おおおおおお!! ……あの、師匠。

師匠T:なんじゃ?

弟子D:IDEとはなんぞや

師匠T:たわけがっ!!(弟子に飛び蹴り)

弟子D:うわぁ、師匠、何をなさるんです。

師匠T:IDEとは統合開発環境のこと。 テキストエディタやコンパイラ、デバッガといった、プログラミングに必要なもの、プログラミングに役立つものをまとめて、一つのインターフェースから使えるようにしたものじゃ。 よく覚えておくがよい。

弟子D:は、はい……。 でも、そしたらとてもプログラミングが楽になりますよね。

師匠T:うむ。 まさに夢のツールであろうな。今回はその、Easy Nadesikoについて紹介していくことにするぞ。

弟子D:は、はい、師匠!

~まずは新規作成からじゃ~

師匠T:さて、まずは新規作成から見ていくことにするぞ。新規作成を選ぶと、このようなウィンドウが開く。

toku-ss-01.JPG

弟子D:あの、師匠、もしかしてこれは・・・

師匠T:うむ。よく気づいたの、弟子よ。おそらく、おぬしが思った通りじゃ。

弟子D:なんでしたっけ?

師匠T:たわけがっ!!(弟子に飛び蹴り)

弟子D:うわぁっ

師匠T:このウィンドウから選ぶと、プログラムの元型が自動的にできるようになっておるのじゃ。もっとも、ソフト名やソフト作者などの情報が書かれたコメントぐらいの簡単なものじゃがの。

弟子D:な、なるほど・・・。

師匠T:でも、それらをあらかじめ作ってくれるというのは、とても助かるものじゃろう。

弟子D:確かにそうですね。

師匠T:さて、ここでこのEasy Nadesikoの画面について説明しておこう。Easy Nadesikoの画面はこうなっておる。

toku-ss-02.JPG

師匠T:まず、タイトルの下にあるのが、言うまでもないがメニュー。さらにその下にあるのがいわゆるツールバーじゃ。ここまではわかるであろう。

弟子D:はい。

師匠T:そして、真ん中のテキストボックスが、プログラムを打ち込む部分じゃ。

弟子D:ふむふむ。 師匠。 左右にある白い部分はいかに。

師匠T:うむ……。。これには特に意味はないようじゃ。 一応、特定のテキストファイルを修正することで、ここの内容も書き換わるようじゃが。おそらくは、よく使う命令をすぐわかるように書いておくためのものではないかと思うの。

弟子D:なるほど……。

師匠T:さて、では次は編集の機能についてみていくとするぞ。

弟子D:はい、師匠!

~編集の便利機能なのじゃ~

師匠T:さて、まずは編集のメニューについてみていくとするぞ。次のような構成になっておる。
・切り取り
・コピー
・貼り付け
・グリップボードを確認
・選択文字数確認
・戻す
・進む

師匠T:最初の切り取り、コピー、貼り付けは言うまでもないの。選択した範囲のカット(その範囲を削除したうえでクリップボードにコピー)、コピー(普通に選択した範囲の内容をクリップボードにコピー)、貼り付け(クリップボードの内容をカーソルの位置にコピーする)じゃ。

弟子D:ふむふむ。

師匠T:あと、最後の戻す、進むも難しいことはない。戻すは、変更を一つ前に戻すこと。進むは、その戻したものをさらにもとに戻すことじゃ。

弟子D:なるほど。

師匠T:ここでのポイントは、グリップボードを確認(これはどう見ても、クリップボードの誤植じゃな……)と、選択文字数の確認じゃ。

弟子D:おぉっ、師匠。それはいかなるもので。

師匠T:うむ。前者は言うまでもなく、現在のクリップボードの内容を表示する機能。そして、後者は、選択した範囲の文字数を表示する機能じゃ。
なお、その文字数は、半角で返される。漢字などの全角で書かれた部分は、文字数の2倍の値になるから注意するように。

弟子D:はい、わかりました。 師匠!

~ツールの機能なのじゃ~

師匠T:さて、では続いては、ツールメニューの機能について、見ていくことにするぞ。ツールのメニューの中は、こうなっておる。
・区切り線を挿入
・スペースを置換え
・コメントに置換え
・アンコメントに置換え
・バックをロード
・ツリーを編集
・リストを編集

弟子D:ふむふむ。

師匠T:最後の二つは、ウィンドウの左右のツリーとリストの内容を編集するためのものじゃ。
そして、先頭の『区切り線を挿入』。これは説明しなくてもわかるな?

弟子D:はい。カーソルの位置に、区切り線を入れる、というそのままズバリなものでしょうか?

師匠T:うむ、その通りじゃ。まさにおぬしの言ったとおり。-で作られた区切り線が入るのじゃ。ほれ、この通り。

toku-ss-03.JPG

弟子D:なるほどっ。これは、例えばメインルーチンと関数との間を分けたり、関数と関数の間を分けたりするのに便利ですね。

師匠T:うむ。そうじゃの。こうした機能は、なでしこのエディタにはついていない機能だから、とても助かるの。
では次。スペースを置き換え。これは、リスト中の半角スペースを、全角スペースに置き換える、というものじゃ。

弟子D:??なぜそのような機能が?

師匠T:そのこたえは至って簡単。なでしこの公式サイトのプログラミング掲示板は、半角スペースはサポートしていないからなのじゃ。なので、この機能で変換してやるといい、というわけじゃな。

弟子D:なるほどっ。

師匠T:さて、次は二つまとめていくぞ。コメントに置き換え、とアンコメントに置き換え、じゃ。
これは、前者が選択した範囲を、コメントの範囲を表す/*、*/で囲むという機能。 アンコメントに置き換えはその逆、範囲内の/*、*/を取り除くというものじゃ。
実際に見てみようぞ。 こうなるぞ。

toku-ss-04.JPG

toku-ss-05.JPG

弟子D:おぉっ。これは便利ですね。コメントアウト(プログラムのある部分を、コメントにしてしまうことで、機能させなくしてしまうこと)に便利そうです。

師匠T:うむ、そうじゃの。これを使うことで、プログラミングが格段に楽になるじゃろうな。
では次じゃ。『バックからロード』。 これは、バックアップファイルからリストを読み込む機能じゃ。途中でEasy Nadesikoがフリーズした時などに役立つであろうな。

~とても便利な目玉、マクロじゃ!~

師匠T:ではいよいよ最後じゃ。
このEasy Nadesikoの目玉というべき機能について紹介するぞ。その名もマクロじゃ!

弟子D:マクロ!マクロが真っ黒・・・いてっ

師匠T:これは、なでしこのプログラミングに役立つ、いろいろな機能を呼び出すことのできる素晴らしい機能じゃ。このメニューを選ぶと、このようなウィンドウがまず開く。

toku-ss-06.JPG

師匠T:このリストから選べば、その機能が起動してくれるのじゃ。例えば、3番を選ぶと、GUIエディタが開いてくれるぞ。

弟子D:おぉっ!

師匠T:このリストを見ればわかる通り、このEasy Nadesikoには7つものマクロがあるので、プログラミングに役立つことは確実であろう。しかも、このマクロは自分で作るのも可能じゃ。作り方も、なでしこでプログラムを書き、それをmcrの拡張子で保存するだけと、とても簡単じゃ。

弟子D:それはとても便利ですねっ!

師匠T:うむ。ここまでEasy Nadesikoを説明してきたが、どうだったかな?
なでしこのプログラミングをさらに楽にしてくれるのが、よくわかったじゃろう。

弟子D:はい!このツール、今から使って、なでしこプログラミングしたいぐらいです!

師匠T:それはなにより。読者の諸君も、なでしこでプログラミングをするなら、これを使うことをすすめるぞ。
そして、いいプログラムができたら、ぜひB-Magaに投稿してくれい、待ってるぞ!
では、弟子よ。例のあれを。

弟子D:はい。このEasy Nadesikoは、かみょーん 氏の手によるもので、こちらからダウンロードできるぞ!それじゃ、また会おうぜっ!

※次の更新は、10/4。『パソレクのなく頃に』の予定です。お楽しみに!
posted by 裏編 at 09:04| 特集 | 更新情報をチェックする