« 「東京のマラソン」出場決定♪&黄色の神戸マラソン&マメ痛ジョグ | トップページ | 紅白歌合戦の出場歌手決定、超軽~いつぶやき♪ »

Quick BASICの練習(5)~二重ループ、流れ図(フローチャート)

またまた1ヶ月半の空白期間が経過してしまったが、代表的な初心者向け

プログラミングソフト・BASICの1つのヴァージョン、Quick BASIC(クイッ

ク・ベーシック)の練習を続けよう。雨の夜にはちょうどいい♪

 

これまで書いて来た6本の記事は以下の通り。ほぼ完全に知識ゼロ、ソフト

も無い状態の初心者状態からスタートしてる。必要なら、過去記事に戻って

読むことをお勧めする。 

 

 

  初めてのプログラミング♪

              ~メモ帳でバッチファイル作成(コマンドプロンプト用)

  初めてのプログラミング(2)~計算その他、簡単なバッチファイル

    ・・・・・・・・・・・・・・・・・・・・

  Quick BASICのダウンロード、ダイレクトモード(Immediate)入力と計算

  Quick BASICの練習(2)~プログラム・モードでの入力&実行

  Quick BASICの練習(3)~REM 文、GOTO 文、IF 文、各種トラブル・・

  Quick BASICの練習(4)~IF文、FOR文、NEXT文とループ(繰返し)

 

 

使用テキストは今まで同様、少し前の高校数学の教科書、数研出版『数学A』

1995年版)。教科書のままだと上手く行かないこともあるし、自分自身の勉

強にもならないので、マイナーチェンジや試行錯誤を繰り返すことになる。この

教科書を一通り終わらせるまで、あと記事3本くらいだろう。。

 

 

          ☆          ☆          ☆

まずは前回の復習も兼ねて、教科書p.181の問5から始めよう。n個の異な

るものからr個取り出して並べる順列(Permutation)の総数、nPrの計算。

ただし、nとrは後から数値を代入。また、「FOR ~ TO ~ STEP -1

の構文を用いてループ(繰返し)を作る。n×(n-1)×・・・×(n-r+1)の掛

け算を、左から、つまり大きい順に実行させるわけだ。

 

141125d まずnとrを入

 力させる形を作

 る。次に、順列

 nPrの初期値

 は1と設定して、

 nからn-r+1

 まで順に掛け合

 わせて行く。

 

141125e  実行して、指示に応じてnとrの値を5、3と代入す

  ると、確かに正しい答が表示(PRINT)された。

  5 P 3=5×4×3=60だ。

 

 

            ☆          ☆          ☆

続いて、新しい話の「二重ループ」を使う問題。FOR文とNEXT文で作るループ

(繰返し)を二重に使うことになる。普通の数学なら、大きく場合分けした中で、 

さらに小さく場合分けするようなものだ。「(1)その1,その2,・・・、(2)その1,

その2,・・・」といった感じ。

 

適当なアレンジを思い付かないので、ここでは教科書p.180の例20、掛け算 

の九九(くく)の表を作る問題を、ほぼそのまま使ってみよう。ただし、REM文

(注釈)を少し簡単にしたし、元の変数がなぜかKとJになってたからaとbへと

変更した。

 

141125f 1の段(横の列)

 は、a=1に対し

 て、b=1,2,

 ・・・,9を順に

 掛けて、Xとし

 て出力する。

 次にa=2,3,

 ・・・,9と変化

させる。まず、aで大きなループを作り、それぞれの中でbの小さなループを作る

から、入れ子状の二重ループとなる。

 

FORとNEXTで挟む部分の先頭は1マス空けて分かりやすくするから、中盤で

bを変化させる箇所では先頭が2マス空いてる。50行目は、1ケタの値を表示

141125g_2  する時、直前に半角スペー 

  スを入れて、表の縦の列を 

  揃えるためのもの。80行

  目は、1の段、2の段など

  の改行を入れるためのものだ。

実行すると、確かにキレイな表になる。

 

 

         ☆          ☆          ☆

すぐ下の問6では、30行目の右側の「b=1 TO 9」を「b=1 TO a」へと

141125h  修正したらどうなるか、と

  いう問題。

 

  予想通り、九九の表の

  右上が消えた三角形の表

になった。1の段が1×1まで、2の段が2×2までで終わるから、半分ちょっと

になるのだ。掛け算の交換法則を前提とするなら、九九の表は一応これで間

