Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите vba / 7 сообщений из 7, страница 1 из 1
09.04.2014, 20:03
    #38610442
pri1234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
поменять местами элементы массива
A(a[1],a[2],…,a[n])
Первый на место второго
второй на место третьего
и т.д.
т-ный на место первого
...
Рейтинг: 0 / 0
09.04.2014, 21:18
    #38610486
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
pri1234,

объявляешь переменную-буфер того же типа, что и элементы массива. запихиваешь в него последний(энный) элемент. в цикле присваиваешь
Код: vbnet
1.
2.
3.
for i =1 to n-1
a(i+1) = a(i)
next

потом присваиваешь первому элементу значение из буфера
...
Рейтинг: 0 / 0
09.04.2014, 21:24
    #38610487
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
* то есть
Код: vbnet
1.
2.
3.
for i = 0 to n-2
a(n-i) = a(n-i-1)
next i
...
Рейтинг: 0 / 0
09.04.2014, 21:24
    #38610488
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
pri1234,

Код: 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.
Sub a140409_2111()
Debug.Print
Debug.Print "поменять местами элементы массива"
''A(a[1],a[2],…,a[n])
''Первый на место второго
''второй на место третьего
''и т.д.
''т-ный на место первого
Dim xm, x1, x1k, s1, j1
xm = Split("1,2,3,4,5,6", ",")  'заполнение массива
x1 = LBound(xm, 1)
x1k = UBound(xm, 1)
s1 = xm(x1k)   'запоминаем последний
j1 = x1k
Do While j1 > x1
xm(j1) = xm(j1 - 1)      'сдвиг с конца
j1 = j1 - 1
Loop

xm(x1) = s1        'занесение последнего в первый
j1 = x1
Do While j1 <= x1k
Debug.Print xm(j1);  'контрольная печать
j1 = j1 + 1
Loop


End Sub
...
Рейтинг: 0 / 0
09.04.2014, 23:18
    #38610558
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
Клевер* то есть
Код: vbnet
1.
2.
3.
for i = 0 to n-2
a(n-i) = a(n-i-1)
next i



Вы в последующий элемент массива помещаете предыдущий, т.е. все элементы массива будут равны первому элементу исходного массива.
...
Рейтинг: 0 / 0
09.04.2014, 23:34
    #38610567
pri1234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
а как поменять местами n-ый с первым
...
Рейтинг: 0 / 0
10.04.2014, 02:27
    #38610623
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите vba
pri1234,
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите vba / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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