例題1. 定数 が与えられたとき、漸化式
配列を使うバージョン touhi1.bas |
REM 等比数列 (配列を使うバージョン) DIM A(100) INPUT PROMPT "r=": r A(1)=1 FOR n=2 to 100 A(n)=r*A(n-1) print n;A(n) NEXT n END |
やってみよう DIM, INPUT PROMPT 等の 命令の説明をオンライン・ヘルプで読んでみましょう。
演算精度を上げておくべきかもしれません。 これは (1000桁演算モード) ボタンを押しても実現できますが、 プログラムの先頭部分に例えば
OPTION ARITHMETIC DECIMAL_HIGH |
ちょっと質問 ``arithmetic'' って何でしょうね?
実は一度 A(n-1) として使われた後はもう使われなくなるので、 次のようなプログラムで済ませることが出来ます。
配列を使わないバージョン touhi2.bas |
REM 等比数列 (配列を使わないバージョン) INPUT PROMPT "r=": r A=1 FOR n=2 to 100 A=r*A print n;A NEXT n END |
配列変数の代りに、 普通の変数 Aだけで済んでいる理由を理解しましょう。 代入文 A=r*A は、数学に現れる等式とは違って、 一般には = という文法に従ったものであり、 最初に = の右にある式を評価し、 その値を = の左にある変数に記憶する。 例えば A=A+1 は A の値を 増やすコードである。