Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2012, 12:57   #1
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию Перестановка элементова массива,VBA

Всем привет.Пытаюсь решить задачу но озадачился под конец.
Необходимо переставить элементы массива,так,чтобы в начале оказались четные числа,а в конце - нечетные,вот как у меня вышло:
Код:
Public Sub Arr()
Dim i%, n%, a%()
 n = InputBox("Vvedite razmernost' massiva")
 ReDim a(1 To n)
 For i = 1 To n
 a(i) = InputBox(" A(" & i & ") =")
 Next i
 For j = 0 To i
 If a(i) Mod 2 Then
 
    Else

 End If
 Next j
End Sub
И вот не знаю какой код вписывать между Else.

Заранее оч. признателен.
xrenomx вне форума Ответить с цитированием
Старый 14.06.2012, 18:03   #2
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

aп,нужнa помощь.
Нужно ли для этого создавать 2 массива,один для четных элементов,другой для нечетных
xrenomx вне форума Ответить с цитированием
Старый 14.06.2012, 22:26   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Public Sub Arr()
Dim i%, n%, a%(),NN%,Tmp%
 n = InputBox("Vvedite razmernost' massiva")
 ReDim a(1 To n)
 For i = 1 To n
 a(i) = InputBox(" A(" & i & ") =")
 Next i
 NN = 1
 For J = 1 To N
 If a(J) Mod 2 = 0 Then
 Tmp = a(NN)
 a(NN) = a(J)
 NN = NN + 1
  a(NN) = Tmp
  J = NN
 End If
 Next J
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.06.2012, 22:57   #4
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

О,спасибо большое,осталось только вот вывести результат на экран,как раз таки,чтобы первыми были четные элементы,а потом нечетные,пробовал:

Код:
Public Sub Arr()
Dim i%, n%, a%(), NN%, k%, Tmp%
 n = InputBox("Vvedite razmernost' massiva")
 ReDim a(1 To n)
 For i = 1 To n
 a(i) = InputBox(" A(" & i & ") =")
 Next i
 NN = 1
 For j = 1 To n
 If a(j) Mod 2 = 0 Then
 Tmp = a(NN)
 a(NN) = a(j)
 NN = NN + 1
  a(NN) = Tmp
  j = NN
 End If
 Next j
 
prompt = ""
For k = 1 To UBound(a)
prompt = prompt & a(NN) & Chr(13)
MsgBox prompt
Next k
End Sub
Но выводит что-то явно не то...
xrenomx вне форума Ответить с цитированием
Старый 14.06.2012, 23:36   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Писал в блокноте и не проверил.Теперь работает правильно
Код:
   Dim i%, n%, a%(), Tmp%
        n = InputBox("Vvedite razmernost' massiva")
        ReDim a(1 To n)
        For i = 1 To n
                a(i) = InputBox(" A(" & i & ") =")
        Next i
        NN = n
        For j = 1 To n
                For m = 1 To n - 1
                        If a(m) Mod 2 = 1 Then
                                Tmp = a(m)
                                a(m) = a(j)
                                a(j) = Tmp
                        End If
                Next
        Next
        s = ""
        For j = 1 To n
                s = s & a(j) & vbCrLf
        Next
        MsgBox s
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перестановка элементов массива eduard93 Помощь студентам 3 15.12.2011 18:52
перестановка элементов массива Darknes Общие вопросы C/C++ 1 03.10.2010 19:21
перестановка элементов массива. DiLemma Помощь студентам 2 29.04.2010 23:08
перестановка эл. одномерного массива quartzz Общие вопросы C/C++ 19 28.06.2009 17:28