# VB點樣用for....next 計開方?(20分)

write a function summarion() to calculate the sum of

sum = 1+開方3+開方5+開方7+開方9

use for...next to complete the program.The sum as double

thx!

Rating

用 For Loop 比較好,計算平方根可以用 VB 的 Sqr() Function.

Function summarion(ByVal count As Integer) As Double

Dim i As Integer

Dim loopCount As Integer

Dim total As Double

loopCount = count * 2

For i = 2 To loopCount Step 2

total = total + Sqr(-1 + i)

&#39; 不用 Sqr() 的寫法

&#39; total = total + (-1 + i) ^ 0.5

Next

summarion = total

End Function

Do Util 的寫法

Function summarion(ByVal count As Integer) As Double

Dim i As Integer

Dim loopCount As Integer

Dim total As Double

i = 2

Do Until loopCount &gt;= count

total = total + Sqr(-1 + i)

i = i + 2

loopCount = loopCount + 1

Loop

summarion = total

End Function

2007-05-05 02:00:44 補充：

答新田美香 你的方法很直接,但是有一要點注意要計 sum = 1+開方3+開方5+開方7+開方9count 是 10, 不是 5.如果要計 sum = 1+開方4+開方7+開方10+開方13count 就是 15所以 count 應該是 function 內的變數, 不應是 funtion argument

2007-05-05 02:05:59 補充：

可以改成Function summarion(ByVal count As Integer, ByVal stepx As Integer) As DoubleFor i = 1 To count * stepx&#39; code herenextEnd function

可能是每人對題目的理解不同, 樓上兩位與我的答案都各不相同

我的理解: 由1開始 至 count, 步長是2, 求各數的開方和

Function summarion(count As Integer) As Double

Dim i As Integer

Dim X As Double

For i = 1 To count

If i Mod 2 = 1 Then X = X + i ^ 0.5

Next i

summarion = X

End Function

如用 Do Until:

Do Until i = count

i = i + 1

If i Mod 2 = 1 Then X = X + i ^ 0.5

Loop

我另有建議, 在Function 加多1個叫stepx的引數, 代表步長, Function的應用性會更大

stepx = 1, 各數是 {1,2,3,4,5,6…count}

stepx = 2, 各數是 {1,3,5,7,9,11…count)

stepx = 3, 各數是 {1,4,7,10,13,16…count)

如此類推。

Function summarion(count As Integer, stepx As Integer) As Double

Dim i As Integer

Dim X As Double

For i = 1 To count

If i Mod stepx = 1 Or stepx = 1 Then X = X + i ^ 0.5

Next i

summarion = X

End Function

• ?
Lv 7

function summarion(count as integer) as double

dim i as integer

dim dblresult as double

for i = 1 to count

dblresult = dblresult + i ^ 0.5

next

summarion=dblresult

end function

function summarion(count as integer) as double ' use do until

dim i as integer

dim dblresult as double

i=1

do

if i<=count then

dblresult = dblresult + i ^ 0.5

end if

i=i+1

loop until i>count or count<=0

summarion=dblresult

end function

2007-05-04 12:30:48 補充：

更正: dblresult = dblresult (i*2-1) ^ 0.5

Source(s): me