• ベストアンサー

数学で、プログラムの授業をしているのですが…

いま、数学で、Basicをやっているのですが。あまりよくわかりません。FOR文、NEXT文などを使い、単純なプログラムを作らなければいけないのです。 例えば、1+(1+2)+(1+2+3)+ … +(1+2+3+4…+10) というプログラムはどうやって作ればいいのでしょうか? ポイントとか、コツとかを教えて頂けるとうれしいです。上の問題も…。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_kouichi
  • ベストアンサー率100% (1/1)
回答No.2

FOR文は繰り返し命令ですからそれを利用すれば解けると思います。 まず変数を用意します。(ここでは仮にAとします) 次にその変数に1を代入します。 そしてFOR文で毎回Aの値がプラス1されるようにします。 最後にfor文の終了条件をAが10になった時にします。 ここまでが下準備です。 質問の式を計算するにはfor文の中にもうひとつfor文を入れる必要があります。 for文を入れる前にもうひとつ変数を用意します。(仮にBとする) ふたつ目のfor文の前にBの値が毎回1になるようにします。 ふたつ目のfor文を作りBがプラス1されるようにします。 ここが大事な部分なのですが、二つ目のfor文の終了条件は  A=Bになった時とします。つまり一回目は一回、二回目は二回と               Aの数だけ繰り返すようにするわけです。 ここまでの流れができたらあとは計算式を入れるだけです。 for文の外で答えを格納する変数をあらかじめ用意します(Xとします) Xの値は0で初期化しておきます。 二つ目のfor文の中に以下の式を書きます。 X=X+B こうすることで上の式が繰り返されていき最終的には質問の式と同じになるわけです。 Aが1のとき X=0+1 ここまでで X=1+・・・ Aが2のとき X=1+1,X=2+2     この部分は +(1+2) Aが3のとき X=4+1,X=5+2,X=7+3  この部分は +(1+2+3) となっていき最後10回目に +(1+2+3+4+5+6+7+8+9+10)ができ完成です。 考え方はわかりましたでしょうか? あとはこれをプログラム化するだけです。 一応参考までに簡易的に書いておきます。 x=0 A=1 for(1) A<=10なら繰り返す B=1 for(2) B<=Aなら繰り返す X=X+B B=B+1 Bの値プラス1 NEXT A=A+1 Aの値プラス1 NEXT END こんな感じですBASICの書き方は無視しましたが  あとは教科書などを見て書き方を調べてください。 プログラムで大切なのは書き方ではなく考え方なので・・・。

その他の回答 (2)

  • Tattoko
  • ベストアンサー率17% (3/17)
回答No.3

 数学のカテゴリですから、数学的に説明します。  ご質問の計算式は、  10 i  Σ ( Σ j )  i=1 j=1 を求めると言うことになりますね。つまり、「『1からiまでの数の和(jを、jを1からiまで変化させて足し合わせたもの)』を、iを1から10まで変化させて足し合わせたもの」ということです。  この式をそのままBASICで書けば、 S=0 FOR [ I は1から 10 まで]  FOR [ J は1から I まで]   [ S を J だけ増加させる]  NEXT J NEXT I PRINT S となります。[ ]の部分は自分で埋めてみてください。

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.1

FOR文や、NEXT文の意味自体は分かっているんですよね。 その上で考え方です。 > 1+(1+2)+(1+2+3)+ … +(1+2+3+4…+10) というプログラム について。 1)変数をつくり、初期値を1とする。(仮にi とします。) 2)もう一つ変数をつくり、最初の変数の値を代入する。(仮にjとします。i→j ということです。) 3)jが1になるまで、-1しながらその和を求めます。(仮にS[j]とします。S[j]= j+(j-1)+…+1 ということです。) 4)変数i が10になるまで、+1しながら、2)と3)を繰り返します。 こんな感じでOKでしょうか。

