投稿
bigslope bigslope
『MZ-80シリーズBASIC解説』より。エリスという子が、FOR-NEXTの二重ループを使って、宿題のかけ算九九の計算表を作ってしまおうという例。いきなり巨大なゲームを作るよりも、日常生活の中で「あ、これBASICを使ったら簡単に出来そう」というような事を探してみるのも、プログラミング上達の1つの手だ。…しかし、九九を覚えるよりも先に、すらすらとこんなプログラムを書ける方がすごいと思うんだが。
9そうだね
プレイ済み
返信[1]
親投稿
bigslope bigslope
考え方としては、まず1の段、1×1、1×2、…1×9というような感じで、1にかける数字を1から9まで9回分ループさせる。 それが終わったら、今度は2の段でも2×1、2×2…、それが終わったら、今度は3の段、4の段…と、9の段まで同じように繰り返す。 2行目~4行目のループで、変数Yに入っているのが『かける数』、1行目~6行目のループで、変数Xに入っているのが『かけられる数』(段の数)。 このように、繰り返したい処理をひとくくりにして、その繰り返したい処理の外側に、もう一つのループを作っていくのが、多重ループになる。 ただし、ループとループが交差したり(Yのループの中にNEXT Xが入ったりする状態)、ループの中にいきなりGOTO文で飛ばしたりしてしまうと、正常に動作しないので注意しよう。
0そうだね
プレイ済み
返信[2]
親投稿
bigslope bigslope
3行目では、そのかけられる数×かける数を計算して表示しているが、ここでちょっとしたPRINT文のテクニックを。 PRINT文は、文字や計算結果を表示した後、通常はそこで改行(カーソルが一段下に下がり、その先頭行に移動)するが、最後に";"(セミコロン)を付けておくと、改行を行わずに、カーソルがその位置に留まってくれるのだ。 通常、セミコロンは、 PRINT "A=";A …みたいに、文字と変数をくっ付けて表示したいという時に使われるが、こうする事で、1の段みたいな段が変わらない限り、どんどん横にくっ付けて表示させる事が出来る。 ただし、そのまま横にくっ付けてしまうと、 123456789 …みたいに、どこで区切られるのか分からないので、スペースを1つ分空ける事で見やすくしている。 そして、1つの段が終わった時点で、5行目の何も表示しないPRINT文を置き、ここで改行させるという訳だ。
1そうだね
プレイ済み
返信[3]
親投稿
bigslope bigslope
実行結果。 計算結果の数字の桁がそれぞれ違うので、若干位置がバラバラになるが、大体こんな事が出来るという事で。
1そうだね
プレイ済み