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

Присвоение значений многомерному массиву

24.02.2016, 13:07. Показов 3925. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Подскажите пожалуйста, как организовать присвоение многомерному массиву значений.
Для одномерного массива можно сделать так:
Visual Basic
1
2
Dim PodFindingText
PodFindingText = Array("PodNameI", "PodNameR", "PodNameT", "PodRankR", "PodRankT", "PodUnit")
но если для многомерного массива использовать подобную конструкцию, то выходит ошибка:
Visual Basic
1
2
Dim PodFindingText
PodFindingText [B](0)[/B] = Array("PodNameI", "PodNameR", "PodNameT", "PodRankR", "PodRankT", "PodUnit")
Можно ли как-нибудь, подобным образом, заполнять сразу одно измерение многомерного массива?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2016, 13:07
Ответы с готовыми решениями:

Присвоение значений двумерному массиву
Столкнулся с такой незадачей: при попытке заполнить двумерный массив значениями (константами)...

Присвоение значений переменным
В комбобокс на форме выводятся значения из столбца B. Private Sub UserForm_Initialize() i = 3 ...

Разбивка строки и присвоение значений
Прошу помощи в разбивке строки и присвоения значений. Имеется файл, в нем 4 колонки. Если в...

Присвоение порядковых номеров в порядке возрастания значений
Доброго всем времени дня. Поможите написать код для присвоения порядковых номеров в порядке...

6
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
24.02.2016, 21:59 2
Цитата Сообщение от a13428711 Посмотреть сообщение
Можно ли как-нибудь, подобным образом, заполнять сразу одно измерение многомерного массива?
Многомерного массива в истинном значении этого слова - нет. Но можно создать структуру "массив массивов", с которым такой метод прокатит:
Visual Basic
1
2
3
4
5
Dim PodFindingText(0 To 2)
  PodFindingText(0) = Array("PodNameI", "PodNameR", "PodNameT", "PodRankR", "PodRankT", "PodUnit")
  PodFindingText(1) = Array("мама", "мыла", "раму")
  'PodFindingText(2)=...
  MsgBox PodFindingText(1)(1) 'мыла
Обращаться к элементу этой структуры надо PodFindingText(i)(j) . Внутренние массивы могут быть разного размера, разного типа.
1
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
24.02.2016, 23:08 3
Если обернуть в функцию,то можно будет обращаться к массиву "по-человечески"
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Command1_Click()
 
    MsgBox MyArr(1, 1) 'мыла
    
End Sub
 
Private Function MyArr(i, j)
    Dim s(1)
    s(0) = Array("PodNameI", "PodNameR", "PodNameT", "PodRankR", "PodRankT", "PodUnit")
    s(1) = Array("мама", "мыла", "раму")
    MyArr = s(i)(j)
End Function
1
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
25.02.2016, 04:12 4
Обычное заполнение (случайными буквами) в цикле: Написать блок-схему для такой задачи :"Найти элемент матрицы(или одномерного массива) с наименьшим индексом"

Но можно, как уже сказал SoftIce, заполнить заданными значениями: Вычислить сумму L положительных элементов квадратной матрицы
0
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 264
25.02.2016, 08:12  [ТС] 5
Цитата Сообщение от Казанский Посмотреть сообщение
Dim PodFindingText(0 To 2)
* PodFindingText(0) = Array("PodNameI", "PodNameR", "PodNameT", "PodRankR", "PodRankT", "PodUnit")
Забыл сказать, массив у меня объявляется в Declaration как Public. Там вроде границы задавать не получается, а без них схема выдает ошибку.

Добавлено через 7 минут
Цитата Сообщение от SoftIce Посмотреть сообщение
Если обернуть в функцию,то можно будет обращаться к массиву "по-человечески"
А если этот массив является аргументом функции? Получается аргументом функции будет другая функция. Допустимо ли такое?
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.02.2016, 08:43 6
Цитата Сообщение от a13428711 Посмотреть сообщение
Допустимо ли такое?
Нет.
Цитата Сообщение от a13428711 Посмотреть сообщение
Там вроде границы задавать не получается, а без них схема выдает ошибку.
Можно пример кода?
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
25.02.2016, 23:21 7
Пример, как задать только 1-й столбец: Сформировать матрицу размера M × N, у которой первый столбец совпадает с исходным набором чисел (от vlaste) или только диагонали: Найти произведение элементов главной диагонали и сумму элементов побочной диагонали (тема FoodIsGood).

Excel же позволяет сформировать массив прямо из диапазона (скажем, CurrentRegion) таблицы: Заполнить матрицу числами по определенному правилу (пост: Апострофф, код: 101).

Иногда достаточно этот диапазон просто чем-то заполнить (как в проекте Квадратура): Преобразование матрицы 6х3 в две квадратные матрицы 3х3 (тема AHDREY33), а то и просто выделить (как в проекте Апертура.xls с подачи нашего немногословного zargar’а)!
0
25.02.2016, 23:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2016, 23:21
Помогаю со студенческими работами здесь

Присвоение значений двумерному массиву
Есть текстовый файл, в нем поле для игры 12х12. Читаю нужные строки File.ReadAllLines, создаю...

Присвоение значений всему массиву
Друзья, подскажите, пожалуйста. Есть в Delphi оператор или команда, с помощью которой можно...

Присвоение массиву значений stringgrid
Не могу присвоить, выдает ошибку, подскажите , что исправитьprocedure TForm1.Button2Click(Sender:...

Присвоение значений массиву: Subscripted value is neither array nor pointer nor vector
Есть 2 массива: int **tmp3; tmp3 = ( int **) malloc(sizeof(int*)*n); for (i=0; i<n;...


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

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