Quick BASICの練習(6)~DIM文と配列変数(添字つき変数)
時間も残り字数も少ない、年の瀬の週末。1ヶ月ぶりにプログラミングで簡単
な記事を書いて済ませようと思ったら、失敗してしまった。久々に、ソフトがフ
リーズ(異常停止)したし、練習問題の完全な解答もまだ出来てない。それで
も、「配列変数」その他、今までに出てない領域に踏み込んだのは確かだか
ら、クイック・ベーシックの6本目の記事としてアップしとこう。
これまでのプログラミング記事7本(2本+5本)は以下の通り。ほぼ完全に
知識ゼロ、ソフトも無い状態の初心者状態からスタート。必要なら過去記事
に戻って読むことをお勧めする。
初めてのプログラミング♪
初めてのプログラミング(2)~計算その他、簡単なバッチファイル
・・・・・・・・・・・・・・・・・・・・
Quick BASICのダウンロード、ダイレクトモード(Immediate)入力と計算
Quick BASICの練習(2)~プログラム・モードでの入力&実行
Quick BASICの練習(3)~REM 文、GOTO 文、IF 文、各種トラブル・・
Quick BASICの練習(4)~IF文、FOR文、NEXT文とループ(繰返し)
Quick BASICの練習(5)~二重ループ、流れ図(フローチャート)
テキストは高校数学の教科書、数研出版『数学A』(1995年版)。教科書のま
まだと上手く行かないこともあるし、勉強にもならないので、マイナーチェンジ
や試行錯誤を繰り返すことになる。
☆ ☆ ☆
では、新しい要素の「配列変数」(array variable)。簡単に言うと、高校数学
以上で出て来る、添え字付きの変数のことだ。X₁、X₂とか、Anとか、右側に
0以上(または1以上)の整数を付けることで、グループ分けした変数。プロ
グラミングの場合、小さい添字の代わりにカッコを使って、X(2)、A(I)のよう
に表現する。
変数の数が少なければ、単にアルファベットを多用する方が簡単だけど、変
数が大量にある時に困るし、「k番目の変数」というような指定もできない。配
列変数を使うと、AさんとBさんの2回ずつの点数を、A₁、A₂、B₁、B₂と
表すことも出来るし、実用的なのだ。
では、教科書p.188の例を少し変えたプログラムから。
まず、Dimension(次元)の略語「DIM」を使って、配列変数A(0)~A(3)を
用意。一番大きな数のもの、つまりA(3)だけ書く。それぞれの値を2、4、6、
8と決めた後、似て非なるものとして、A0~A3も用意(それぞれ、1、3、5、7)。
こちらを先に、そのままプリント(表示)した後、FOR~NEXT構文で、配列変
数をプリントさせる。
実行(RUN)の結果は左の通り。下
段がA(0)~A(3)で、これだけの事
なら配列変数を使う意味は無い。た
だ、書き方や扱いが違うわけだ。
☆ ☆ ☆
続いてp.189の例3。さいころを何度か投げて、1~6の目がそれぞれ何回
出たか、カウントするプログラム。メモ用紙に手書きした方が早いが、勉強の
ためだ。
配列変数は
X(1)~X(6)。
出た目をAとし
て入力、X(A)
が1ずつ増えて
行く。3が出れ
ば、3の回数を
示すX(3)が1
増える。GOTO
文で第30行に戻って、次の目を入力。最後は0を入力して、IF~THEN構文
で第80行にジャンプ、さいころ投げ終了。各目の回数が表示される。
左は「3、5、5、2、4、4」と出たと仮定した
場合。確かに、1は0回、2は1回、3は1回、
4は2回、5は2回、6は0回と表示された。
これを「X(1)は0、X(2)は1・・・」という表
示にする方法は、まだ発見できてない。
「PRINT ”X(I)”」とプログラミングすると、
「X(I)」と表示されてしまうのだ。クリスマス
後に再チャレンジの予定。
(☆追記: 各配列変数の初期値は、設定しなくても自動的に0となるらしい。)
☆ ☆ ☆
最後に、まだ苦戦中のp190、問9。ある集団の人達の年齢を入力して、年代
別に分けるプログラムを作れという問題だけど、自然数÷自然数の商を求める
関数が使えない環境なので(¥マークが使用不能)、不利な状況。37¥10=3
で30代とか出来ない。
とりあえず今日は、「20歳以上の成人と未成年者を分けてカウントするプログ
ラム」を書くだけで終わりにしとこう。
配列変数は未成年者(0歳以上 AND 20歳未満)がX(0)、成人がX(1)。
REM文(説明書き)に続いて、第20行で「DIM X(1)」とだけ書いて設定。
2つの条件を「AND(かつ)」でつないだのは初めてだし、数Aの教科書には
見当たらない。「200」歳入力で終了。
8、15、22、35、48と年齢を入力
すると、「区分0は2人 区分1は
3人」と出力される。これを「X(0)
は」とか「未成年者は」などと表示
させるのが、残された課題。色々
と試してるとフリーズしたのだ。
それでは今日はこの辺で ☆彡
cf. Quick BASICの練習(7)~関数値の計算、方程式の近似値
Quick BASICの練習(8)~素数の判別、エラトステネスのふるい
Quick BASICの練習(9)~数列の二項間漸化式と固有値、一般項
(追記 104字 ; 計 2151字)
| 固定リンク | 0
「数学」カテゴリの記事
- 3年連続中止の数学甲子園の2019年・予選問題、2つのAIに解かせると大苦戦(ChatGPT4、Wolfram Alpha)(2023.09.15)
- パズル「絵むすび」29、小学生向けのカンタンな解き方(難易度4、ニコリ作、朝日新聞be、2023年8月26日)(2023.08.28)
- パズル「絵むすび」28、AI(ChatGPT4)では解けないので、人間の解き方(難易度4、ニコリ、朝日、23年6月10日)(2023.06.10)
- ChatGPT-4、パズル「推理」の解答に大苦戦♪(難易度5、ニコリ作、朝日be、23年5月27日、表は使わない)(2023.05.27)
- パズル「絵むすび」27、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2023年4月8日)(2023.04.09)
「プログラミング」カテゴリの記事
- Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用(2023.09.06)
- Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に(2023.02.28)
- 令和3年度、文科省・情報活用能力調査の調査問題例と正答(小中高、4年1~2月)、感想とレビュー(2022.12.28)
- C言語入門5~選択構造、if文、else、switch-case文による多岐分岐(2021.11.20)
- 将棋AIも採用、ミニ・マックス法の無駄を省いた α β(アルファ・ベータ)法と α 値、β 値の具体例の解説(2021.11.18)
コメント