Найти в матрице элемент с заданной суммой цифр - VB
Формулировка задачи:
Створити матрицю М х N. Знайти в матриці елемент з заданою сумою цифр. Видалити стовпчик та рядок на перетині яких знаходиться даний елемент.
Перевод:
Создать матрицу М х N, найти в матрице элемент с заданной суммой цифр, удалить стобец и строку, на пересечении которых находиться этот элемент
Решение задачи: «Найти в матрице элемент с заданной суммой цифр»
textual
Листинг программы
Private Sub Command1_Click()
Dim M As Integer, N As Integer, a() As Single, b() As Single
Dim i As Integer, j As Integer, im As Integer, jm As Integer
Dim i2 As Integer, j2 As Integer
Dim S As Integer
AutoRedraw = True
Cls
M = Val(InputBox("вводимо M", , 5))
N = Val(InputBox("вводимо N", , 4))
S = Val(InputBox("вводимо число - суму цифр", , 3))
If M > 2 And N > 2 And S > 0 Then
ReDim a(M, N): ReDim b(M - 1, N - 1)
For i = 1 To M
For j = 1 To N
a(i, j) = Int(Rnd * 20) ' Val(InputBox("a(" & i & " ; " & j & ")"))
Print a(i, j); " ";
Next j
Print
Next i
re:
For i = 1 To M
For j = 1 To N
If im = 0 And sum_z(a(i, j)) = S Then
im = i: jm = j
GoTo 1
End If
Next j
Next i
If im = 0 Then
MsgBox "завершено", vbInformation
Exit Sub
End If
1:
i2 = 0
For i = 1 To M
If i <> im Then
i2 = i2 + 1: j2 = 0
For j = 1 To N
If j <> jm Then
j2 = j2 + 1
b(i2, j2) = a(i, j)
End If
Next j
End If
Next i
Print: Print "a( " & im & " ; " & jm & " ) = " & a(im, jm) & ", сума цифр рівна " & S: Print
For i = 1 To M - 1
For j = 1 To N - 1
Print b(i, j); " ";
Next j
Print
Next i
If N > 1 And M > 1 Then
N = N - 1: M = M - 1
ReDim a(M, N): a() = b(): ReDim b(M, N)
im = 0: jm = 0
GoTo re
End If
Else
MsgBox "некоректний ввід", vbExclamation
End If
End Sub
Function sum_z(k As Single) As Integer
Dim l As Integer
sum_z = 0
For l = 1 To Len(Replace(CStr(k), ".", ""))
sum_z = sum_z + Val(CStr(Mid(CStr(k), l, 1)))
Next l
End Function