Quick BASICの練習(3)~REM 文、GOTO 文、IF 文、各種トラブル・・
あっと言う間に3ヶ月の空白期間が経過してしまったが、代表的な初心者向け
ソフト・BASICの1つのヴァージョン、Quick BASIC(クイック・ベーシック)の
練習を続けよう。今は時間が無いので、少ししか進めないけど、ブログ9周年
の直前に、どうしてもプログラム記事を追加しておきたかったのだ。そのくらい、
重要で将来性豊かな分野だと思ってる。社会的にも、当サイトにとっても。
この3ヶ月間に、どうも私のPC内部に妙な変化が起きたようで、Cドライブに
インストールしたはずのこのソフトがなかなか発見できなかったし、スタートメ
ニューに置いてたショートカットもなぜか使えなくなってる。それどころか、先ほ
どショートカットが消えてしまった。
結局、別扱いで保存してたショートカットのアイコンのダブルクリックで何とか
起動できたけど、ソフト自体はいまだに発見できてない。もちろん、コントロー
ルパネルで「表示」の設定を変える操作は色々と試したが、実行ファイルが
表示されないのだ。
使用テキストは前回と同じく、少し前の高校数学の教科書、数研出版『数学A』
(1995年版)。教科書の記述のままだと上手く行かないこともあるので、マイ
ナーチェンジの試行錯誤を繰り返すことになる。今回は初めて、教科書通りに
作ったプログラムが暴走。保存してたプログラムが吹っ飛ぶ災難に遭遇した。
やはり油断大敵。初心者には得体の知れない世界のようだ。。
なお、これまで書いて来た4本の記事は以下の通り。
初めてのプログラミング♪
初めてのプログラミング(2)~計算その他、簡単なバッチファイル
・・・・・・・・・・・・・・・・・・・・
Quick BASICのダウンロード、ダイレクトモード(Immediate)入力と計算
Quick BASICの練習(2)~プログラム・モードでの入力&実行
☆ ☆ ☆
まずは、教科書p.174に即して、三角形の2辺と挟む角から、残りの1辺の
長さを求めるプログラムを作ってみた。例によって、わざと教科書とは少しだ
け変えてある。
教科書は三角形ABCの2辺の長さをm、nとしてるが、アルファベット2文字
ずつでAB、ACとしても大丈夫だった。あと、教科書は半角カタカナを使って
るが、今の所、私の環境では使えないので、単なるローマ字表記にしてある。

前回までの話から進んだ点はただ一つ。REM 文(リマーク文)を挿入したこと。
行の始めに、半角で「REM」とスペースを入力すると、その行は単なる説明と
なるらしい。リマーク(remark)とは、注釈とか寸評のこと。コンピューターの動
作には関係ないが、プログラムの読み手や書き手にとって分かりやすくなる。
第40,50行の「角の換算」とは、前回もやった、度数(degree)表示からラジア
ン(radian)表示への単位変換のこと。あらかじめ用意されてる三角関数(ここ
ではCOS=コサイン)が、弧度法のラジアンを使ってるので、180度をπラジア
ンとすることになる。円周率π(パイ)は無理数3.141592・・・だから、簡単の
ために3.14としてある。
結果は左の通り。画面の要求に従って、
角Aを60(度)、AB=2、AC=1と入力
すると、BC=1.73・・・という正答が表
示された。要するに、三角定規の細長い方の例で、1.73とは√3のことだ。
☆ ☆ ☆
次に、教科書p.175の問4。「半径r、中心角a°の扇形の面積Sを求める
プログラムを作れ。ただし、rとaの値は実行時に入力されるようにする」。a
は上の例と同じく、大文字でAとしてある。

この場合、弧度法は関係ないから、角度の換算は必要ない。実行画面で、
A=90(度)、r=2を入力すると、
正答のS=3.14が表示された。
半径2の4分円の面積だ。
☆ ☆ ☆
さらに、すぐ下の練習18。「x時間y分は何秒であるかを求めるプログラムを
作れ」。簡単すぎるが、図形以外の基本問題という意味か。

