Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 09.06.2010
Сообщений: 11
1

Вставка элементов в массив

29.09.2010, 20:42. Показов 7668. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как вставлять в массив элементы, т.е я вывел массив 3 1 2 , и после цифры один я должен вставить 3, что бы получилось 3 1 3 2
Сама задача вот такая:
Дано натуральное число N. Подсчитать колличество цифр данного числа. Вставить в одномерный заданный массив полученную цифру после минимального элемента.

Подскажите пожалуйста!

Visual Basic
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
Option Explicit
 
Sub Nachalo()
Dim intKol3 As Integer
Dim intKol2 As Integer
Dim intIndex As Integer
Dim strArray As String
Dim intMin As Integer
Dim strN As String
Dim intI As Integer
Dim intKol As Integer
Dim intRol() As Integer
strN = InputBox("Введите натуральное число N", "Ввод числа")
intKol2 = Len(strN)
MsgBox ("Введено " + CStr(intKol2) + " цифр(ы)")
intKol = InputBox("Сколько эллементов в массив будем вводить?")
ReDim intRol(1 To intKol)
For intI = 1 To intKol
 intRol(intI) = InputBox("Введите " + CStr(intI) + " элемент")
Next
intIndex = intRol(1)
For intI = 1 To intKol
  strArray = strArray & intRol(intI) & Space(1)
 If intRol(intI) < intIndex Then intIndex = intI
Next
intMin = intRol(intIndex)
MsgBox (strArray + Chr(13) + Chr(10) + "Минимальный элемент = " + CStr(intMin) + Chr(13) + Chr(10) + "Его индекс= " + CStr(intIndex))
ReDim Preserve intRol(1 To (intKol + 1))
For intI = intIndex To (intKol + 1)
[B]intRol(intI) = intRol(intI+1)[/B] 'вот это вот я типа сместил его на единицу вправо))) Ну эт не правильно =) 
intRol(intIndex + 1) = intKol2
Next
 
strArray = ""
For intI = 1 To intKol + 1
 strArray = strArray & intRol(intI) & Space(1)
Next
 MsgBox (strArray)
End Sub
Я как понял его нужно просто сместить впра на один индекс)) ТОк чет сделать не получаеться!) Помогите пожалуйста!

Добавлено через 3 часа 11 минут
Ну помогите кто нибудь! =)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2010, 20:42
Ответы с готовыми решениями:

Вставка новых элементов в массив
Задача: Дан массив размера N и два целых числа K и M (1≤K≤N,1≤M≤10). Перед элементом массива...

Вставка элементов строки массива на лист Excel
Добрый день! К примеру, есть массив data(1 To 3, 1 To n). Необходимо вставить на некоторое место...

Определение количества различных элементов массива, вставка элементов в массив
1) Пятая задача решена, но я вставил эту функцию r:= 1/exp(ln(i)*i), а мне сказали, что никаких...

Вставка элементов в массив.
Дан массив размера N. преобразовать его, вставив перед каждым положительным элементом нулевой...

4
здесь больше нет...
3374 / 1672 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
29.09.2010, 21:30 2
Visual Basic
1
2
3
4
5
6
   ReDim Preserve intRol(1 To UBound(intRol) + 1)
   
   For i = UBound(intRol) To intIndex + 2 Step -1
      intRol(i) = intRol(i - 1)
   Next i
   intRol(intIndex + 1) = intKol2
1
1 / 1 / 0
Регистрация: 09.06.2010
Сообщений: 11
29.09.2010, 22:05  [ТС] 3
Блин спасибо =)
а я вот только что вот так сделал))
Visual Basic
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
45
46
47
48
Option Explicit
 
Sub Nachalo()
Dim intKol3 As Integer
Dim intKol2 As Integer
Dim intIndex As Integer
Dim strArray As String
Dim intMin As Integer
Dim strN As String
Dim intI As Integer
Dim intJ As Integer
Dim intKol As Integer
Dim intRol() As Integer
Dim intRol2() As Integer
strN = InputBox("Введите натуральное число N", "Ввод числа")
intKol2 = Len(strN)
MsgBox ("Введено " + CStr(intKol2) + " цифр(ы)")
intKol = InputBox("Сколько эллементов в массив будем вводить?")
ReDim intRol(1 To intKol)
For intI = 1 To intKol
 intRol(intI) = InputBox("Введите " + CStr(intI) + " элемент")
Next
intIndex = intRol(1)
For intI = 1 To intKol
  strArray = strArray & intRol(intI) & Space(1)
 If intRol(intI) < intIndex Then intIndex = intI
Next
intMin = intRol(intIndex)
MsgBox (strArray + Chr(13) + Chr(10) + "Минимальный элемент = " + CStr(intMin) + Chr(13) + Chr(10) + "Его индекс= " + CStr(intIndex))
ReDim Preserve intRol(1 To (intKol + 1))
ReDim intRol2(1 To intKol)
intJ = 0
For intI = intIndex + 1 To (intKol)
intJ = intJ + 1
intRol2(intJ) = intRol(intI)
Next
intRol(intIndex + 1) = intKol2
intJ = 0
For intI = intIndex + 2 To (intKol + 1)
intJ = intJ + 1
intRol(intI) = intRol2(intJ)
Next
strArray = ""
For intI = 1 To intKol + 1
 strArray = strArray & intRol(intI) & Space(1)
Next
 MsgBox (strArray)
End Sub
Но ваш способ проще! =) Благодарю ещо раз =)

Добавлено через 4 минуты
А можно пояснить смысл вами написаннго?) Буду весьма признатален!

Добавлено через 23 минуты
Цитата Сообщение от аналитика Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
   ReDim Preserve intRol(1 To UBound(intRol) + 1) 'Устнавливаем массив на один элементи больше
   
   For i = UBound(intRol) To intIndex + 2 Step -1 'Начиная с конца идем обратно
      intRol(i) = intRol(i - 1) ' Идет присваивание =)
   Next i
   intRol(intIndex + 1) = intKol2 'Ставим перед минимальным кол-во цифр
Разобрался =)
0
здесь больше нет...
3374 / 1672 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
29.09.2010, 22:12 4
А можно пояснить смысл вами написаннго?) Буду весьма признатален!
алгоритм следующий:
расширяем массив +1
присваиваем (с последнего до минимального) значению массива предыдущее значение (получается сдвиг)
остается "шлейф" от сдвига, на его место нашу новую циферку и "кладем"
Изображения
 
1
1 / 1 / 0
Регистрация: 09.06.2010
Сообщений: 11
29.09.2010, 22:18  [ТС] 5
аналитика, Спасибо огромное )
0
29.09.2010, 22:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2010, 22:18
Помогаю со студенческими работами здесь

Вставка элементов в массив С#
вставить элемет в массив после первого отрицательного элемента.Решить в методах!

Вставка элементов в массив
Определить, есть ли в одномерном массиве четный элемент, после которого идут два нечетных. Если...

Вставка элементов в массив
Дан массив размером nxn, его элементы целые числа. 1 Для каждой строки найти последний четный...

Вставка элементов в массив
Вставить после последнего отрицательного элемента, два элемента которые равны значениям...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru