鞍点

      姓名:辛雅松 专业:电气工程及其自动化学号:15050341033

找一个n*m的二维数组的“鞍点”

、实验目的:

 1.掌握数组的声明和数组元素的引用

 2.掌握定长数组和动态数组的使用

 3.掌握数组的基本操作算法

 4.掌握过程的定义和调用 

二、实验内容

         找一个n*m的二维数组的“鞍点”。“鞍点”是指它在本行中数值最大,在本列中数值最小。也可能在一个数组中找不到鞍点。输出鞍点的行、列号,如无鞍点则输出“无鞍点”。

三、实验步骤

Option Base 1

Private Sub form_Click()

Dim a() As Integer, i As Integer, j As Integer,k AsInteger

Dim max As Integer, column As Integer, find As Boolean

||生成二维数组

n = Me.Text1.Text

m = Me.Text2.Text

ReDim a(n, m)

Print n & "*" & m & "矩阵"

For i = 1 To n

For j = 1To m

    a(i, j) = Int(Rnd * 9) + 1

    Print a(i, j);

Next j

Print

Next i

||此时数组里全是0,我们用一个双重循环来赋初值i—m,j—n.

Fori = 1 To n

max = a(i, 1)

column = 1

For j = 2 To m

        If max < a(i, j) Then

             max = a(i, j)

             column = j

        End If

Next j

For k = 1 To n

        If max > a(k, column) Then

             ExitFor

        End If

Next k

If k = n + 1 Then                                            'k<=n表示max不是该列最小值,k=n+1表示max是该列最小值

        Print "存在鞍点a(" & i & ","& col & ")=" & a(i, column)

        find = True

    End If

Nexti

If Not find Then

Print "鞍点元素不存在"

EndIf

End Sub

四、实验感想

分析:可以仿照本章例题,利用查找最值和排序的算法,对于矩阵的每一行完成以下操作:先求出每行的最大值,以及它所在的列,然后根据此最大值所在的列,判断该最大值是否是所在列的最小值,若是,则此数是要找的鞍点,则输出鞍点的行、列号。若遍历所有行没有找到鞍点,则输出“鞍点元素不存在”。

五、心得体会

选值时可以借鉴排序的方法,主要是如何将符合的鞍点表示出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值