実行画面で、1時間と30分を入力すると、
z=5400秒という正答が示された。
☆ ☆ ☆
さて、今回のメインイベントは次の話だ。GOTO 文(ゴートゥーぶん)。プログラ
ムの処理の途中で、少し前の行など「に行く」(go to)ための文のこと。これを
使うと、繰返しの処理が可能になるが、停止が教科書通りには出来なかった。
無理やりソフト全体を閉じると、今までの保存ファイルが全て消えてしまった。
画面右上の×印をクリックしただけなのに。。
最初のそのトラブルは、データが吹っ飛んで残ってないから、改めて挑戦した
様子を示そう。「BB 」、「CC 」
を横に連続表示させようとしたけ
ど、教科書と違って縦にズラッと
並んでしまうから、スペースを入
れた意味は無かった。
停止するには、教科書だとSTOPキー
を押すことになってるけど、私のキー
ボードには無いから、代わりにFn(ファ
ンクション・キー)+Pause・BREAK
を押した。そこで止まった所まではい
いんだけど、元の画面に戻る方法が分からない。どのキーを押しても、繰返し
の表示が再開されてしまうのだ。
ちなみに、この2回目の挑戦でまた×印をクリックすると、今度はなぜかファ
イルが壊れず、エラー表示みたいなものも出なかった。前と何が変わったの
かは不明。。
☆ ☆ ☆
最後に、その無限の暴走を止めるプログラムについて。教科書p.177の
「条件判断」の項目に、IF 文(イフぶん)の説明がある。正直、先に予告して
おいて欲しかった。そうすれば、今までのファイルを失うことも無かったのだ。
まあ、暴走の経験もある意味、貴重ではあるけど。。
「IF 条件 THEN 条件成立時の命令文」の形の文を使えば、限られた条
件でのみ、処理させることが出来る。空白は半角スペース。「IF~THEN~」
は直訳すると「もし~その時~」だが、論理(学)的には「~ならば~」に相当
する定型文。
左は、1から続く自然数
を表示させるプログラ
ムで、N<7、つまり7
未満の時のみ、反復動
作をするから、7で自動
的に停止する。50行目がIF 文だ。
30行目のN=N+1というのは、この世界に特有の表現で、それまでのNの
値に1を加えて、新たなNとする
ことを表してる。
数学的に正しい表現を使うなら、
「N´=N+1」みたいなもの。よ
り正確に言うなら、添字に m+1
と mを使った式、
「N m+1 = N m + 1」みたいなものだろう。
(☆1ヶ月半後の追記:
第40行の右端に「;」
(セミコロン)を入れる
と、表示が右に並んだ。)
☆ ☆ ☆
省略表現として、「N=N+1」は巧みだと思うけど、こうした文を書くことで何か
不都合が起きないのかどうか、初心者としては心配になる。おそらく、不都合
が起きないことの一般的証明というのは存在せず、まあ何とかなってるという
のが実態なんだと想像する。
なお、0から自然数を書き並べるには、スタートを「N=-1」とすればいいよう
だ。素人的には、どうしてこのスタートから表示しないのか不思議だけど、まあ
実害は無さそうだから、気にしないことにしよう。
(☆追記: 左のように、
+1の操作の前に
「PRINT」を書けば、
スタートの数字1から
表示された。)
今週は計19547字となった。ではまた来週。。☆彡
cf. Quick BASICの練習(4)~IF 文、FOR 文、NEXT 文とループ(繰り返し)
(7)~関数値の計算、方程式の近似値
(8)~素数の判別、エラトステネスのふるい
(9)~数列の二項間漸化式と固有値、一般項
(元の字数 2851字 ; 追記込み 3132字)
原作本の出版
今日は予想外に
それにしても、
ちなみに現在の国交省・
左はキレイな秋
けど、いつの間に
もちろん、男目線と
とにかく昨日、
クが高くなる。
そろそろ時間切
で、買い物の後、
飲み物と食べ物
もっとも。
は意表を突く。
極めつけは、最後に出て来た、
ジャー。放送から半日しか経っ
さて、16日も前日に続い
これ、半ば、ス
浅川の前に、多摩川で見
と危ないかも。
あぁ、もうブロ


私はたまたま先日ネットのニュース
一方、この動画
左の熱海海岸は、
しかし、27時間
あぁ、もう時間が無くなっ
朝早くなのに、
からやってる訳
この日はちょっ
という訳で、唐
ま、とにかく、






今回の猿の自撮り写真もまさに、そ
左がその箇所の説明全文、
・・・って言うか、
まず、日本気象
時頃の時点ではもうちょっ
国土交通省のXバン
さらに、雨そのもの
今年は8月6日、
いや、この動画
時間に沿った
後で、防水性と
まずヨットを結ぶ
フツーにナスそ
では2本目の考
現在、4日(月曜)
それなら、左の
今は締切最終日
一方、ナスを左
それでは、ヨッ
結局、消去法を
締切日時を過ぎ
スポーツ系の読者の方々は既に
プブランド、Polar(ポラール)に決
そうゆう操作が必要になる。ポラー
耐久性が気になったけど、厚みと弾力が
左のストライド(歩幅)測定センサーが
左は胸に取り付け
RCX3の場合、センサー
コネクタと呼ばれる送信機らしき物を取
き試しに1回、手洗いしてみた。洗濯用
で、肝心のRCX3の測定・
選択して、左下、右上、右下、下側
最小(Min)心拍っていうのは、ウォー
まあ、脳トレは、脂肪の燃焼カロリーの
各ラップの記録には、スプリット(通過)
は、最大じゃなくて各ラップ終了時



最近のコメント