- Tham gia
- 17/8/08
- Bài viết
- 8,662
- Được thích
- 16,725
- Giới tính
- Nam
Tôi có 2 mảng chuỗi (có thể là chuỗi số, có thể là chuỗi), một mảng chứa phần tử bị hủy và một mảng chứa các phần tử hủy.
Phần tử trong mảng hủy phải tồn tại trong mảng bị hủy, dù sắp xếp không trật tự, dù có trùng nhau và mỗi một phần tử hủy chỉ hủy đúng 1 phần tử ở mảng bị hủy.
Nhằm tiết kiệm số lần lặp của 2 mảng tôi dùng GoTo để "đi tắt".
Code như thế này:
Dĩ nhiên 2 mảng trên chỉ là tượng trưng, thực tế nó đồ sộ hơn rất nhiều nhiều lần.
Vậy nếu không dùng GOTO, ta có thể tiết kiệm được số lần lặp ở vòng lặp For j hay không? Tôi nghĩ mãi mà chưa ra, chắc đầu óc bị mụ rồi!
Nhờ các bạn hướng dẫn dùm ạ.
Cám ơn rất nhiều!
----------------------------------------
P/s: Xin vui lòng đừng hướng dẫn tôi dùng Dictionary nhé, vì dữ liệu còn lại có trùng, còn Dic. thì không trùng, vã lại tôi cũng đang cố gắng tìm hướng khác mà không dùng Dic.
Phần tử trong mảng hủy phải tồn tại trong mảng bị hủy, dù sắp xếp không trật tự, dù có trùng nhau và mỗi một phần tử hủy chỉ hủy đúng 1 phần tử ở mảng bị hủy.
Nhằm tiết kiệm số lần lặp của 2 mảng tôi dùng GoTo để "đi tắt".
Code như thế này:
Mã:
Option Explicit
Sub XulyChuoi()
Dim ArrChuoiHuy(), ArrChuoiBiHuy(), ArrConLai()
Dim i As Long, j As Long, n As Long, uHuy As Long, uBiHuy As Long
ArrChuoiHuy = Array(2, 4, 9, 3, 1, 6, 8, 10, 3)
ArrChuoiBiHuy = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3, 13, 14, 15, 16, 17, 18, 19, 20)
uHuy = UBound(ArrChuoiHuy): uBiHuy = UBound(ArrChuoiBiHuy)
For i = 0 To uHuy
For j = 0 To uBiHuy
If ArrChuoiHuy(i) = ArrChuoiBiHuy(j) Then
ArrChuoiBiHuy(j) = ""
[COLOR=#ff0000][B] GoTo Next_i[/B][/COLOR]
End If
Next
[COLOR=#ff0000][B]Next_i:[/B][/COLOR]
Next
For i = 0 To uBiHuy
If ArrChuoiBiHuy(i) > "" Then
ReDim Preserve ArrConLai(0 To n)
ArrConLai(n) = ArrChuoiBiHuy(i)
n = n + 1
End If
Next
MsgBox Join(ArrConLai, ",")
End Sub
Dĩ nhiên 2 mảng trên chỉ là tượng trưng, thực tế nó đồ sộ hơn rất nhiều nhiều lần.
Vậy nếu không dùng GOTO, ta có thể tiết kiệm được số lần lặp ở vòng lặp For j hay không? Tôi nghĩ mãi mà chưa ra, chắc đầu óc bị mụ rồi!
Nhờ các bạn hướng dẫn dùm ạ.
Cám ơn rất nhiều!
----------------------------------------
P/s: Xin vui lòng đừng hướng dẫn tôi dùng Dictionary nhé, vì dữ liệu còn lại có trùng, còn Dic. thì không trùng, vã lại tôi cũng đang cố gắng tìm hướng khác mà không dùng Dic.
Lần chỉnh sửa cuối: