Вставить после каждой четной строки Первую строку - VB

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

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

Доброй ночи! Помогите пожалуйста исправить код. Не могу найти ошибку. Он мне первую строку копирует вообще на все строки, но правильно увеличивает массив. Нужно решить именно без дополнительного массива! Код записан в модуле.
Листинг программы
  1. Public Sub Vstavka(ByRef x(,) As Integer, ByRef n As Integer, ByVal m As Integer)
  2. Dim k_s, k As Integer
  3. k_s = n
  4. k = 0
  5. For i = 0 To n - 1
  6. If i Mod 2 = 0 Then
  7. n = n + 1
  8. For ii = n - 1 To i + 2 Step -1
  9. For j = 0 To m - 1
  10. x(ii, j) = x(ii - 1, j)
  11. Next j
  12. Next ii
  13. For ii = 0 To n - 1
  14. For j = 0 To m - 1
  15. x(ii + 1, j) = x(0, j)
  16. Next j
  17. Next ii
  18. k_s = k_s + 1
  19. End If
  20. Next i
  21. End Sub
В Форме записано вот что
Листинг программы
  1. ...
  2. If RadioButton6.Checked Then Vstavka(a, n, m)
  3. Vivod(n, m, DataGridView2, a)
  4. ...

Решение задачи: «Вставить после каждой четной строки Первую строку»

textual
Листинг программы
  1. Option Base 1
  2. Private Sub Command1_Click()
  3. Dim mas() As Integer, i As Integer, j As Integer, m As Integer, n As Integer
  4. Dim m1 As Integer, k As Integer, m2 As Integer
  5. m = Val(InputBox("Количество строк (2-10)"))
  6. n = Val(InputBox("Количество столбцов (2-10)"))
  7. If m < 2 Or m > 10 Or n < 2 Or n > 10 Then
  8.     MsgBox "Неверные значения!", 0, ""
  9.     Exit Sub
  10. End If
  11. m1 = m + Int(m / 2)
  12. ReDim mas(m1, n)
  13. Cls
  14. Print "Исходный массив:"
  15. For i = 1 To m
  16.     For j = 1 To n
  17.         mas(i, j) = 100 * Rnd()
  18.         Print mas(i, j),
  19.     Next j
  20.     Print
  21. Next i
  22. Print
  23. Print "Результирующий массив:"
  24. m2 = m
  25. For i = m To 2 Step -1
  26.     If i Mod 2 = 0 Then
  27.         m2 = m2 + 1
  28.         If i <> m Then
  29.             For k = m2 To i + 2 Step -1
  30.                 For j = 1 To n
  31.                     mas(k, j) = mas(k - 1, j)
  32.                 Next j
  33.             Next k
  34.         End If
  35.         For j = 1 To n
  36.             mas(i + 1, j) = mas(1, j)
  37.         Next j
  38.     End If
  39. Next i
  40. For i = 1 To m1
  41.     For j = 1 To n
  42.         Print mas(i, j),
  43.     Next j
  44.     Print
  45. Next i
  46. End Sub

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


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

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

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

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

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

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