に合う。1の段から消えた1×2の代わりに、2の段の2×1を見ればいい。小

学2年生は喜ばないだろうが♪

 

141125k  なお、この九九の表のプログラ

  ムだと行の名前が100番まで

  到達する。3ケタは珍しいし10

  行目だから、うっかり10番と入

  力したら、「Duplicate label」

(重複ラベル)というエラー表示が出た。このくらい、自動で修正してくれても

いいと思うのは、人間のワガママか♪

 

 

           ☆          ☆          ☆

続いて、流れ図(フローチャート)の書き方。これはそもそも、プログラムと違っ

人間用のものだから、流れの筋道がある程度わかればいいはずだ。少し自

由度が大きいし、プログラムとの1対1の対応関係がある訳ではない。おまけ

に技術や特殊なソフトを持ってない私の場合、ノートに手書きすることになる。

 

141125i  まず、今回の最初のプログラム

  で、順列nPrを求める流れ図か

  ら。本来は流れ図を先に書い

  て、それを参照しながらプログ 

  ラミングするのだが、初体験の

  私の場合、プログラムを見な

  がら流れ図を書いた♪

 

  世界に通じる図を意識して、

  日本語なしで書いてみたが、

  教科書では日本語を使って

  る(他の問題)。赤字は単な

  る記事用の補足説明。

 

  はじめと終わりは、両端が 

丸い長方形みたいな枠。キーボード入力は台形の枠。コンピューター処理は

普通の長方形。条件判断は菱(ひし)形で、YESNOで2つの道に分岐する。

図を見ると、「ループ」(輪)という用語の意味が一目瞭然だろう。モニター(画

面)への表示はなぜか、左向きの弾丸の形の枠組となってる。左向きの矢印

は、変数記号への代入を表す。

 

 

           ☆          ☆          ☆    

141125j  最後は、九九の表を作る流れ図。

  ここでは、半角スペースを入れる

  処理(図ではSPACE)と、改行

  処理(LINE FEED)を使うことに

  なる。「二重ループ」という用語の

  意味も一目瞭然だ。

 

  それにしても、やはりプログラム

  より流れ図の方が面倒だと感じ

  てしまう♪ 流れ図というものは、

  もっと大まかにザックリ書かない

  と実用性がないような気がする。

  それとも、慣れの問題だろうか。

 

  ともあれ、今日はこの辺で。。☆彡

 

 

 

cf. Quick BASICの練習(6)~DIM文と配列変数(添字つき変数)

   Quick BASICの練習(7)~関数値の計算、方程式の近似値

   Quick BASICの練習(8)~素数の判別、エラトステネスのふるい

   Quick BASICの練習(9)~数列の二項間漸化式と固有値、一般項

 

                                    (計 2547字)                             

| |

« 「東京のマラソン」出場決定♪&黄色の神戸マラソン&マメ痛ジョグ | トップページ | 紅白歌合戦の出場歌手決定、超軽~いつぶやき♪ »

数学」カテゴリの記事

プログラミング」カテゴリの記事

コメント

一ヶ月間を置いても、さっと立ち上がれるのは凄いですね。
””元の変数がなぜかKとJになってたからaとbへと変更した””。何の問題も無いですが、我々世代の習得した言語仕様では、整数を扱う変数はi,j,k,l、m,nの6文字(6文字で足りないときはi1,j1・・)と言う決まり(習った)なので、この時代になっても無意識に整数型変数はi,jと言う風に置きます。

投稿: gauss | 2014年11月26日 (水) 01時28分

> gauss さん
    
こんばんは。毎度どうもです♪
 
さっと立ち上がるどころか、ここ半月、
ズルズルと記事を先延ばしにしてました。
今回も、前回の記事と教科書を読みながら
何とか短めに書きあげた感じです。
     
流れ図の2つ目、スペース、改行、二重ループの
表示は、教科書の図にも載ってませんしね。
  
    
で、整数の変数はi,j,k,l,m,nだと。
なるほど、確かにそうなってるし、
数学でもそれらをよく使いますね。
和のSや積のPとかは、また別ってことで。
 
早く卒業して他の言語に挑戦したいのに、亀の歩み。
まだしばらく時間がかかりそうです。。

投稿: テンメイ | 2014年11月26日 (水) 23時42分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 「東京のマラソン」出場決定♪&黄色の神戸マラソン&マメ痛ジョグ | トップページ | 紅白歌合戦の出場歌手決定、超軽~いつぶやき♪ »