Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim a(,), m, n As Integer
- mat(m, n, a)
- pech(m, n, a, ListBox1)
- TextBox1.Text = Val(nomer(m, n, a))
- obmen(m, n, a)
- pech(m, n, a, listbox2)
- End Sub
- Private Sub mat(ByRef m As Integer, ByRef n As Integer, ByRef matr(,) As Integer) 'ввод матрицы
- Dim i, j As Integer
- m = Val(InputBox("число строк"))
- n = Val(InputBox("число столбцов"))
- ReDim matr(m - 1, n - 1)
- For i = 0 To m - 1
- For j = 0 To n - 1
- matr(i, j) = Val(InputBox("matr(" + Str(i) + "," + Str(j) + ")="))
- Next
- Next
- End Sub
- Private Sub pech(ByVal m As Integer, ByVal n As Integer, ByVal matr(,) As Integer, ByRef lst As ListBox) 'печать матрицы
- Dim i, j As Integer, s As String
- For i = 0 To m - 1
- s = ""
- For j = 0 To n - 1
- s = s + Str(matr(i, j)) + vbTab
- Next
- lst.Items.Add(s)
- Next
- End Sub
- Private Function kolvo(ByVal k As Integer, ByVal n As Integer, ByVal matr(,) As Integer) As Integer 'считат количество нулей в строке k (kol)
- Dim j, kol As Integer
- kol = 0
- For j = 0 To n - 1
- If matr(k, j) = 0 Then kol = kol + 1
- Next
- Return kol
- End Function
- Private Function nomer(ByVal m As Integer, ByVal n As Integer, ByVal matr(,) As Integer) As Integer 'ищет номер строки с максимальным количеством нулей (imax)
- Dim max, imax, k As Integer : max = -1
- For k = 0 To m - 1
- If kolvo(k, n, matr) > max Then
- max = kolvo(k, n, matr)
- imax = k + 1
- End If
- Next
- Return imax
- End Function
- Private Function proverka(ByVal m As Integer, ByVal n As Integer, ByVal matr(,) As Integer) As Boolean 'проверяет, есть ли в матрице нули, если есть то принимает значение false
- Dim i, j As Integer
- proverka = True
- For i = 0 To m - 1
- For j = 0 To n - 1
- If matr(i, j) = 0 Then proverka = False
- Next
- Next
- End Function
- Private Sub obmen(ByVal m As Integer, ByVal n As Integer, ByRef matr(,) As Integer) 'меняет местами последнюю строку и строку с максимальным количеством нулей
- Dim i, j, buf, imax As Integer
- imax = nomer(m, n, matr)
- If imax = m Or proverka(m, n, matr) = False Then
- MsgBox("последняя и с макс колвом 0 одно и то же или нулей нет")
- Else
- For j = 0 To n - 1
- buf = matr(imax - 1, j)
- matr(imax - 1, j) = matr(n - 1, j)
- matr(n - 1, j) = buf
- Next
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement