就业数据资源平台
当前位置:首页 > Visual Basic
计算机等级考试二级VB常用算法(2):最值问题

   1、算法说明


在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。


求最小值的方法类同。


求若干数平均值,实质上就是先求和,再除以这些数的个数。




应用举例


随机产生n1100(包括1100)的数,求它们的最大值、最小值和平均值。


Private Sub Command1_Click()


    Dim n As Integer, i As Integer, min As Integer, max As Integer, aver As Single, s As Integer


    n = Val(InputBox("输入个数:"))


    s = Int(Rnd * 100) + 1


    max = s


    min = s


    aver = s


    Print "1个数是:" & s


    For i = 2 To n


        s = Int(Rnd * 100) + 1


        Print "" & i & "个数是:" & s


        If s > max Then max = s


        If s < min Then min = s


        aver = aver + s


    Next i


    aver = aver / n


    Print "max="; max; "min="; min; "aver="; aver


End Sub


解题技巧


最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在记录最大、最小值时,同时记录该值所在的行号和列号。

   
2、实战练习

1)       补充代码(2000春二(9))

    本程序的功能是在二维数组中查找鞍点元素,即该元素在所在行中为最大,且在所在列中为最小。在一个数组中可能存在,也可能不存在这样的元素。数组各元素的值从文件data.txt中读取。

        Private Sub Form_Click()

                           Dim a(3,3) As Integer,i As Integer,j As Integer

                           Dim maxvr As Integer,col As Integer, As Integer

                           Open data.txt For Input As #1

         For i=1 To 3

                  For j=1 To 3

                           Input #1,a(i,j)

                           Print a(i,j);

                  Next j

                  Print

         Next i

         For i=1 To 3

                  maxvr=  (1) 

                  col=1

                  For j=2 To 3

                           If maxvr
                                    maxvr=  (2) 

                                    col=j

                           End If

                  Next j

                  For j=1 To 3

                           If maxvr>a(j,col) Then   (3) 

                  Next j
就业数据资源平台