質問: 基本的なことから分かりません。助けてください。 身長と体重を10づつ入力してそれぞれの平均、分散、標準偏差、 身長と体重の共分散、相関係数を求めるプログラミングを visualbasicの分岐処理、繰り返し処理、配列の概念を利用して作りたいのですが 全然分かりません。教えてください。お願いします。
回答: 皆さん出きる問題だと思う。しかし回答が少ない。 もう少し自分で勉強しなさいと言う風に私は感じる。 しかし初めは皆んな習い覚えるのだし、自分も充分わかってないのだし、やって見ようと思いました。 (1)visualbasicを使うのですね。 (2)普通にやると、実行するとform1が自動的に出来てしまうので、これを使わないようにしようと思い、vbe画面のプロジェクトのform1を右クリックしてform1の解放をクリックしました。 (3)普通は標準モジュールのsubの後はルーチン名はなんでも良いが、下記の場合はmainを要求してくるのでsub main()ではじめる。 (4)昔のbasicではinputだったが、vbなのでinputbox関数で、入力値を取った。 昔はprint文だったが、表示にはmsgbox関数を 使った。 ------- sub main() dim i ,n as integer dim d(10) as double dim s, av as double s = 0 for i = 1 to 10 x = inputbox(i & "番目の身長 = ") d(i) = x s = s + x next i n = i - 1 msgbox n & "件入力" av = s / n msgbox "平均=" & av '----- s = 0 for i = 1 to 10 s = s + (d(i) - av) ^ 2 next i msgbox "偏差平方和=" & s std = (s / n) ^ (1 / 2) msgbox "標準偏差=" & std end sub エクセルでは,下記で求められます。検算に使ってください。 (1)平均average(a1:a10) (2)偏差平方和devsq(a1:a10) (3)標準偏差stdevp(a1:a10)に当たります。 もう1種の標準偏差stdevがありますので注意。 ---- for-nextを使わないなら(平均の部分まで) sub main() dim i, s, av as double s = 0 i = 0 p01: if i = 10 then goto p02 x = inputbox(i + 1 & "番目の身長 = ") s = s + x i = i + 1 goto p01 p02: msgbox i & "件入力" av = s / i msgbox "平均=" & av end sub です。