学校でこのような課題が出ました。書いてあるとおりにやればできると先生はおっしゃっていましたが、プログラミングをまったくやったことがないのでよくわかりません。自分で手探りで書いてみたのですがうまくいきません、どこが間違っているか教えていただけませんか?
例題3:例題2で配列Xに格納した10個の数値データの中の最大
値を求めるアルゴリズムを日本語で書きなさい。
考え方:
1.配列の最初の位置にある数を仮の最大値とする。
2.この仮の最大値と次のデータを比較する。```> ここに言語を入力
コード
3.次のデータの方が大きければ、それを仮の最大値とする。 4.データがなくなるまで、仮の最大値とデータの比較を繰り 返す。 5.データがなくなった時点で処理を終了する。 6.この時点の仮の最大値は、真の最大値である。 7.その真の最大値と格納場所を出力する。 解答例: 変数m:仮の最大値を示す変数 変数k:仮の最大値の格納場所(配列)を示す番号となる変数 変数i:比較する側の格納場所(配列)の示す番号となる変数 手順: 1.変数mにX(1)を代入 2.変数kに1を代入(配列1番目ということ) 3.変数iに2を代入(配列2番目ということ) 4.変数iが10以下である限り、次の①と②の処理を繰り返す ①もし、X(i)がmより大きいならば、 (1)mにX(i)を代入する(仮の最大値の交換) (2)kにiを代入する(仮の最大値の格納場所を更新) ②変数iにi+1の値を代入する。 5.mとkの値をモニターに出力 以下自分が書いてみたものです Option Explicit Sub kadai() Dim i As Long Dim data As Double Dim m As Double Dim k As Double Dim x(10) As Double For i = 1 To 10 data = InputBox("数値を入力してください。") Range("j" & i) = data Next m = x(1) k = 1 i = 2 For i = 1 To 10 If m < x(i) Then m = x(i) k = i End If i = i + 1 Next Range("a" & i) = m Range("k" & i) = k MsgBox ("入力をありがとうございました") End Sub
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/14 07:22
2017/07/14 07:28
2017/07/14 07:35