春节放假,闲着没事,静下心来,看看vb,做了几个练习题,感觉还可以,请大家看看写怎么样?
练习1:编写一个程序,使用函数方式求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值
源代码如下:
Function sum(n As Integer)
Dim a, j, c As Integer
c = 0
a = 0: j = 1
For i = 1 To n
a = a + j
c = a + c
j = j + 1
Next
sum = c
End Function
Private Sub Command1_Click()
Dim x As Integer
Dim y As String
y = Text1.Text
x = Val(Right(y, 2))
x = sum(x)
Text2.Text = x
End Sub
希望大家提提意见,向同志们学习一下

解决方案 »

  1.   

    没有简化,光是实现了:
    Function Sum(m As Integer) As Long
      Dim i As Integer
      For i = m To 1 Step -1
        Sum = Sum + doSum(i)
      Next i
    End FunctionFunction doSum(n As Integer) As Long
      Dim i As Integer
      For i = n To 1 Step -1
        doSum = doSum + i
      Next
    End FunctionPrivate Sub Command1_Click()
      Dim x As Integer
      x = Val(Right(Text1.Text, 2))
       
      Text2.Text = Sum(x)
    End Sub  
      

  2.   

    这是简化了:Function Sum(m As Integer) As Long
      Dim i As Integer
      Dim j As Integer
      
      For i = m To 1 Step -1
        For j = i To 1 Step -1
          Sum = Sum + j   ' doSum(i)
        Next j
      Next i
    End Function
      
      

  3.   

    用其他语言来计算你这个n=10只要……
    python一句代码:
    sum(map(lambda x:sum(range(1,x+1)),range(1,11)))SML两句代码:
    fun range x= if x=0 then [] else x::range (x-1);
    foldr op+ 0 (map (fn (x)=>foldr op+ 0 (range x)) (range 10))scheme三句代码:
    (define (range x) (if (= x 0) () (cons x (range (- x 1)))))
    (define (sum x)(if (null? x) 0 (+ (car x) (sum (cdr x)))))
    (sum (map (lambda (x) (sum (range x))) (range 10)))
    放弃VB吧,呵呵 #-_-
      

  4.   

    为何要放弃VB? n = 100 呢?等于任意数呢? 只是抓其中的一小段!For i = 1 To m : For j = i To 1 Step -1: Sum = Sum + j : Next: Next
    '这算几句?
    Msgbox "SUM=" & sum   '显示结果写这一下简单,就表明其他的语言更适合所有的开发者?往往是不了解、不熟悉的人才说这个语言咋样咋样。
      
      

  5.   

    1+2+3...N=(1+N)*N/2---> Σ (1+k)*k/2
        k=1 to n
    =(1+1)*1/2+(1+2)*2/2... +(1+n)*n/2
    =(1+n)*n/4+(2*n+1)*(n+1)*n/12
    =(n+2)*(n+1)*n/6
    化简完毕
    所以
    Function Sum(m As Integer) As Long
      Sum=m*(m+1)*(m+2)/6
    End Function