関連するQ&A

  • プログラムの見本を示してください!!

    数学プログラムの授業をしています。:プログラム言語は「Basic」です。 今から問題と、少しやれたものについては、プログラムを記してみました。 問題の最後の 「※」部分が質問したいところです。ない場合は、何もわからないところです。 (1)DIMを用いて 5つの値をキーボードから入力して、そのうち最大の値を表示するプログラム ※90行目以降の「最大値」の表示の仕方がいまいちわかりません。   10:DIM (5) 20:FOR I=0 TO 4 30:INPUT I 40:NEXT I 50:S=0 60:FOR L=0 TO 4 70:S=S+A 80:NEXT L 90:PRINT ??? (2)FOR,NEXT分を使い、 S=2+(2+3)+(2+3+4)+ ........+(2+4+5+6+7+8+9+10) の計算をして Sを表示するプログラムを作りたい。 以上お願いいたします。

  • 数学のBasicなのですが・・。

     数学のコンピューターを独学でやり始めたのですが、分からないことがたくさんあって、頼れる人がいなくて質問したのですが、  配列変数とかいうのがよく分からなくて、   DIM 変数名(n)  っていうのは、番号つき変数を0からn番まで用意するということは分かりました。  ○配列変数→大量のデータを一気に出力という題目のところがありまして、  ■N個の数値を入力して、逆の順序で出力するプログラム  10 INPUT ”データ数”;N  20 DIM A(N)  30 FOR K=1 TO N  40 INPUT ”データ”;A(K)  50 NEXT K  60 FOR K=1 TO N  70 I=N+1-K  80 PRINT A(I);  90 NEXT K  100 END  で まず、 10行目はデータ数って書いてあって、40行目はデータと書いてあって、その違いが分かりません。    それとFOR~NEXT文は挟まった動作を繰り返すんですよね!?  で、60行目と90行目は2文挟まっているのですが、この2文とも繰り返すということなのでしょうか?  分かってる方にとってはくだらない質問と思いますが、どうか教えてください。  お願いします。

  • 高校の数学IIBのBASICプログラムを実行したい

    高校の数学IIBのBASICプログラムをコンピュータで実行したいのですが、 フリーソフトはありますか。あれば、教えてください。 一方で、シェアウェア、市販のソフトがありますか。 BASICの文法ですが、INPUT文にPROMPTという文字が加わっているし、 IF文の中のTHENの次に行番号がなかったり、文法が10年くらい前に比 べて変わっているようです。 実行して、結果を見た方がわかりやすいのでお願いします。

  • プログラムというのは数学を使いますか?

    自分は根っからの 文型でして、数学がからっきし駄目なのですが、プログラムというのは数学が必要ですか? 数学{的}や数学の{素養}{考え方}等といったものではなく、そのものずばり数学です。 計算があるだとか式を立てるだとかそんな感じの・・・・。  背景と致しましては、今CCNAの勉強をしていることもあり、やはりIT業界でやっていくにはプログラムの知識もあった方が良いんだろうかと思い、丁度職業訓練にプログラム・webプログラム(html?webクリエイター?)コースというのがあったので、興味を持った次第です。

  • コンピュータのプログラムを書くに当たって

     数学のコンピュータの問題で、『プログラムは疑似言語、Pascal、C、BASIC、FORTRANのいずれかで書くこと。ただし、どの言語を使うにしても、プログラム中に使用する名前の型、属性、意味内容を明示しておくこと』とあります。  ここで、「プログラム中に使用する名前の型、属性、意味内容を明示」するとは何を意味しているのでしょうか?  私は、 ○名前の型 : BASIC ○属   性 : FOR n=A TO B              ~           NEXT n ○意味内容 : FOR文に指定された変数の値を順に変化させながらFOR行とNEXT行に挟まれた各行を繰り返し実行する のように、名前の型、属性、意味内容のことを捉えたのですが、このような考え方で宜しいのでしょうか?お手数おかけ致しますが、アドバイスの程宜しくお願い致します。

  • basicプログラムです。

    100 DIM A(5) 110 FOR J=1 TO 5 120 READ A(J)   130 NEXT J   140 FOR I=1 TO 4  150 LET K=I    160 FOR J=I+1 TO 5  170 IF A(J)<A(K) THEN LET k=J  180 NEXT J    190 LET T=A(I)    200 LET A(I)=A(K)   210 LET A(K)=T    220 FOR J=1 TO 5   230 PRINT A(J);   240 NEXT J     250 PRINT      260 NEXT I     270 DATA 5,3,7,2,1,  280 END このようなプログラムがあります。 いろいろ調べたのですがそれぞれの文の意味と 何を求めるプログラムか教えて下さい。 5つの数の組み合わせで小さい数から順番に4個 かなと思ったのですが???

  • n88basicのプログラムを十進ベーシックに翻訳してください。

    n88basicの次のプログラムを十1進ベーシックではどうなるのか教えてください。 10 cls 20 p=1000 30 for n=1 to 1000:next n 40 p=p-1 50 if p=-1 then end 60 locate 10,10:print p 70 goto 30

  • N88互換BASIC for Windows95

    N88互換BASIC for Windows95を使ってBASICの勉強をしています。 FOR NEXT などを使って簡単なプログラムを作らないといけません 例えば○を左から右移動させたりしたいのです 簡単なプログラムを作ってほしいです 画像のようなものです

  • 数学におけるプログラムの問題です。

    「次のプログラムは何をするものか説明し、nに360が入力されたときのp,qを求めよ。   100 INPUT n     110 FOR i=1 TO SQR(n)   120 IF MOD(n,i*i)=0 THEN LET p=i   130 NEXT i   140 LET q=n/(p*p)   150 PRINT "p=";p   160 PRINT "q=";q    END」 という問題です。  p=6,q=10 はわかります。このプログラムは「入力された値に対して、2乗して割り切れる最大の値とその時の商を求めるものである」でよろしいのでしょうか?

  • BASIC数値解析プログラムについて。

    初めまして、私は大学でBASIC初心者でN88互換BASICでのプログラミングを今年から勉強しています。↓のプログラムで収束過程の計算結果を実行画面に表示させたくてFOR~NEXT文でいろいろ試しているのですがエラーが出てしまいます。他の具体的な方法が浮かばないです。初歩的な質問でしたら申し訳ないのですが、BASIC経験者、もしくは現在やられている方でどなたか私にアドバイスをしていただけると助かります。 (x^2-a=0のaの根を求めるニュートン法のプログラムです) 120 REM*******ニュートン・ラフソン法********* 130 FOR I = 1 TO 6 132 READ X0 134 GOSUB 140 136 NEXT I 138 END 140 PRINT "試行値は";X0 145 N=1 150 ER=.00001 180 FX=X0*X0-333 190 DFX=2*X0 200 X1=X0-FX/DFX 220 IF ABS(X1-X0)<ER THEN 250 230 X0=X1 :N=N+1 240 GOTO 180 250 PRINT X1,N 280 RETURN 300 REM *************試行値************* 310 DATA 1,5,10,50,100,500