powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка дополнительного элемента в массив
8 сообщений из 8, страница 1 из 1
Вставка дополнительного элемента в массив
    #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
Вставка дополнительного элемента в массив
    #39789687
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря что подразумевается под "вставить". Нужно же еще и остальные элементы сдвинуть вправо.

BTW я бы не заморачивался сдвигом и просто сформировал бы третий массив из первых двух, это проще, но не знаю, насколько это допускает твой учитель.
...
Рейтинг: 0 / 0
Вставка дополнительного элемента в массив
    #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
Вставка дополнительного элемента в массив
    #39789691
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proсдвинуть вправо.
Akinaна 1 "вниз"Дополнительный вопрос на экзамене: в какую сторону в VB "растет" одномерный массив
...
Рейтинг: 0 / 0
Вставка дополнительного элемента в массив
    #39789704
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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


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