\(a_{1}\)=1, \(a_{2}\)=1, \(a_{n}\)+2=\(a_{n}\)+1 + \(a_{n}\) (n=1,2,3,・・・)で定まる数列{\(a_{n}\)}を第20項まで出力するプログラムを作成せよ。
プログラム分かりません。BASICでお願いします。schemeでの解説は、難しくて分かりませんでした。プログラム難しいです。
★希望★完全解答★
\(a_{1}\)=1, \(a_{2}\)=1, \(a_{n}\)+2=\(a_{n}\)+1 + \(a_{n}\) (n=1,2,3,・・・)で定まる数列{\(a_{n}\)}を第20項まで出力するプログラムを作成せよ。
プログラム分かりません。BASICでお願いします。schemeでの解説は、難しくて分かりませんでした。プログラム難しいです。
★希望★完全解答★
ああ、その通信教育制大学って確か、
十進BASIC、Pascal、C言語、Fortranの4つの中から選ぶんでしたっけ?
写真①: 写真②:

何回も高校数学の窓で見かけた問題が入ってますね・・・・・・。
こんな感じでしょ?まあ、問題そのものは違うワケですが。
(試験問題だそうですけど)
>プログラム分かりません。
>プログラム難しいです。
とは言っても、恐らくこれって「数学教員免許取得コース」の問題で・・・・・・。
いや、将来数学教師になりたい、って人がさすがに「分かりません」と問題丸投げするのは
マズいんじゃないですかね?大丈夫なんか?
BASIC特有の問題に付いては質問3700に解説してあります。
いずれにせよ、BASICは方言がキビしいので、一般的な話は書けません。
そして、全く他の言語に対して発展/転用出来ない考えを押し付ける方言なんて使って
議論したって実用性/応用性共に欠けますし、フツーの高校生やフツーの大学生の為の
投稿にもならないのです。
ちなみに、亀田はどうせ使うなら子供だましのモノじゃなくって、
ほぼ恒久的に付き合える「至上最強の」ツールを最初から使うべきだ、と言う信念があります。
プログラミング言語にせよしかり、数学ツールにせよしかり、です。
そう言う事が分かってない辺り、単に「レポート提出の為だけ」と見なされますし、
それは意欲が無い以上「学習」じゃないです。
また、他人のレポート作成の為だけ、にコードを書く気もありません。バカバカしくって。
そこで一応、折衷案としてVBSで雛形提示しておきます。
某通信教育制大学用に十進BASIC(が指定教材だと思うんですが)に翻訳するくらいは
ご自分でやってください。
そして、それくらい自分で出来ないとお話にならないでしょう。
何せ同じBASIC語族なんですから。
できないのなら「全く勉強していない」って事です。
いさぎよく落第しましょう。
'''ここからVBSソース
n = 0
a = 1
b = 1
do while n < 20
n = n + 1
ls = ls & a & " "
c = b
d = a + b
a = c
b = d
loop
msgbox ls
'''ここまで
一旦、<質問3700>の指示に従って、WindowsのVBSで走らせてみてください。
そしてどんな風に動くか試してみる。
その後、十進BASICに上記のソースをコピペする事からはじめ、
通信教育制大学の「コンピュータ」のテキストを参照して、
どこの構文が同じでどこが違うのか?
上手く動くまで修正/改造していってください。
そうでもしないと、いつまで経っても「分からないまま」です。
ちなみに、上のソースはVBSで上手く動きますが、
問題の数学的な題意から言うと人為的な間違いを「わざと」含ませています。
上手く動くが与式に的確には沿っていない。
それも「頑張って」見つけて修正してください(笑)。
以上です。
数列{\(a_{n}\)} を第20項まで出力する十進BASICのプログラムの一例です。
LET a=1
LET b=1
PRINT a
PRINT b
FOR k=3 TO 20
LET b=a+b
LET a=b-a
PRINT b
NEXT k
END
----------------------------------------------------------------
(別解) 配列を用いて次のように書いてもいいと思います。
DIM A(1 TO 20)
LET A(1)=1
LET A(2)=1
FOR k=1 TO 18
LET A(k+2)=A(k+1)+A(k)
NEXT k
FOR k=1 TO 20
PRINT A(k)
NEXT k
END