1-Control Statement

本文通过多个实际案例,深入浅出地介绍了使用VB进行编程的方法和技术。包括人口增长预测、数学运算如最大公约数和最小公倍数的计算、字符计数、素数判断、九九乘法表的输出等,覆盖了从基本操作到复杂问题解决的广泛内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 InputBox函数
语法:InputBox(提示信息[,[标题][,[默认值][,Xpos,Ypos]]])
MsgBox函数
语法:MsgBox(信息[,[格式码][,标题]])

条件语句
If … Then … Else语句
IIf(<条件>,V1,V2)
select case语句 

循环语句
for循环
do...loop [while | until 循环条件]
do [while | until 循环条件]...loop
while 条件...end while
exit for/do/while

跳转语句
Go To{标号|行号}

With语句
With 对象...End  With
'
'
'---------------------------------------------------------------------------------
'
'
目前世界人口为60亿,如果以每年1.2 %的速度增长,多少年后世界人口达到或超过70亿?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim p As Double = 6000000000.0
        Dim r As Single = 0.012
        Dim n As Integer
        n = 0
        Do Until p >= 7000000000.0
            p = p * (1 + r)
            n = n + 1
        Loop
        MsgBox(Str(n) & "年后世界人口达" & Str(Int(p + 0.5)), , "")
End Sub


最大公约数最小公倍数
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim m1, n1, m, n, r
        n1 = InputBox("输入n1")
        m1 = InputBox("输入m1")
        If m1 > n1 Then
            m = m1 : n = n1
        Else
            m = n1 : n = m1
        End If
        Do
            r = m Mod n
            If r = 0 Then Exit Do
            m = n
            n = r
        Loop
        TextBox1.Text = n
        TextBox2.Text = m1 * n1 / n
    End Sub


从键盘上输入字符,对输入的字符进行计数,当输入的字符为“?”时,停止计数,并输出结果。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ch1 As Char
        Dim msg As String
        Const ch = "?"
        Dim counter As Short = 0
        msg = "enter a character:"
        ch1 = InputBox(msg)
        While ch1 <> ch
            counter = counter + 1
            ch1 = InputBox$(msg)
        End While
        MsgBox("number of character entered:" & counter)
    End Sub


判断一个正整数是否为素数。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim n, k, i, swit As Integer
        n = InputBox("请输入一个正整数(n>=3)")
        k = Int(Sqrt(n))
  i = 2
        swit = 0
        While i <= k And swit = 0
            If n Mod i = 0 Then
                swit = 1
            Else
                i += 1
            End If
        End While
        If swit = 0 Then
            MsgBox(Str(n) & "是一个素数", , "")
        Else
            MsgBox(Str(n) & "不是一个素数", , "")
        End If
    End Sub


编写程序,输出“九九乘法表”。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i, j, k, temp As Short
        Debug.WriteLine("")
 For i = 1 To 3
            Debug.Write(" ")
        Next i
        Debug.WriteLine(" 9 * 9 table")
        Debug.WriteLine("")
        Debug.Write(" *")
        For i = 1 To 9
            Debug.Write("    " & Str(i))
        Next i
        Debug.WriteLine("")
        For j = 1 To 9
            Debug.Write(Str(j) & " ")
            For k = 1 To j
                temp = j * k
                If temp >= 10 Then
                    Debug.Write("   " & Str(temp))
                Else
                    Debug.Write("   " & Str(temp) & " ")
                End If
            Next k
            Debug.WriteLine("")
        Next j
    End Sub


求100-300之间的所有素数。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim n, k, i, d, swit As Short
        Debug.WriteLine("")
        For n = 101 To 300 Step 2
            k = Int(sqrt(n))
            i = 2
            swit = 0
            While i <= k And swit = 0
                If n Mod i = 0 Then
                    swit = 1
                Else
                    i = i + 1
                End If
            End While
            If swit = 0 Then
                d = d + 1
                If d Mod 5 = 0 Then
                    Debug.Write(Str(n) & "     ")
                    Debug.WriteLine("")
                Else
       Debug.Write(Str(n) & "     ")
                End If
            End If
        Next n
        Debug.Write("")
    End Sub


求自然对数e的近似值,要求其误差小于0.00001。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i%, n&, t!, e1!
        e1 = 0 : i = 0 : n = 1 : t = 1
        Do While t > 0.00001
            e1 = e1 + t         '累加和
            i = i + 1
            n = n * i           '连乘,求阶乘
            t = 1 / n           '计数第i项值
        Loop
        MsgBox("求e时计算了" & Str(i) & "项的和是" & Str(e1))
End Sub


百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim x%, y%, z%
        For x = 0 To 33
            For y = 0 To 50
                If 3 * x + 2 * y + 0.5 * (100 - x - y) = 100 Then
              Debug.Writeline("母鸡" & Str(x) & "公鸡" & Str(y) & "小鸡" & Str(100 - x - y))
                End If
            Next
        Next
End Sub


猴子吃桃子。小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半零一个,到第7天早上要吃时只剩下一个了,问小猴那天共摘下了多少个桃子?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim x%, i%
        x = 1
        Debug.WriteLine("第7天的桃子数为:1只")
        For i = 6 To 1 Step -1
            x = (x + 1) * 2
            Debug.WriteLine("第" & Str(i) & "天的桃子数为:" & Str(x) & "只")
        Next i
    End Sub


有一根长度为321米的钢材料,要将它截取成两种规格的短料,规格a、b的长度分别为17米和27米,每种至少1段,问分隔成a,b各多少段后,剩余的残料r最少?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a%, b%, r!, ia%, ib%, t!
        r = 321                                     '最小值初值取钢材料的长度
        For b = 1 To 321 / 27                       'b最多的段数
            For a = 1 To 321 / 17 - b               'a最多的段数
                t = 321 - b * 27 - a * 17           '当前的残料
                If t >= 0 And t < r Then            '当前的残料大于等于零(才有意义)并且比
                                                    '最短的残料小,替换最短残料
                    r = t                       `  ‘求最短的残料
                    ia = a                          '最短残料时a的段数
                    ib = b                          '最短残料时b的段数
                End If                              '最短残料时b的段数
            Next a
        Next b
        MsgBox("17米长的" & ia & "段," & "27米长的" & ib & "段," & "剩余残料为" & Str(r) & "米", , "")
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值