nhờ các bạn trong diễn đàn chỉ giúp cách duyệt qua các phần tử của mảng 4 chiều

Liên hệ QC

diemhuyenanh

Thành viên hoạt động
Tham gia
6/9/09
Bài viết
163
Được thích
56
giả sử tôi khai báo mảng 4 chiều: Arr(1 to 5, 1 to 3, 1 to 6)
sau đó tôi muốn đưa dữ liệu vào từng phần tử của mạng thì duyệt qua mảng như nào ạ.????
 
giả sử tôi khai báo mảng 4 chiều: Arr(1 to 5, 1 to 3, 1 to 6)
sau đó tôi muốn đưa dữ liệu vào từng phần tử của mạng thì duyệt qua mảng như nào ạ.????
Không khả thi.
1. Bạn đưa cái mảng 3 chiều lên bảo người ta đẻ thêm 1 nữa cho đủ 4 à?
2. Bạn nhắm phần tử của mạng bằng cách duyệt qua mảng thì ít nhất phải biết chỗ liên hệ giữa mạng và mảng của bạn.
 
Upvote 0
vâng tôi viết nhầm ạ.
vì tôi muốn biết kiến thức cách duyệt và add dữ liệu vào mảng 4 chiều này. mảng 2 chiều thì tôi làm được nhưng đối với mảng 3 chiều, 4 chiều thì tôi chưa biết duyệt qua như nào.
Bài đã được tự động gộp:

mảng hai chiều Arr( 1 to 4, 1 to 2) thì dùng 2 vòng lập for lồng nhau
Arr(i,J)= Drr(i,j)
còn mảng 3 hay 4 chiều thì làm như nào?
 
Upvote 0
vâng tôi viết nhầm ạ.
vì tôi muốn biết kiến thức cách duyệt và add dữ liệu vào mảng 4 chiều này. mảng 2 chiều thì tôi làm được nhưng đối với mảng 3 chiều, 4 chiều thì tôi chưa biết duyệt qua như nào.
Bài đã được tự động gộp:

mảng hai chiều Arr( 1 to 4, 1 to 2) thì dùng 2 vòng lập for lồng nhau
Arr(i,J)= Drr(i,j)
còn mảng 3 hay 4 chiều thì làm như nào?
Đây bạn
Mã:
Option Explicit

Sub mang4d_()
Dim nam
Dim thang
Dim ngay
Dim gio

Dim m4d
Dim i, j, k, x, z, t

ReDim m4d(1 To 5, 1 To 12, 1 To 31, 1 To 24)

Sheet1.UsedRange.Clear
For i = 1 To 5
    nam = i
    For j = 1 To 12
        thang = j
        For k = 1 To 31
            ngay = k
            For x = 1 To 24
                gio = x
                
                t = t + 1
                m4d(i, j, k, x) = "nam thu " & nam & "_" & "thang " & thang & "_" & "ngay " & ngay & "_" & "gio " & gio
                
                Sheet1.Range("A" & t) = m4d(i, j, k, x)
            Next x
        Next k
    Next j
Next i

End Sub
 
Upvote 0
...
mảng hai chiều Arr( 1 to 4, 1 to 2) thì dùng 2 vòng lập for lồng nhau
Arr(i,J)= Drr(i,j)
còn mảng 3 hay 4 chiều thì làm như nào?
Chép trực tiếp từ mảng này sang mảng kia thì có 3 cách làm:
Cách 1 và 2 dùng chỉ số phần tử.
Cách 3 dùng toán tử chép cả cụm bên gán sang bên được gán.

Cách 1:
Dùng n vòng lặp for
For i1 = LBound(a,1) To UBound(a,1)
For i2 = LBound(a,2) To UBound(a,2)
For i3 = LBound(a,3) To UBound(a,3)
For i4 = LBound(a,4) To UBound(a,4)
a(i1, i2, i3, i4) = d(i1, i2, i3, i4)
Next i4
Next i3
Next i2
Next i1

Cách 2:
Dùng 1 vòng lặp for.
Để biết chỉ số từng chiều, dùng bài toán tính 1 chiều sang nhiều chiều (vị trí phần tử -> dòng, cột, trang, vở)

Cách 3 thì quên đi, trình độ của bạn còn lâu lắm mới hiểu cách này.
 
Upvote 0
Web KT
Back
Top Bottom