Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


28698 / 76733 ←次へ | 前へ→

【53327】Re:繰り返し文を使った算出の仕方
発言  ichinose  - 07/12/30(日) 7:52 -

引用なし
パスワード
   りん さん、タケ さん
おはようございます。

懐かしい問題だったので投稿します。

2x年前、ソフト会社に入社して一週間後のテストに↓この問題がありました。

>>・1+2+3+4・・・+100
>>・1の二乗+2の二乗+3二乗+・・・20の二乗
>>・1の三乗+2の三乗+3の三乗+・・・20の三乗
>>という各数値の和を繰り返し文を使用して算出したいのですがどうしたらいいのでしょうか?

但し、「繰り返し文を使用して」の規制はありませんでした。

当時、この3例の総和の公式を丸暗記していた私は、自信たっぷりに

'=================================================================
Sub test2()
  Dim i As Long
  i = 20
  MsgBox Format(i * (i + 1) / 2, "#,##0"), vbInformation, "そのまま加算"
  MsgBox Format(i * (i + 1) * (2 * i + 1) / 6, "#,##0"), vbInformation, "2乗して加算"
  MsgBox Format((i * (i + 1) / 2) ^ 2, "#,##0"), vbInformation, "3乗して加算"
End Sub

と記述しました(答案は、VBAではなく、当時研修言語だったFORTRANですが)。

テストの結果は、△でした。

納得できない私は、「何故だあ?」と講師に詰め寄りました。
講師がなんと言ったかは忘れましたが、納得できずにいた事だけは
覚えています。

正解(この試験の意図)は、りんさんの↓でした。

>Sub test()
>  Dim II As Long
>  Dim dt1 As Long, dt2 As Long, dt3 As Long
>  '
>  For II = 1 To 20
>   dt1 = dt1 + II
>   dt2 = dt2 + II ^ 2 '2乗
>   dt3 = dt3 + II ^ 3 '3乗
>  Next
>  '結果
>  MsgBox Format(dt1, "#,##0"), vbInformation, "そのまま加算"
>  MsgBox Format(dt2, "#,##0"), vbInformation, "2乗して加算"
>  MsgBox Format(dt3, "#,##0"), vbInformation, "3乗して加算"
>End Sub

今、「何故だあ?」と詰め寄られたら、さて、なんて答えよう???
2 hits

【53282】繰り返し文を使った算出の仕方 タケ 07/12/25(火) 18:41 質問
【53285】Re:繰り返し文を使った算出の仕方 りん 07/12/25(火) 20:07 回答
【53327】Re:繰り返し文を使った算出の仕方 ichinose 07/12/30(日) 7:52 発言
【53328】Re:繰り返し文を使った算出の仕方 りん 07/12/30(日) 17:22 発言

28698 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free