
Дан массив Z(10). Вставить число Р между теми числами, которые образуют пару с одинаковыми знаками.
СДЕЛАТЬ В БЭЙСИКЕ!!!!

Ответы на вопрос

Ответ:
Ответ в объяснении
Объяснение:
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 - работает.



Для выполнения этой задачи на языке программирования BASIC, вы можете использовать следующий код. Допустим, у вас есть массив Z(10) и число P, которое вы хотите вставить:
BASIC10 REM Заполнение массива Z(10) примерно таким образом 20 DIM Z(10) 30 FOR I = 1 TO 10 40 INPUT "Введите элемент Z("; I; "): ", Z(I) 50 NEXT I 60 REM Введите число P, которое вы хотите вставить 70 INPUT "Введите число P: ", P 80 REM Инициализация переменных для хранения предыдущего числа и его знака 90 PREV_NUM = Z(1) 100 PREV_SIGN = SGN(PREV_NUM) 110 REM Итерация по массиву и вставка числа P между числами с одинаковыми знаками 120 FOR I = 2 TO 10 130 CURR_NUM = Z(I) 140 CURR_SIGN = SGN(CURR_NUM) 150 160 IF CURR_SIGN = PREV_SIGN THEN 170 REM Вставка числа P между числами с одинаковыми знаками 180 FOR J = 10 TO I + 1 STEP -1 190 Z(J) = Z(J - 1) 200 NEXT J 210 Z(I + 1) = P 220 END IF 230 PREV_NUM = Z(I) 240 PREV_SIGN = CURR_SIGN 250 NEXT I 260 REM Вывод массива после вставки 270 FOR I = 1 TO 11 280 PRINT "Z("; I; ") = "; Z(I) 290 NEXT I
Обратите внимание, что этот код предполагает, что вы уже заполнили массив Z(10) и ввели значение P. Он итерирует по массиву и вставляет число P между числами с одинаковыми знаками. После выполнения кода будет выведен обновленный массив.


Похожие вопросы


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili