Học Dictionary qua các ví dụ đơn giản!

Liên hệ QC

chuot0106

Thành viên gắn bó
Tham gia
20/1/13
Bài viết
2,567
Được thích
1,670
Thực sự thì mình cũng chưa biết tên topic như vậy có hợp lí không(Nếu chưa hợp lí mong BQT sửa giúp), mình nêu mục đích của topic này luôn.
Bởi vì trên GPE đã có topic về vấn đề này rồi tuy nhiên các topic đó cũng chưa đi sâu lắm về "Dic" bản thân mình rất khó tiếp thu(cá nhân mình thôi). bởi vậy mình xin phép BQT được lập Topic mới này giành cho những người mới chập chững nghiên cứu về "Dic" như mình với mục đích chính như sau:
+ Mong các bạn có kinh nghiệm về "Dic" vào chia sẻ kinh nghiệm của bả n thân về việc học "Dic".
+ Các bạn có kinh nghiệm về "Dic" đưa ra các bài tập từ cơ bản đến đến nâng cao để các thành viên mới thực hành.
+ Các thành viên mới có thể đưa ra các câu hỏi cũng như bài tập liên quan để các thành viên có kinh nghiệm giúp đỡ.

Tất cả các mục đích này dựa trên tinh thần chia sẻ, giao lưu, học hỏi.
Rất mong nhận được sự chia sẻ của các bạn!
 
Căn bản về cách sử dụng Dic thì cũng không phức tạp lắm, nhưng ứng dụng biến hóa của Dic trong bài toán cụ thể thì phải tùy khả năng thuật toán của từng người viết code. Chẳng hạn câu 2 cũng có thể viết thế này cũng cho ra kết quả
PHP:
Sub abc()
Dim tam(), kq(1 To 10000, 1 To 3)
Dim i As Long, k As Long, n As Long, tong As Double
tam = Range([A2], [A65536].End(3)).Resize(, 5).Value
With CreateObject("scripting.dictionary")
    For i = 1 To UBound(tam)
        If Not .Exists(tam(i, 1)) Then
            k = k + 1
            .Add tam(i, 1), k
        End If
    Next
    For i = 1 To UBound(tam)
        tong = tam(i, 3) + tam(i, 4) + tam(i, 5)
        If .Exists(tam(i, 1)) Then
            n = .Item(tam(i, 1))
            kq(n, 1) = tam(i, 1)
            kq(n, 2) = tam(i, 2)
            kq(n, 3) = kq(n, 3) + tong
        End If
    Next
End With
[L2].Resize(k, 3) = kq
End Sub
 
Upvote 0
Căn bản về cách sử dụng Dic thì cũng không phức tạp lắm, nhưng ứng dụng biến hóa của Dic trong bài toán cụ thể thì phải tùy khả năng thuật toán của từng người viết code. Chẳng hạn câu 2 cũng có thể viết thế này cũng cho ra kết quả
PHP:
Sub abc()
Dim tam(), kq(1 To 10000, 1 To 3)
Dim i As Long, k As Long, n As Long, tong As Double
tam = Range([A2], [A65536].End(3)).Resize(, 5).Value
With CreateObject("scripting.dictionary")
    For i = 1 To UBound(tam)
        If Not .Exists(tam(i, 1)) Then
           ...
        End If
    Next
    For i = 1 To UBound(tam)
        ...
        If .Exists(tam(i, 1)) Then
        ...
    Next

End Sub
Code của quanghai chạy 2 vòng lặp y hệt nhau về số lần lặp và 1 cái If (điều kiện chỉ khác 1 chữ not)
Sao không gộp vào 1 vòng lặp với 1 cái Else?
Mà nếu đã có vòng lặp 1, thì tất cả đều đã exist, đâu cần điều kiện if exist trong vòng lặp 2?
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu bạn đã nắm được cách dùng ( thuộc tính, phương thức ) của Dictionary ,mình thứ đặt ra 3 yêu cầu , bạn làm thử coi :
** Ví dụ 1 :

Vẫn dữ liệu như bài tập 2 đã gửi , yêu cầu :
* thống kê xem có bao nhiêu người tên A trong cột A1: A10 ( đưa kết quả ra hộp thoại msgbox )
** Thống kê những người có cùng Họ và tên + địa chỉ trùng nhau ,và tính tổng số lượng trong 3 ngày : ( đưa toàn bộ kết quả này vào vùng [G:J]
*** Sắp xếp kết quả của yêu cầu ** theo : Tên hoặc theo tổng số lượng giảm dần !

!

- Học mãi cách viết code của thầy Ba Tê mà chưa thạo bởi thời gian và khả năng của mình cũng còn hạn chế!.
- Cũng xin được tham gia bài này mong mọi người chỉ bảo thêm!.
Mã:
 Public Sub Cauhoi2_Dic()Dim Dic As Object, sArr(), dArr(), I As Long, j As Long, K As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A2:E10").Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & sArr(I, 2)
    If Not Dic.Exists(Tem) Then
        K = K + 1
        Dic.Add Tem, K
        dArr(K, 1) = sArr(I, 1)
        dArr(K, 2) = sArr(I, 2)
        For j = 3 To 5
            dArr(K, 3) = sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
        Next j
    Else
        dArr(Dic.Item(Tem), 3) = dArr(Dic.Item(Tem), 3) + sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
    End If
Next I
[A15].Resize(K, 3) = dArr
Set Dic = Nothing
End Sub
 

File đính kèm

  • Lamcauhoi2_Dic.rar
    11.6 KB · Đọc: 17
Lần chỉnh sửa cuối:
Upvote 0
- Học mãi cách viết code của thầy Ba Tê mà chưa thạo bởi thời gian và khả năng của mình cũng còn hạn chế!.
- Cũng xin được tham gia bài này mong mọi người chỉ bảo thêm!.
Mã:
 Public Sub Cauhoi2_Dic()Dim Dic As Object, sArr(), dArr(), I As Long, j As Long, K As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A2:E10").Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & sArr(I, 2)
    If Not Dic.Exists(Tem) Then
        K = K + 1
        Dic.Add Tem, K
        dArr(K, 1) = sArr(I, 1)
        dArr(K, 2) = sArr(I, 2)
        [COLOR=#ff0000]For j = 3 To 5
            dArr(K, 3) = sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
        Next j[/COLOR]
    Else
        dArr(Dic.Item(Tem), 3) = dArr(Dic.Item(Tem), 3) + sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
    End If
Next I
[A15].Resize(K, 3) = dArr
Set Dic = Nothing
End Sub

Chỗ đỏ đỏ là gì vậy? Thao tác hoàn toàn không phụ thuộc vào J có nghĩa là cũng 1 chỗ xyz đóng đinh 3 lần?
Hoặc
Mã:
dArr(K, 3) = sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
hoặc "khổ hơn tí"
Mã:
        For j = 3 To 5
            dArr(K, 3) = dArr(K, 3) + sArr(I, j)
        Next j
Ngoài ra nếu dữ liệu có dòng trống thì kết quả chứa dòng trống - thừa. Đây là trong vd. này. Đã từng có code không lường dòng trống nên code "tiếp theo" bị sai.
Vậy phải là
Mã:
If Tem <> "" Then
    If Not Dic.Exists(Tem) Then
        ...
    Else
        ...
    End If
End If
 
Upvote 0
Chỗ đỏ đỏ là gì vậy? Thao tác hoàn toàn không phụ thuộc vào J có nghĩa là cũng 1 chỗ xyz đóng đinh 3 lần?
Hoặc
Mã:
dArr(K, 3) = sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
hoặc "khổ hơn tí"
Mã:
        For j = 3 To 5
            dArr(K, 3) = dArr(K, 3) + sArr(I, j)
        Next j
Ngoài ra nếu dữ liệu có dòng trống thì kết quả chứa dòng trống - thừa. Đây là trong vd. này. Đã từng có code không lường dòng trống nên code "tiếp theo" bị sai.
Vậy phải là
Mã:
If Tem <> "" Then
    If Not Dic.Exists(Tem) Then
        ...
    Else
        ...
    End If
End If
- Cảm ơn Bác siwtom đã chỉ ra cho em những lỗi sai và thêm trường hợp dữ liệu có dòng trống thì kết quả chứa dòng trống - Thừa. Em đã sửa lại Các Bác xem giúp em ạ!.
Mã:
Public Sub Cauhoi2_Dic()
Dim Dic As Object, sArr(), dArr(), I As Long, j As Long, K As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A2:E10").Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1) & sArr(I, 2)
    If Tem <> "" Then
        If Not Dic.Exists(Tem) Then
            K = K + 1
            Dic.Add Tem, K
            dArr(K, 1) = sArr(I, 1)
            dArr(K, 2) = sArr(I, 2)
            For j = 3 To 5
                dArr(K, 3) = dArr(K, 3) + sArr(I, j)
            Next j
        Else
            dArr(Dic.Item(Tem), 3) = dArr(Dic.Item(Tem), 3) + sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
       End If
    End If
Next I
[A15].Resize(K, 3) = dArr
Set Dic = Nothing
[B]End Sub

[/B]
- Vào GPE tìm hiểu bấy lâu nay, đây là code đầu tiên mà em tham gia!.
 
Upvote 0
Căn bản về cách sử dụng Dic thì cũng không phức tạp lắm, nhưng ứng dụng biến hóa của Dic trong bài toán cụ thể thì phải tùy khả năng thuật toán của từng người viết code. Chẳng hạn câu 2 cũng có thể viết thế này cũng cho ra kết quả
Sub abc()
Dim tam(), kq(1 To 10000, 1 To 3)
Dim i As Long, k As Long, n As Long, tong As Double
tam = Range([A2], [A65536].End(3)).Resize(, 5).Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(tam)
If Not .Exists(tam(i, 1)) Then
k = k + 1
.Add tam(i, 1), k
End If
Next
For i = 1 To UBound(tam)
tong = tam(i, 3) + tam(i, 4) + tam(i, 5)
If .Exists(tam(i, 1)) Then
n = .Item(tam(i, 1))
kq(n, 1) = tam(i, 1)
kq(n, 2) = tam(i, 2)
kq(n, 3) = kq(n, 3) + tong
End If
Next
End With
[L2].Resize(k, 3) = kq
End Sub
Em đọc nhiều bài giải về "Dic" có sử dụng đoạn màu đỏ như ở đoạn code trên, em chưa hiểu ý nghĩa của nó lắm. Rất mong được các thầy và các bạn cho biết ý nghĩa của nó. Nếu có thể giải thích giúp em ý nghĩa của nó trong đoạn code trên của anh QuangHai ạ. Em cảm ơn!
 
Upvote 0
Em có đọc về thuộc tính Item trong topic "Tổng quan về Scripting..." của tác giả Kyo nhưng em chưa hiểu về thuộc tính Item lắm, mong anh chị và các bạn giải thích và có thể cho ví dụ minh họa thì càng tốt, ví dụ đơn giản thôi ạ!
- Thuộc tính Item: Thuộc tính Item giúp truy xuất hoặc thiết lập giá trị cho một Key nào đó.
PHP Code:
With MyDictionary
.Item("SomeKey") = "gpe"
MsgBox "Giá trị của SomeKey là " & .Item("SomeKey")
End With


Nếu bạn sử dụng thuộc tính Item để đưa một item vào một Key không tồn tại, Dictionary sẽ thêm mới Key không tồn tại đó, đồng thời cũng thêm item vào Key đó luôn. Cũng vậy, nếu bạn truy xuất một item qua một Key không tồn tại, Dictionary sẽ thêm một item rỗng vào chính Key đó. Do đó, sử dụng thuộc tính Item với một Key không tồn tại sẽ không gây ra lỗi.
 
Upvote 0
Em có đọc về thuộc tính Item trong topic "Tổng quan về Scripting..." của tác giả Kyo nhưng em chưa hiểu về thuộc tính Item lắm, mong anh chị và các bạn giải thích và có thể cho ví dụ minh họa thì càng tốt, ví dụ đơn giản thôi ạ!

Mã:
Sub DicItemTest()
    Dim Dic, c As Byte
    Set Dic = CreateObject("Scripting.Dictionary")
    
[COLOR=#008000]    ''Add cho Dic:[/COLOR]
[COLOR=#008000]    ''Voi Key la "Hoang Trong Nghia c" (khong trung)[/COLOR]
[COLOR=#008000]    ''Voi Item la c (trung hay khong van OK)[/COLOR]
    
    For c = 1 To 10
[SIZE=4][B][COLOR=#0000ff]        Dic.Add [/COLOR][COLOR=#800080]"Hoang Trong Nghia " & c[/COLOR][COLOR=#0000ff], [/COLOR][COLOR=#ff0000]c[/COLOR][/B][/SIZE]
    Next
    
[COLOR=#008000]    ''De tra Item cua Key[/COLOR]
[COLOR=#008000]    ''ta lay 1 Key cua no de truy xuat[/COLOR]
[B]    MsgBox Dic.Item([COLOR=#800080]"Hoang Trong Nghia 3"[/COLOR])[/B]
End Sub

Xem ví dụ này là bạn hiểu được tính chất của nó.
 
Upvote 0
Mã:
Sub DicItemTest()
    Dim Dic, c As Byte
    Set Dic = CreateObject("Scripting.Dictionary")
    
[COLOR=#008000]    ''Add cho Dic:[/COLOR]
[COLOR=#008000]    ''Voi Key la "Hoang Trong Nghia c" (khong trung)[/COLOR]
[COLOR=#008000]    ''Voi Item la c (trung hay khong van OK)[/COLOR]
    
    For c = 1 To 10
[SIZE=4][B][COLOR=#0000ff]        Dic.Add [/COLOR][COLOR=#800080]"Hoang Trong Nghia " & c[/COLOR][COLOR=#0000ff], [/COLOR][COLOR=#ff0000]c[/COLOR][/B][/SIZE]
    Next
    
[COLOR=#008000]    ''De tra Item cua Key[/COLOR]
[COLOR=#008000]    ''ta lay 1 Key cua no de truy xuat[/COLOR]
[B]    MsgBox Dic.Item([COLOR=#800080]"Hoang Trong Nghia 3"[/COLOR])[/B]
End Sub

Xem ví dụ này là bạn hiểu được tính chất của nó.
Những ví dụ thế này rất dễ hiểu đúng là phù hợp với những người mới tiếp cận như em, cảm ơn anh Nghĩa.
 
Upvote 0
Em có đọc về thuộc tính Item trong topic "Tổng quan về Scripting..." của tác giả Kyo nhưng em chưa hiểu về thuộc tính Item lắm, mong anh chị và các bạn giải thích và có thể cho ví dụ minh họa thì càng tốt, ví dụ đơn giản thôi ạ!
Có thể coi Dic như một bảng 2 cột. Cột thứ nhất chứa các key, các key trong cột này không trùng nhau, tương tự như cột số thứ tự nhưng key có thể dạng chuỗi, dạng số... Ứng với mỗi key ở cột 1 có 1 item ở cột 2. Thuộc tính .Item(kkk) lấy giá trị của item ứng với key là kkk. Có thể gán keys hoặc items vào mảng để dễ truy xuất hoặc dùng vòng lặp
For each kkk in dic
Msgbox "Giá trị item " & kkk & " là " & dic.item(kkk)
Next
 
Upvote 0
Mong anh chị tiếp tục giải thích cho em thuộc tính Key với ạ, cũng qua các ví dụ đơn giản luôn cho dễ hiểu ạ! Em cảm ơn!
- Thuộc tính Key: Thuộc tính Key được dùng để thay đổi giá trị của một Key có sẵn. Tuy nhiên, giá trị Key mới phải là giá trị duy nhất trong Dictionary cũng như giá trị Key mà bạn muốn thay đổi cũng phải tồn tại trong Dictionary. Nếu một trong hai điều kiện trên không đúng, chắc chắn lỗi sẽ xảy ra.
PHP Code:
MyDictionary.Key("SomeKey") = "SomeOtherKey"

 
Upvote 0
Em đọc nhiều bài giải về "Dic" có sử dụng đoạn màu đỏ như ở đoạn code trên, em chưa hiểu ý nghĩa của nó lắm. Rất mong được các thầy và các bạn cho biết ý nghĩa của nó. Nếu có thể giải thích giúp em ý nghĩa của nó trong đoạn code trên của anh QuangHai ạ. Em cảm ơn!
Sub abc()
Dim tam(), kq(1 To 10000, 1 To 3)
Dim i As Long, k As Long, n As Long, tong As Double
tam = Range([A2], [A65536].End(3)).Resize(, 5).Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(tam)
If Not .Exists(tam(i, 1)) Then
k = k + 1
.Add tam(i, 1), k
End If
Next
For i = 1 To UBound(tam)
tong = tam(i, 3) + tam(i, 4) + tam(i, 5)
If .Exists(tam(i, 1)) Then
n = .Item(tam(i, 1))
kq(n, 1) = tam(i, 1)
kq(n, 2) = tam(i, 2)
kq(n, 3) = kq(n, 3) + tong
End If
Next
End With
[L2].Resize(k, 3) = kq
End Sub
Quay lại bài này thì chỗ đỏ đỏ chính là tìm vị trí thứ n của khóa tam(i,1) đúng không các bạn?
 
Upvote 0
Mong anh chị tiếp tục giải thích cho em thuộc tính Key với ạ, cũng qua các ví dụ đơn giản luôn cho dễ hiểu ạ! Em cảm ơn!

Bạn phải thí nghiệm thì mới biết vấn đề chứ những thứ lặt vặt như thế mà hỏi thì cũng không hay lắm!

Mã:
Sub DicKeyTest()
    Dim Dic
    Set Dic = CreateObject("Scripting.Dictionary")
    
[COLOR=#008000]    ''Add cho Dic:
    ''Voi Key la "Key: Hoang Trong Nghia" (khong trung)
    ''Voi Item la "Item: gi cung duoc" (trung hay khong van OK)[/COLOR]
    
    Dic.Add "Key: Hoang Trong Nghia", "Item: gi cung duoc"
    
[COLOR=#008000]    ''De tra Item cua Key
    ''ta lay 1 Key cua no de truy xuat[/COLOR]
    MsgBox Dic.Item("Key: Hoang Trong Nghia")
    
[COLOR=#008000]    ''Thay doi Key:
    ''Voi thay doi nay phai la khong trung trong Dic dang san co:[/COLOR]
    Dic.Key("Key: Hoang Trong Nghia") = "Key: Nghia dep trai"
    
[COLOR=#008000]    ''Luc nay Key khong con ton tai "Key: Hoang Trong Nghia" nua
    ''ma da duoc thay the la "Key: Nghia dep trai":[/COLOR]
    
    MsgBox Dic.Item("Key: Nghia dep trai")
[COLOR=#008000]    ''Ket qua Item van la "Item: gi cung duoc"[/COLOR]
End Sub
 
Upvote 0
Bạn phải thí nghiệm thì mới biết vấn đề chứ những thứ lặt vặt như thế mà hỏi thì cũng không hay lắm!

Mã:
Sub DicKeyTest()
    Dim Dic
    Set Dic = CreateObject("Scripting.Dictionary")
    
[COLOR=#008000]    ''Add cho Dic:
    ''Voi Key la "Key: Hoang Trong Nghia" (khong trung)
    ''Voi Item la "Item: gi cung duoc" (trung hay khong van OK)[/COLOR]
    
    Dic.Add "Key: Hoang Trong Nghia", "Item: gi cung duoc"
    
[COLOR=#008000]    ''De tra Item cua Key
    ''ta lay 1 Key cua no de truy xuat[/COLOR]
    MsgBox Dic.Item("Key: Hoang Trong Nghia")
    
[COLOR=#008000]    ''Thay doi Key:
    ''Voi thay doi nay phai la khong trung trong Dic dang san co:[/COLOR]
    Dic.Key("Key: Hoang Trong Nghia") = "Key: Nghia dep trai"
    
[COLOR=#008000]    ''Luc nay Key khong con ton tai "Key: Hoang Trong Nghia" nua
    ''ma da duoc thay the la "Key: Nghia dep trai":[/COLOR]
    
    MsgBox Dic.Item("Key: Nghia dep trai")
[COLOR=#008000]    ''Ket qua Item van la "Item: gi cung duoc"[/COLOR]
End Sub
Thực sự là với những người tìm đã có thời gian tìm hiểu lâu về VBA thì tìm hiểu 1 cái mới rất nhanh, còn thực sự bản thân em thì cũng khó thật, mong anh và các bạn giúp đỡ. Cứ qua các ví dụ đơn giản thế này em học sẽ nhanh hơn. Đó cũng chính là mục đích của Topic mà anh!--=--
 
Upvote 0
Quay lại bài này thì chỗ đỏ đỏ chính là tìm vị trí thứ n của khóa tam(i,1) đúng không các bạn?
Lợi dụng Key (tam(i,1)) là khóa không trùng và Item (k) nên người viết thường truy xuất vị trí của nó (index) để thực hiện ý đồ của mình. Thực chất để làm điều này (truy xuất index) thì người viết phải đảm bảo hệ số k cũng không trùng luôn.

Với câu hỏi của bạn thì đó chính là câu trả lời luôn rồi đó.
 
Upvote 0
Các bạn cho tôi hỏi chút, trong doạn code này tôi có thêm 1 câu lệnh để kiểm tra giá trị của biến n.
Sub abc()
Dim tam(), kq(1 To 10000, 1 To 3)
Dim i As Long, k As Long, n As Long, tong As Double
tam = Range([A2], [A65536].End(3)).Resize(, 5).Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(tam)
If Not .Exists(tam(i, 1)) Then
k = k + 1
.Add tam(i, 1), k
End If
Next
For i = 1 To UBound(tam)
tong = tam(i, 3) + tam(i, 4) + tam(i, 5)
If .Exists(tam(i, 1)) Then
n = .Item(tam(i, 1))
kq(n, 1) = tam(i, 1)
kq(n, 2) = tam(i, 2)
kq(n, 3) = kq(n, 3) + tong
Msgbox n
End If
Next
End With
[L2].Resize(k, 3) = kq
End Sub
và lần lượt nhận được thông báo giá trị của n là: 2; 3; 1; 3
Nhưng em vẫn chưa hiểu lắm tại sao lại có 4 giá trị này. Đã đọc bài của anh nghĩa nhưng vào bài này vẫn còn mơ hồ quá! Mong anh chị giúp đỡ!
 

File đính kèm

  • Cauhoi2_Dic_2.xls
    32.5 KB · Đọc: 14
Lần chỉnh sửa cuối:
Upvote 0
Có thể coi Dic như một bảng 2 cột. Cột thứ nhất chứa các key, các key trong cột này không trùng nhau, tương tự như cột số thứ tự nhưng key có thể dạng chuỗi, dạng số... Ứng với mỗi key ở cột 1 có 1 item ở cột 2. Thuộc tính .Item(kkk) lấy giá trị của item ứng với key là kkk. Có thể gán keys hoặc items vào mảng để dễ truy xuất hoặc dùng vòng lặp
For each kkk in dic
Msgbox "Giá trị item " & kkk & " là " & dic.item(kkk)
Next
Chỗ đỏ đỏ là lấy giá trị của Item hay lấy vị trí dòng của Item ứng với key là kkk ở trong "Dic" ạ?
 
Upvote 0
Thực sự là với những người tìm đã có thời gian tìm hiểu lâu về VBA thì tìm hiểu 1 cái mới rất nhanh, còn thực sự bản thân em thì cũng khó thật, mong anh và các bạn giúp đỡ. Cứ qua các ví dụ đơn giản thế này em học sẽ nhanh hơn. Đó cũng chính là mục đích của Topic mà anh!--=--

Trên đời có một số người có khả năng ngốn tới đâu tiêu hoá đến đó. Nhưng với số đông còn lại thì ngốn nhiều quá một lúc sẽ bị bội thực.

Mục tiêu của bạn ở chỗ nào? muốn học code, học giải thuật hay học cách dùng công cụ Dictionary của Scripting?
 
Upvote 0
Trên đời có một số người có khả năng ngốn tới đâu tiêu hoá đến đó. Nhưng với số đông còn lại thì ngốn nhiều quá một lúc sẽ bị bội thực.

Mục tiêu của bạn ở chỗ nào? muốn học code, học giải thuật hay học cách dùng công cụ Dictionary của Scripting?
Em muốn học cách dùng các công cụ của Dictionary của Scripting mong anh chỉ dạy!
 
Upvote 0
Các bạn cho tôi hỏi chút, trong doạn code này tôi có thêm 1 câu lệnh để kiểm tra giá trị của biến n.

và lần lượt nhận được thông báo giá trị của n là: 2; 3; 1; 3
Nhưng em vẫn chưa hiểu lắm tại sao lại có 4 giá trị này. Đã đọc bài của anh nghĩa nhưng vào bài này vẫn còn mơ hồ quá! Mong anh chị giúp đỡ!
Đã thí nghiệm bằng cách quan sát trên File và đã hiểu được 4 con số kia. Và đã hiểu ý nghĩa của đoạn code đó. Rất vui! Em cảm ơn tất cả các anh chị và các bạn đã tận tình chỉ bảo đặc biệt là anh Nghĩa và ban Hau151978
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom