Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
-7 / 0 / 0
Регистрация: 17.10.2018
Сообщений: 10

Массив: Вставить число А между всеми соседними элементами массива, имеющими одинаковое количество цифр.

25.10.2018, 19:30. Показов 2415. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан целочисленный линейный массив. Вставить число a между всеми соседними элементами, имеющими одинаковое количество цифр.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2018, 19:30
Ответы с готовыми решениями:

Вставить число к между всеми соседними элементами, имеющими одинаковый знак
Здравствуйте! Прошу помочь. Есть задание: вставить число К между всеми соседними элементами, имеющими одинаковый знак.новый массив не...

Вставить число к между всеми соседними элементами, имеющими одинаковый знак
Вставить число к между всеми соседними элементами, имеющими одинаковый знак (массив заполнен случайными числами )

Вставить ноль между всеми соседними элементами массива, имеющими разный знак
Вставить ноль между всеми соседними элементами массива имеющими разный знак

3
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
26.10.2018, 09:37
Уважаемый Срок,
предлагаю вам свой алгоритм решения вашей задачи.
1. объявить число А и инициировать его
2. объявить линейный массив X(), (например Dim X(10) As Integer)
3. и заполнить его целыми случайными числами
4. объявить линейный массив Y(), такой же длины как и массив X()
(в этот массив будет помещаться длина чисел массива X())
5. выполнить
Visual Basic
1
2
3
For i = 1 To n
   Y(i) = Val(Len(Str(Abs(X(i))))) - 1
Next
примечание: надеюсь вы понимаете, что мы находим сначала модуль числа (функция Abs()), потом переводим число в строковый вид (функция Str()), потом вычисляем длину числа (функция Len() выдает длину числа + 1), и далее число возвращаем в числовой вид (функция Val()), и минус 1 (последнее можно и не делать)
6. теперь нам необходимо узнать, сколько же чисел А надо добавить?
7. выполнить
Visual Basic
1
2
3
For i = 1 To n - 1
   If Y(i) = Y(i + 1) Then kol = kol + 1
Next
(где kol - количество чисел А подлежащих добавке)
8. объявить линейный массив Z() длина которого будет больше длины массива X() на величину kol
(например, Dim Z(10 + kol) As Integer))
9. теперь заполняем массив Z() элементами массива X() и числами А.
10. выполнить
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
k = 1
 
For i = 1 To n - 1
   If Y(i) = Y(i + 1) Then
      Z(k) = X(i)
      Z(k + 1) = A
      k = k + 2
   Else
      Z(k) = X(i)
      k = k + 1
   End If
Next
11. теперь надо распечатать оба массива X() и Z() для сравнения

Добавлено через 13 минут
примечание
для объявления динамических массивов следует использовать
оператор ReDim (массив Z() - динамический)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
26.10.2018, 10:03
Цитата Сообщение от нтч Посмотреть сообщение
функция Len() выдает длину числа + 1
Неправда.

Добавлено через 8 минут
Замените Str на Cstr и не нужно будет минусовать единицу.

Цитата из справочника:

Функция Str(String) используется для приведения числового выражения типа Long в строку(тип String)

Возвращаемое значение
Функция Str(Expression) возвращает значение Number, преобразованное в текстовый тип данных String.
При преобразовании в начале строки возвращаемого значения резервируется место для знака числа. Если число положительно, то в этом месте будет пробел, если число отрицательно, то выводится знак минус.
.......
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
27.10.2018, 02:19
Цитата Сообщение от нтч Посмотреть сообщение
Уважаемый Срок,
предлагаю вам свой алгоритм решения вашей задачи.
Вы издеваетесь? ТСу не нужен алгоритм, а нужен готовый код, который можно скопипастить, сдать и забыть.
По алгоритму - достаточно одного цикла. Создать выходной массив удвоенной длины, записать первый элемент. В цикле: если длина очередного элемента равна длине предыдущего, записать в выходной массив заданное число. Записать очередной элемент. После цикла Redim Preserve выходного массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2018, 02:19
Помогаю со студенческими работами здесь

Вставить число n между всеми соседними элементами массива
Вставить число n между всеми соседними элементами одномерного массива, имеющими одинаковый знак. Каким должен быть максимальным размер...

Вставить число k между всеми соседними элементами массива
1. Вставить число k между всеми соседними элементами, которые имеют одинаковые знаки (k вводится с клавиатуры). 2. Переставить в...

Вставить число n между всеми соседними элементами массива с одинаковым знаком
Вставить число n между всеми соседними элементами, имеющими одинаковый знак. Каким должен быть максимальный размер исходного массива?

Вставьте в заданный массив элемент X между всеми соседними элементами, имеющими разные знаки
Дан одномерный массив (из N элементов), элементы которого - целые числа, не равные нулю. Также дано целое число X. Вставьте в заданный...

Дан целочисленный линейный массив. Вставить число d между всеми соседними элементами, являющимися отрицательными
Дан целочисленный линейный массив. Вставить число d между всеми соседними элементами, являющимися отрицательными.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru