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
「数学」カテゴリの記事
- パズル「絵むすび」34、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2025年5月24日)(2025.05.25)
- 小学生の習い事と受験勉強でしぶとく人気の算盤(そろばん)、令和ではタブレットと可愛いアプリで(2025.04.26)
- トランプ相互関税の税率の数式、経済的にも意味はあるけど数値1つ(分母の係数 φ)の代入ミス、英語原文と数学的解説(2025.04.09)
- 高速で高度な推論を行う最新AI、ChatGPT o3-mini にパズル「絵むすび」(朝日be、ニコリ作)を解かせると、少し出来る程度(2025.03.25)
- 4×9=36マスの格子を、8つの長方形(1~8マス)に区切る方法~開成中2025年入試、算数・問題2の解き方(2025.02.15)
「プログラミング」カテゴリの記事
- 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)
コメント