• ベストアンサー
  • すぐに回答を!

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

  • 質問No.393407
  • 閲覧数144
  • ありがとう数0
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 4% (2/45)

数学プログラムの授業をしています。:プログラム言語は「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を表示するプログラムを作りたい。


以上お願いいたします。

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

  • 回答No.3
  • ベストアンサー

ベストアンサー率 55% (635/1135)

#1です。訂正です。回答した直後に気が付きました。
(2)
全てを訂正します
これ以降です。まあ最初から書きますと、
10:S=0
20:L=0
30:FOR N=2 TO 10
40:LET S=S+N
50:LET L=L+S
60:NEXT N
70:PRINT L
80:END 10:S=0
もう間違いはないと思います。
(1)
>60~80行目は何をやっているのか分かりません
正確には、何をやっているのかは分かるのですが、こうすることに意味が無いのです。例えば、{1,2,3,4,5}の最大値を求めよといわれて1+2+3+4+5とはやりませんよね?これが、どこかに書いていたのなら、私の解釈が悪かったと思うので、60~80行目を正確に書いて下さい。
補足コメント
投稿日時:2002/10/30 22:06

その他の回答 (全3件)

  • 回答No.4

ベストアンサー率 17% (241/1356)

まず(1)
スミマセン10年以上使ってないので自信はない。

10番で5回インプトしようとしているけど?
30 INPUT”数値入力=”;C  Cの値を入力する
35 DIM(I)=C       その値を行列に代入する。
のつもりじゃないですか?


50~80が気になりますけど?何がしたいのか?
大きいのを選ぶのは
100 FOR B=0 TO 4
110 IF DIM(B)>DIM(B+1) THEN SWAP DIM(B),DIM(B+1)
120 NEXT B
130 PRINT DIM(4)

110で DIM(0)の値とDIM(1)の値を比べて最初の値が大きければ入れ替える。
それを5回やるとDIM(4)が一番大きい値になります。
入力値が「6:5:2:8:2」だったら最初の6と5を比べて6の方が大きいので入れ替える、次に6と2お比べて・・・・
「5:6:2:8:2」→「5:2:6:8:2」→「5:2:6:8:2」→
「5:2:6:2:8」と順繰りに大きい数を右に送って行くわけね。
で最後に DIM(4)=8を表示すればよい。
補足コメント
投稿日時:2002/10/30 22:06
  • 回答No.2

ベストアンサー率 22% (57/255)

(1)のプログラム
 
10:DIM A(5)
20:FOR I=0 TO 4
30:INPUT A(I)
40:NEXT I
50:Max=A(0)
60:FOR L=1 TO 4
70:IF Max<A(L) Then Max=A(L)
80:NEXT L
90:PRINT Max


(2)のプログラム

10:S=0
20:SS=0 
30:FOR I=2 TO 10
40:SS=SS+I
50:S=S+SS
60:NEXT I
70:PRINT S
  • 回答No.1

ベストアンサー率 55% (635/1135)

(1)
まずこのプログラムは10行目でエラーになります。10行目は
10:DIM A(5)
ということでよろしいでしょうか
それから、70行目は意味がありません。なぜならA=0です。S=S+0何度計算してもSの値は変わりません70行目は
70:S=S+A(L)
でよろしいでしょうか。ただ、仮にこうだとしても60~80行目は何をやっているのか分かりません。ということで60行目から書きます。
60:S=A(0)
70:FOR L=1 TO 4
80: IF A(L)>S THEN
90: LET S=A(L)
100: END IF
110:NEXT L
120:PRINT S
130:END

(2)
10:S=0
20:FOR N=2 TO 10
30:LET S=S+N
40:NEXT N
50:PRINT S
60:END
試してませんが、これで動くと思います。
補足コメント
投稿日時:2002/10/30 22:06
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