Удаление столбца из массива. Не получается - VB

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

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

Помогите, пожалуйста, с прогой. Что-то она за пределы массива выходит. Вот задание: Удалить все столбцы, в которых встретится нечетный положительный элемент. Код:
Листинг программы
  1. Dim a(1 To 50, 1 To 50) As Integer
  2. Private Sub Command1_Click()
  3. Picture1.Cls
  4. Picture2.Cls
  5. n = Text1
  6. m = Text2
  7. imin = Text3
  8. imax = Text4
  9. For i = 1 To n
  10. For j = 1 To m
  11. a(i, j) = imin + Rnd * (imax - imin)
  12. Picture1.Print a(i, j),
  13. Next
  14. Picture1.Print
  15. Next
  16. For j = 1 To m
  17. For i = 1 To n
  18. If a(i, j) > 0 Then
  19. If a(i, j) Mod 2 = 1 Then
  20. g = j
  21. i = 1
  22. Do While i <= n
  23. j = m
  24. Do While j >= g
  25. z = a(i, j)
  26. a(i, j) = x
  27. x = z
  28. j = j - 1
  29. Loop
  30. i = i + 1
  31. Loop
  32. Exit For
  33. m = m - 1
  34. End If
  35. End If
  36. Next
  37. Next
  38. For i = 1 To n
  39. For j = 1 To m
  40. Picture2.Print a(i, j),
  41. Next
  42. Picture2.Print
  43. Next
  44. End Sub
Вот тут какая-то проблемка: Я уже заколебался, и так, и сяк пробовал, ничего не выходит( Буду бесконечно благодарен за помощь)

Решение задачи: «Удаление столбца из массива. Не получается»

textual
Листинг программы
  1. Dim a() As Integer
  2. Private Sub Command1_Click()
  3.    Dim i As Integer, j As Integer, n As Integer, m As Integer, z As Integer, k As Integer, x As Integer
  4.    Picture1.Cls
  5.    Picture2.Cls
  6.    n = Text1
  7.     m = Text2
  8.     imin = Text3
  9.     imax = Text4
  10.     ReDim a(1 To n, 1 To m)
  11.     For i = 1 To n
  12.         For j = 1 To m
  13.             a(i, j) = imin + Rnd * (imax - imin)
  14.             Picture1.Print a(i, j) & vbTab;
  15.         Next
  16.         Picture1.Print
  17.     Next
  18. m1: For j = 1 To m
  19.        For i = 1 To n
  20.            If a(i, j) > 0 And a(i, j) Mod 2 <> 0 Then
  21.                 For x = j To m - 1
  22.                    For k = 1 To n
  23.                         a(k, x) = a(k, x + 1)
  24.                    Next k
  25.                 Next x
  26.                 m = m - 1
  27.                 If m <= 0 Then MsgBox "Во всех столбцах имеются нечетные положительные элементы": Exit Sub
  28.                 GoTo m1
  29.                 Exit For
  30.            End If
  31.         Next i
  32.      Next j
  33.      ReDim Preserve a(1 To n, 1 To m)
  34.      For i = 1 To n
  35.        For j = 1 To m
  36.           Picture2.Print a(i, j) & vbTab;
  37.        Next
  38.        Picture2.Print
  39.      Next
  40. End Sub

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


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

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

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

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

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

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