Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка дополнительного элемента в массив / 8 сообщений из 8, страница 1 из 1
21.03.2019, 15:41
    #39789681
desant13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Здравствуйте! Есть задание: вставить после каждого положительного элемента второго массива максимальный элемент из первого массива. Это продолжение общего задание есть часть решения:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
  Private Function MasB() As Integer

        TextBox5.Text = ""

        Dim i, n As Integer
        n = kol - 1
        ReDim b(n)
        For i = 0 To n
            b(i) = mas(i)
            If b(i) < -99 Or b(i) > -10 Then
                If b(i) < 10 Or b(i) > 99 Then
                    TextBox5.Text += CStr(b(i)) & vbCrLf

                End If
            End If
        Next i
        Return MasB
    End Function

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        MasB()

    End Sub

    Private Function MasC() As Integer
        Dim i As Integer
        ReDim c(n)
        Mmax = b(0)
        TextBox6.Text = ""
        For i = 1 To n
            c(i) = b(i)
            If c(i) > Mmax Then ' Максимальное число
                Mmax = c(i)
                If b(i) >= 0 Then                                      'Скорее всего тут проблема !!!
                    b(i + 1) = Mmax
                    TextBox6.Text += CStr(b(i)) & vbCrLf
                End If

            End If

        Next i
       
        Return MasC
    End Function


А теперь сам вопрос, как в ставить после каждого положительного элемента " Mmax ", т.е. мне надо увеличивать номер элемента на +1и в это число вставлять " Mmax "?
...
Рейтинг: 0 / 0
21.03.2019, 15:45
    #39789687
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Смотря что подразумевается под "вставить". Нужно же еще и остальные элементы сдвинуть вправо.

BTW я бы не заморачивался сдвигом и просто сформировал бы третий массив из первых двух, это проще, но не знаю, насколько это допускает твой учитель.
...
Рейтинг: 0 / 0
21.03.2019, 15:48
    #39789690
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
VB не умеет вставлять элементы в массив. Чтобы выполнить эту операцию, потребуется:
1) Переопределить массив, увеличив его размер с сохранением данных
2) Переместить элементы от точки вставки до конца массива на 1 "вниз"
3) Вставить значение в нужное место

Схематично:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub insert_element(DataArray(), element, position)
Redim Preserve DataArray(UBOUND(DataArray)+1)
For i = UBOUND(DataArray) to position+1 step -1
    DataArray(i) = DataArray(i-1)
Next i
DataArray(position) = element
End sub


Но я бы рекомендовал использовать временный массив, размер коего равен суммарному размеру обоих исходных, и копировать туда элементы. В конце - удалить лишние элементы.
...
Рейтинг: 0 / 0
21.03.2019, 15:50
    #39789691
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Shocker.Proсдвинуть вправо.
Akinaна 1 "вниз"Дополнительный вопрос на экзамене: в какую сторону в VB "растет" одномерный массив
...
Рейтинг: 0 / 0
21.03.2019, 15:59
    #39789704
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Shocker.Pro,

Это элеменатрно, массив в VB "растет" в сторону увеличения индекса элементов массива.
...
Рейтинг: 0 / 0
21.03.2019, 16:17
    #39789719
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Shocker.ProДополнительный вопрос на экзамене: в какую сторону в VB "растет" одномерный массив
Нетривиальный вопрос. Ответ на него, и даже сама возможность существования ответа, зависит от типа данных...
...
Рейтинг: 0 / 0
21.03.2019, 16:26
    #39789724
desant13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
AkinaНо я бы рекомендовал использовать временный массив, размер коего равен суммарному размеру обоих исходных, и копировать туда элементы. В конце - удалить лишние элементы. так мне нужно вставить именно после полож-го числа
...
Рейтинг: 0 / 0
21.03.2019, 19:02
    #39789809
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка дополнительного элемента в массив
Какая в пень разница? неужели проверить и запомнить, положителен ли очередной копируемый элемент, вызывает проблемы?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка дополнительного элемента в массив / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]