Заменить каждую серию массива нулем - VB

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

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

Уважаемые, помогите пожалуйста с задачей. Дано целое число L(>0) и целочисленный массив размера N. Заменить каждую серию( назовем серией группу подряд идущих одинаковых элементов, а длиной серии - количество этих элементов (длина серии может быть равна 1)) массива, длина которой равна L, на один элемент с нулевым значением. Эта задача есть в Паскале, но к сожалению я вообще не пойму как ее сделать(

Решение задачи: «Заменить каждую серию массива нулем»

textual
Листинг программы
  1. Function Task(A() As Integer, L As Integer) As Integer()
  2. Dim R() As Integer
  3.     n% = UBound(A, 1)
  4.     ReDim R(1 To n%) As Integer
  5.     prev% = A(1)
  6.     c% = 1
  7.     o% = 0
  8.     For i% = 2 To n%
  9.         curr% = A(i%)
  10.         If curr% = prev% Then
  11.            c% = c% + 1
  12.         Else
  13.            If c% = L% Then '::: серия нужной длины
  14.              o% = o% + 1
  15.               R(o%) = 0
  16.            Else
  17.               For j% = 1 To c%
  18.                   o% = o% + 1
  19.                   R(o%) = prev%
  20.               Next j%
  21.            End If
  22.            c% = 1
  23.         End If
  24.        
  25.         prev% = curr%
  26.        
  27.     Next i%
  28.  
  29.     If c% = L% Then '::: серия нужной длины
  30.       o% = o% + 1
  31.        R(o%) = 0
  32.     Else
  33.        For j% = 1 To c%
  34.            o% = o% + 1
  35.            R(o%) = prev%
  36.        Next j%
  37.     End If
  38.     ReDim Preserve R(1 To o%) As Integer
  39.     Task = R
  40. End Function
  41.  
  42. Sub Test()
  43. Dim X(1 To 10) As Integer
  44. Dim R()        As Integer
  45.     X(1) = 1
  46.     X(2) = 1
  47.     X(3) = 3
  48.     X(4) = 4
  49.     X(5) = 5
  50.     X(6) = 5
  51.     X(7) = -7
  52.     X(8) = 8
  53.     X(9) = 9
  54.     X(10) = 10
  55.     R = Task(X, 1)
  56.     For i% = 1 To UBound(R, 1)
  57.         Debug.Print R(i%)
  58.     Next i%
  59. End Sub

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


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

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

8   голосов , оценка 4.25 из 5

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

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

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