Найти в матрице элемент с заданной суммой цифр - VB

Узнай цену своей работы

Формулировка задачи:

Створити матрицю М х N. Знайти в матриці елемент з заданою сумою цифр. Видалити стовпчик та рядок на перетині яких знаходиться даний елемент. Перевод: Создать матрицу М х N, найти в матрице элемент с заданной суммой цифр, удалить стобец и строку, на пересечении которых находиться этот элемент

Решение задачи: «Найти в матрице элемент с заданной суммой цифр»

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim M As Integer, N As Integer, a() As Single, b() As Single
  3. Dim i As Integer, j As Integer, im As Integer, jm As Integer
  4. Dim i2 As Integer, j2 As Integer
  5. Dim S As Integer
  6.  
  7. AutoRedraw = True
  8. Cls
  9. M = Val(InputBox("вводимо M", , 5))
  10. N = Val(InputBox("вводимо N", , 4))
  11. S = Val(InputBox("вводимо число  -  суму цифр", , 3))
  12. If M > 2 And N > 2 And S > 0 Then
  13.  
  14. ReDim a(M, N): ReDim b(M - 1, N - 1)
  15. For i = 1 To M
  16.    For j = 1 To N
  17.       a(i, j) = Int(Rnd * 20) ' Val(InputBox("a(" & i & " ; " & j & ")"))
  18.       Print a(i, j); "   ";
  19.    Next j
  20.     Print
  21. Next i
  22.  
  23. re:
  24. For i = 1 To M
  25.    For j = 1 To N
  26.        If im = 0 And sum_z(a(i, j)) = S Then
  27.             im = i: jm = j
  28.             GoTo 1
  29.          End If
  30.    Next j
  31. Next i
  32.  
  33. If im = 0 Then
  34. MsgBox "завершено", vbInformation
  35. Exit Sub
  36. End If
  37.  
  38. 1:
  39. i2 = 0
  40. For i = 1 To M
  41.             If i <> im Then
  42.             i2 = i2 + 1: j2 = 0
  43.                For j = 1 To N
  44.                  If j <> jm Then
  45.                     j2 = j2 + 1
  46.                     b(i2, j2) = a(i, j)
  47.                  End If
  48.                Next j
  49.             End If
  50. Next i
  51.  
  52.  
  53.  Print: Print "a( " & im & " ; " & jm & " ) = " & a(im, jm) & ", сума цифр рівна " & S: Print
  54.  
  55. For i = 1 To M - 1
  56.     For j = 1 To N - 1
  57.      Print b(i, j); "   ";
  58.     Next j
  59.  Print
  60. Next i
  61.  
  62. If N > 1 And M > 1 Then
  63. N = N - 1: M = M - 1
  64. ReDim a(M, N): a() = b(): ReDim b(M, N)
  65. im = 0: jm = 0
  66. GoTo re
  67. End If
  68. Else
  69. MsgBox "некоректний ввід", vbExclamation
  70. End If
  71.  
  72. End Sub
  73. Function sum_z(k As Single) As Integer
  74. Dim l As Integer
  75. sum_z = 0
  76. For l = 1 To Len(Replace(CStr(k), ".", ""))
  77. sum_z = sum_z + Val(CStr(Mid(CStr(k), l, 1)))
  78. Next l
  79. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы