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字)
| 固定リンク | 0
「数学」カテゴリの記事
- NOT回路(ゲート)、AND回路、OR回路を組み合わせた設計、論理回路の問題の解き方、考え方~ 高校『情報 Ⅰ 』(2024.11.02)
- Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)(2024.09.20)
- パズル「絵むすび」31、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2024年9月14日)(2024.09.15)
- 四角形や丸の「真ん中」に正三角形を配置するデザイン(YouTubeほか)、長さ、重心、三角形分割錯視を考慮した視覚調整(2024.09.08)
- パズル「推理」、小学生向け8、カンタンな解き方、表の書き方(難易度3、ニコリ作、朝日be、24年8月31日)(2024.09.01)
「プログラミング」カテゴリの記事
- Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)(2024.09.20)
- ps5.js Web Editor(Processing)のプログラミングでお絵描き、アニメーション作成~ 高校教科書『情報 II 』(東京書籍)(2024.08.22)
- Python(パイソン)入門3~乱数を利用した、じゃんけんゲーム作成など(生成AI・ChatGPT4も使用)(2023.10.06)
- Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用(2023.09.06)
- Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に(2023.02.28)
コメント
テンメイさん
ブログ9周年 おめでとうございます!
毎日更新
実際続けるのは
ほんとうに大変なことだっだろうと思います
今日の記事は
私には 難しいので
その内容について
コメントできなくてごめんなさい
ドラマや芸能ネタという軽いものから
数学・英語・プログラムに至るまで
その能力に 驚かされます
それらは どこで 身につけられたのでしょうか?
私の方は 最近
<食べ物ブログ>と化してしまいました(笑)
人間 歳を重ねると
本能の赴くままに
生きていくことになるのでしょうか(笑)
それはそれで 楽しいですね
変化も そのまま受け止めて
自分らしく続けていくつもりです
テンメイさんも
テンメイさんにしか書けないブログ
続けて行ってくださいね
10周年を 楽しみにしています
投稿: 彩花 | 2014年8月31日 (日) 23時47分
> 彩花さんへ
こんばんは。ここではご無沙汰ですね♪
祝辞コメント、ありがとうございます
記事の選択がちょっと変わってるけど(笑)
9周年の当日ってことですね。
この記事は、見た目ほど難しくないですよ♪
高校1年の教科書通りにやってるだけだから。
僕もこの春、ほとんどゼロからのスタートで、
進み方も超~ゆっくり。。(^^ゞ
まあでも、プログラミングもある程度は何とかなるかな
・・って感触はつかめて来ました♪
毎日更新っていうのは、字数さえ少なければ、
簡単なことだと思います。
極端な例は、ツイッターで1日1回つぶやくだけとか♪
ブログでも、あちこち見てると、
かなり字数の少ないものもあります。
もちろんそれは僕の感覚であって、短い方が
読みやすくていいって人の方が多いのかも知れない。
でも、僕はここ数年、平均で2500字くらい
書いてるし、時間さえあればもっと書きたいほど♪
ネットだから可能なんですよね。
紙の本で沢山書くと、書き手も買い手も
お金がかかり過ぎます。
売れなくて読まれなくて、出版費用がかさむだけ(笑)
ネットなら、僅かな費用でいくらでも書けて読める。
自宅でも電車でも、歩きながらでも。
良し悪しはともかく、凄い時代ですよね
ほとんどネット依存症、ブログ依存症だけど、
あと1年は突っ走ってみるつもりです。
毎日、ハイテンション。明石家さんま状態(笑)
10周年の後は、週3回くらいにしたいけど、
自分でも先が読めないですね。
1年後の自分が何を考え、どう行動するのか。
そもそも、ココログが消える可能性もあるし (^^ゞ
同期のOCNブログがもうすぐ消えちゃうし。。
まあ、少なくとも1年後に、ブログを止めて
ツイッターやFacebookに移ることは
ないでしょう。あれは僕の趣味とは違う。
ただ、ブログを週3回にして、あとは
ツイッターっていう形なら、アリかも♪
で、ツイートをまとめてブログに組み込むとか。
僕の能力って言っても、単なる何でも屋ですからね。
専門家から見ると、すべて中途半端な人間
僕自身に言わせると、総合マニアック・ブロガー♪
理屈の強さは、将棋が強かった父親ゆずりかな。
言葉の読み書きは、母親が好きなんですよ。
特に書く方は、ずーっと日記を続けてるほど。
ほとんど読んだことないけど、探せば
僕への悪口も色々と書いてるんでしょう(笑)
いや、1回無理やり読まされたもんで (^^ゞ
で、そちらが<食べ物ブログ>と化した?
全然OKでしょ♪ みんなが興味を持ってること。
僕には書きにくい分野だから、お任せします
食べて、寝て、運動する。
本能による動物的行動は、人間にとっても基本。
まあ、食べ過ぎに注意してバランスを保てば、
健全で自然な方向性でしょう。
僕の場合は不健全なキャラだから、理屈を
こねたり、妙な事にこだわったりするわけです♪
これはこれで、ある意味、人間らしい事かも。
人間とは、本能が変形した動物だから。。
とにかく、あと1年は頑張ってみるつもりです
はたして、毎日更新をキープできるかどうか。
って言うか、1年後に生きてるのかどうか(笑)
お互い、しぶとくサバイバルしましょう
わざわざ、どうもでした。。
P.S. バックアップはしっかり保存しましょうね♪
投稿: テンメイ | 2014年9月 3日 (水) 02時50分