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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 21:36   #1
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
Вопрос Одномерный массив в VBA

Здравствуйте, просьба помочь в решении следующей задачи:
"Дан массив целых чисел (2n=16), полученных случайным образом в диапазоне [-20;20]. Поменять местами первую и вторую половины массива."

Необходимо, чтобы сам массив был выведен в таблицу Excel (т.е. используются команды Sheets("ЛистN").Select, ЛистN.Cells(i, j).Value = a(i, j), Cells.

Кто разбирается, помогите пожалуйста.
Keeper! вне форума Ответить с цитированием
Старый 20.06.2011, 22:14   #2
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

Что-то такое тебе надо:
Код:
'Случайное число в диапазоне: Int((max - min + 1) * Rnd + min)
'16 значений в массиве
dim massiv() as integer
'Заполняем массив
For i = 0 To 15 Step 1
  massiv(i)=Int(41* Rnd -20)
Next i
dim perem as integer
'Меняем местами
For i = 0 To 7 Step 1
  perem=massiv(i)
  massiv(i)=massiv(i+(massiv.length/2))
  massiv(i+(massiv.length/2))=perem
Next i
'Выводим
Sheets("ЛистN").Select
For i = 0 To 15 Step 1
  ЛистN.Cells(i+1, 2).Value = massiv(i)
Next i
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 20.06.2011, 22:22   #3
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
По умолчанию

massiv(i) = massiv(i + (massiv.Length / 2))

Жалуется на эту строчку.
Keeper! вне форума Ответить с цитированием
Старый 20.06.2011, 22:25   #4
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

попробуй просто massiv(i + число) (в данном случае 8)
каким образом жалуется? что говорит?
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 20.06.2011, 22:29   #5
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
По умолчанию

Пишет:

compile error
invalid qualifier
Keeper! вне форума Ответить с цитированием
Старый 20.06.2011, 22:32   #6
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
По умолчанию

Когда изменил на (i + 8), стало жаловаться на строку massiv(i) = Int(41 * Rnd - 20):

Run-time error ''9'
Subscript out of range
Keeper! вне форума Ответить с цитированием
Старый 20.06.2011, 22:37   #7
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

измени:
dim massiv(16) as integer
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 20.06.2011, 22:41   #8
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
По умолчанию

Получился в итоге такой код:
Код:
Sub Massiv2()
Dim massiv(16) As Integer
'Çàïîëíÿåì ìàññèâ
For i = 0 To 15 Step 1
  massiv(i) = Int(41 * Rnd - 20)
Next i
Dim perem As Integer
'Ìåíÿåì ìåñòàìè
For i = 0 To 7 Step 1
  perem = massiv(i)
  massiv(i) = massiv(i + 8)
  massiv(i + 8) = perem
Next i
'Âûâîäèì
Sheets("Ëèñò9").Select
For i = 0 To 15 Step 1
  Ëèñò9.Cells(i + 1, 2).Value = massiv(i)
Next i
End Sub
В итоге на лист вывело следующее:
-16
20
7
-20
3
-16
-16
12
4
20
17
-11
8
20
-10
1

Несостыковка(
Keeper! вне форума Ответить с цитированием
Старый 20.06.2011, 22:45   #9
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

Цитата:
Несостыковка(
В смысле? что тебя не устраивает?
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 20.06.2011, 22:48   #10
Keeper!
Пользователь
 
Регистрация: 30.05.2011
Сообщений: 15
По умолчанию

Можно как-нибудь добавить массив до замены?
А то тут мы вывели заменённый уже, как я понял.
Просто требуется увидеть эту самую замену: что было до и стало после.
Keeper! вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный и одномерный массив(в VBA) Артем8 Помощь студентам 0 11.06.2010 12:34
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Одномерный массив в VBA Nataly1992 Помощь студентам 18 20.12.2009 20:35
Одномерный массив вещественных чисел в VBA Катарина Питерская Microsoft Office Excel 1 13.11.2009 13:23
VBA. Одномерный массив ExMatiss Microsoft Office Excel 9 07.05.2008 05:57