Ответ:
Ответ в объяснении
Объяснение:
Visual Basic
Dim Z(), N() As Integer ' Объявляем динамический массивы Z и N, их размеры будут меняться.
Dim i As Integer, j As Integer, k As Integer, P As Integer, Msg As String
ReDim Z(10), N(10) ' Определяем сначала, что в массивах Z и N будет по 10 элементов
For i = 1 To 10
__Msg = "Введите " & i & " элемент массива"
__Z(i) = InputBox (Msg) ' Вводим начальные значения массива Z
__N(i) = Z(i) ' И сохраняем их в массиве N
Next i
P = InputBox ("Введите значение P")
i = 10 : k = i
Do While i > 1
__If Z(i)*Z(i-1) > 0 Then ' Если два элемента имеют одинаковый знак, то их произведение > 0
____k = k + 1
____Redim Z(k) ' Добавляем в массив Z место под еще один элемент
____' При этом массив обнуляется, поэтому его необходимо было сохранить в массиве N
____For j = 1 To i - 1
______Z(j) = N(j) ' Копируем элементы перед P
____Next j
____Z(i) = P ' Вставляем элемент P
____For j = i + 1 To k
______Z(j) = N(j - 1) ' Копируем элементы после P
____ReDim N(k) ' Добавляем в массив N место под еще один элемент. При этом N обнуляется.
____For j = 1 To k
______N(j) = Z(j) ' Копируем массив Z в N
__End If
__i = i - 1
Loop
Дальше идет вывод массива Z.
Я проверил в VB 6 - работает.
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Ответ:
Ответ в объяснении
Объяснение:
Visual Basic
Dim Z(), N() As Integer ' Объявляем динамический массивы Z и N, их размеры будут меняться.
Dim i As Integer, j As Integer, k As Integer, P As Integer, Msg As String
ReDim Z(10), N(10) ' Определяем сначала, что в массивах Z и N будет по 10 элементов
For i = 1 To 10
__Msg = "Введите " & i & " элемент массива"
__Z(i) = InputBox (Msg) ' Вводим начальные значения массива Z
__N(i) = Z(i) ' И сохраняем их в массиве N
Next i
P = InputBox ("Введите значение P")
i = 10 : k = i
Do While i > 1
__If Z(i)*Z(i-1) > 0 Then ' Если два элемента имеют одинаковый знак, то их произведение > 0
____k = k + 1
____Redim Z(k) ' Добавляем в массив Z место под еще один элемент
____' При этом массив обнуляется, поэтому его необходимо было сохранить в массиве N
____For j = 1 To i - 1
______Z(j) = N(j) ' Копируем элементы перед P
____Next j
____Z(i) = P ' Вставляем элемент P
____For j = i + 1 To k
______Z(j) = N(j - 1) ' Копируем элементы после P
____Next j
____ReDim N(k) ' Добавляем в массив N место под еще один элемент. При этом N обнуляется.
____For j = 1 To k
______N(j) = Z(j) ' Копируем массив Z в N
____Next j
__End If
__i = i - 1
Loop
Дальше идет вывод массива Z.
Я проверил в VB 6 - работает.