z = z + mass(i, f)
z = z + mass(1, 1)
Private Sub Command1_Click()
Dim mass(2, 2) As Integer, i As Single, f As Single, z As Integer
Cls
z = 0
For i = 0 To 2
For f = 0 To 2
mass(i, f) = Rnd(1) * (z + 1)
List1(i).List(f) = mass(i, f)
Print i, f, Rnd
z = z + mass(1, 1)
Text1.Text = z
Next f, i
End Sub
z = z + mass(1, 1)
Next f, i
на разные строки с разным выравниванием.Видимо тут корень непонимания.и зачем ты 6 раз складываешь одно и то же число само с собой:
Это ошибка видимо, должно было быть integerЗачем тебе i, f - с плавающей точкой?
Почему 6 раз?
Одна и та же ячейка (1,1)For i = 0 To 2 For f = 0 To 2
mass(1, 1)
Чаще всего используют одномерный и двухмерный. Многомерный - это уже объём, графика (объём), 3D и т.д., и даже там нечасто увидишь.Потому что мне нужен многомерный массив
Option Explicit
Private Sub Command1_Click()
'объявляем динамический массив
Dim arr() As Long
Dim y As Long
Dim x As Long
'переопределяем границы массива (нижняя граница будет = 1)
ReDim arr(1 To 3, 1 To 4)
'y1,x1 y1,x2 y1,x3 y1,x4
'y2,x1 y2,x2 y2,x3 y2,x4
'y3,x1 y3,x2 y3,x3 y3,x4
Cls
'идём построчно
For y = LBound(arr, 1) To UBound(arr, 1)
'сперва заполняем всю строку колонки
For x = LBound(arr, 2) To UBound(arr, 2)
arr(y, x) = Int(Rnd * 3) + 1 ' случайное число от 1 до 3
'печатаем на форму (без перевода на новую строку)
Me.Print arr(y, x), ;
Next
'переход на новую строку
Me.Print
Next
'вычисляем сумму по столбцам
Dim sum() As Long
ReDim sum(LBound(arr, 2) To UBound(arr, 2)) As Long
'идём по колонкам
For x = LBound(arr, 2) To UBound(arr, 2)
'считаем сумму по вертикали
sum(x) = 0
For y = LBound(arr, 1) To UBound(arr, 1)
sum(x) = sum(x) + arr(y, x)
Next
Me.Print sum(x), ;
Next
Me.Print
'последняя строка на форме - сумма по колонкам.
End Sub
i (2) f(0) | I(2) f(1) | i(2) f(2) |
I (1) f(0) | i(1) f(1) | i(1) f(2) |
i (0) f(0) | i(0) (f1) | i(0) f(2) |
Вот блин.Потому что это и есть формула суммы
Как обращаться к ячейке? В VB нет такого понятия, как ячейка (это понятие из Excel, ну есть правда, ещё DataGrid). В массиве - это называется "элемент массива".Мне хочется максимально ясно понимать как обращаться к конкретной ячейке, строке или столбце массива.
Код:'y1,x1 y1,x2 y1,x3 y1,x4 'y2,x1 y2,x2 y2,x3 y2,x4 'y3,x1 y3,x2 y3,x3 y3,x4
'вот я перечисляю стобцы от 1-го до 4-го
For X = 1 to 4
Next
'перечисляю "строки" условного массива от 1 до 3:
For Y = 1 to 3
Next
'перечисляю элементы массива построчно, т.е. вот в таком порядке:
'1 2 3 4
'5 6 7 8
'9 10 11 12
For Y = 1 to 3
For X = 1 to 4
Next X
Next Y
'перечисляю элементы массива поколоночно (т.е. я именно так рассчитывал суммы по столбцам), т.е. вот в таком порядке:
'1 4 7 10
'2 5 8 11
'3 6 9 12
For X = 1 to 4
For Y = 1 to 3
Next
Next
Почему это sum(x) = sum(x) + arr(y, x) считает сумму то)))
Это не точка отсчёта и не инициализация.sum(x) = 0 это, видимо, не значение ячейки а точка отсчета?
Поставь точку останова на ней (проставить красную кляксу слева от строки или через F9) и запусти и прокрути цикл пошагово (через F8) и смотри в этот момент в окно локальных переменных (включить через View -> Local Window) и поймёшь как оно считает.Почему это sum(x) = sum(x) + arr(y, x) считает сумму то)))
Private Sub Command1_Click()
Dim box(2, 3) As Integer, x As Integer, y As Integer, z As Integer
'Randomize Timer
Cls
z = 0
For x = 0 To 1
For y = 0 To 3
box(x, y) = x + 1
z = z + box(x, y)
Text4.Text = z
Print ""
Print ""
Print ""
Print x, y, box(x, y)
Next y, x
End Sub
Addr2 = varptr(arr(0)) + LenB(arr(0))
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?