質問<3727>2008/5/17
a_1=1, a_2=1, a_n+2=a_n+1 + a_n (n=1,2,3,・・・)で定まる数列{a_n}を第20項まで出力するプログラムを作成せよ。 プログラム分かりません。BASICでお願いします。schemeでの解説は、難しくて分かりませんでした。プログラム難しいです。 ★希望★完全解答★
お便り2008/5/19
from=亀田馬志
ああ、その通信教育制大学って確か、 十進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で上手く動きますが、 問題の数学的な題意から言うと人為的な間違いを「わざと」含ませています。 上手く動くが与式に的確には沿っていない。 それも「頑張って」見つけて修正してください(笑)。 以上です。
お便り2008/5/21
from=nnls
数列{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