QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

Thư viện các hàm tự lập bằng VB

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Ðề: Thư viện các hàm tự lập bằng VB

    Nguyên văn bởi tien2005
    Các bác cho em hỏi sử dụng hàm Redim như thế nào?
    Có thể khai báo giatri=redim(i,j,k)
    sau đó tìm giá trị k nào đó thì ta cũng tìm được giá trị i, j tương ứng
    vd: i là phần tử, j là vị trí mặt cắt, k là giá trị moment
    Cám ơn các Bác
    Bác có thể dùng đối tượng thùng chứa của VB (Collection) Trong đó nhồi gì vào chẳng được...
    Như của bác thì bác nên tạo ra một đối tượng có các thuộc tính tương ứng là i,j,k...
    Rồi nhồi nó vào cái collection vừa tạo ra đấy.
    (Collection : là mảng để chứa đối tượng bất kỳ Bác nên tìm hiểu cách sd nó vì nó rất hữu dụng. Chứ không cần thiết phải dùng redim đâu)

    Ghi chú


    • #17
      Ðề: Thư viện các hàm tự lập bằng VB

      Nguyên văn bởi PMXD
      Xin chào mọi người!
      Lâu nay tôi cũng chẳng lập thêm được hàm nào hay ho cả, các hàm thông thường có POST lên chắc cũng không hiệu quả. Để góp vui thêm cho Box, tôi thảo luận với anh em về 1 thuật toán mà trước đây tôi thu thập được.
      '========
      Đề bài: Cho một tập hợp N(gồm n phần tử),. Hãy tìm trong tập hợp N phần tử thỏa mãn tính chất A.
      '========
      Khi đọc đề bài này, chắc ai cũng nghĩ ngay đến thuật toán "VÉT CẠN", đó là dùng vòng For chạy từ đầu đến cuối tập hợp để tìm ra phần tử có thuộc tính A. Tuy nhiên, nếu số lượng phần tử rất rất nhiều thì vòng lặp này sẽ chạy rất lâu (Đặc biệt khi dùng ngôn ngữ VB) vì số phép tính là n!.
      '========
      Thuật toán "CHIA ĐÔI" (tôi quên tên chính xác rồi, cứ tạm gọi như vậy):Chia đôi tập hợp ban đầu thành 2 tập hợp con N1 và N2. Dùng 1 vòng lặp For chạy trong tập hợp N1. Nếu gặp phần tử thỏa mãn thuộc tính A thì kết thúc lặp, nếu chạy hết mà không gặp phần tử đó thì xét đến tập con N2. Trong tập con N2 lại chia thành 2 tập con N21 và N22 và làm tương tự.
      Cứ như vậy thì số lượng phép toán sẽ giảm đi rất nhiều, tăng tốc độ chạy chương trình.
      Nếu bạn nào dùng Delphi hoặc C++ chắc cũng chẳng cần để ý đến thuật toán này, nhưng tôi làm VB, nếu cứ "VÉT CẠN" nhiều khi chạy toàn "TREO MÁY"
      Các bạn xem có gì đóng góp ý kiến
      Theo tôi bác có thể dùng hàm Find để giải quyết công việc này sẽ tốt hơn vòng For (kinh nghiệm này có được khi tôi viết chương trình tính dự toán)

      Ghi chú


      • #18
        Ðề: Thư viện các hàm tự lập bằng VB

        Cám ơn bác Cuong gt41, tôi sẽ tìm hiểu thêm đối tượng Collection

        Ghi chú


        • #19
          Ðề: Thư viện các hàm tự lập bằng VB

          'Tim cac cap noi luc tuong ung!
          'Mai Khoa Nam -STU
          '1-xuat bieu do bao vat lieu sang Excel(ko xuat cac TH to hop) de lay cac gia tri min,mac
          '2--xuat cac truong hop to hop sang Excel (ko xuat bieu do bao vat lieu)
          '3-Tu cac gia tri min mac di tim cac gia tri noi luc tuong ung co trong cac TH to hop thong qua ham tim kiem nay
          'chuc cac ban thanh cong
          Public Function timMtuongung(khoangP, khoangM3 As Range, Gt As Double)
          Dim i As Integer
          i = 0
          Do While i < khoangP.Cells.Count
          i = i + 1
          If khoangP(i) = Gt Then
          timMtuongung = khoangM3(i)
          Exit Do
          End If
          If khoangP(i + 1) = Gt Then
          timMtuongung = khoangM3(i + 1)
          Exit Do
          End If
          Loop
          End Function
          Public Function timNtuongung(khoangM3, khoangP As Range, Gt As Double)
          Dim i As Integer
          i = 0
          Do While i < khoangM3.Cells.Count
          i = i + 1
          If khoangM3(i) = Gt Then
          timNtuongung = khoangP(i)
          Exit Do
          End If
          If khoangM3(i + 1) = Gt Then
          timNtuongung = khoangP(i + 1)
          Exit Do
          End If
          Loop
          End Function
          Last edited by maikhoanam; 11-06-2006, 07:54 PM.

          Ghi chú


          • #20
            Ðề: Thư viện các hàm tự lập bằng VB

            Nguyên văn bởi tien2005
            Các bác cho em hỏi sử dụng hàm Redim như thế nào?
            Có thể khai báo giatri=redim(i,j,k)
            sau đó tìm giá trị k nào đó thì ta cũng tìm được giá trị i, j tương ứng
            vd: i là phần tử, j là vị trí mặt cắt, k là giá trị moment
            Cám ơn các Bác
            Hàm Redim dùng để cấp phát vùng nhớ cho các mảng động, ví dụn như sau:
            Dim a() as Double 'Khai báo mảng động a() kiểu số thực

            Redim a(1 to 100) 'cap phat vung nho 100 phan tu cho mang a()
            Sao tu nhien khong viet tieng Viet duoc vay ta ?

            Ghi chú


            • #21
              Ðề: Thư viện các hàm tự lập bằng VB

              Nếu dùng Redim Preserve Mang(0 to k) thì sẽ giữ lại được các giá trị mà mình đã Redim trước đó, nếu không nó sẽ xóa hết các giá trị cũ.
              Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
              Email : cncc.jsc@gmail.com

              Ghi chú


              • #22
                Ðề: Thư viện các hàm tự lập bằng VB

                Tôi cũng xin nói thêm về collection. Có thể coi là một danh sách liên kết các "objects".
                Khi ta lập trình với Pascal thì ta trật vật tạo danh sách liên kết. Nhưng collection bao gồm toàn bộ dữ liệu và toàn bộ các object tồn tại. Cơ chế tìm kiếm và cơ chế thêm bớt rất tiện lợi.
                Thời kỳ tôi làm đồ án tốt nghiệp, Nhờ một anh thế hệ trước chỉ bảo tôi. Mà tôi đã đơn giản được hàng đống code. Mà nhìn vào nó đã tôi phát ớn. Code được trình bày đơn giản rễ hiểu. Các anh em chỉ cần bật help của Vb hay VBA (Excel, AutoCAD, Word) với từ khóa collection.

                Chúc anh em thành công.

                Ghi chú


                • #23
                  Ðề: Thư viện các hàm tự lập bằng VB

                  Tôi đang gặp vấn đề rất khó khăn. Mong cả nhà chỉ bảo. Tôi đang thực hiện một tool để kiểm xoát dữ liệu trong CAD bằng VBA.
                  Được mô tả như sau:
                  - Chương trình AutoCAD mở nhiều bản vẽ. Tôi có một đối tượng ở bản vẽ 1 được chuyển sang bản vẽ 2. Làm thế nào quản lý được ObjectID của nó. Bởi vì khi chuyển đối tượng đó từ 1 sang 2 thì ObjectID của nó bị thay đổi. Làm thế nào nhận ra đối tượng đó.
                  - Có cơ chế nào trong lập trình VBA chuyển đối tượng hay copy đối tượng từ bản vẽ 1 sang bản vẽ 2 mà vẫn kiểm xoát được ObjectID của nó không.

                  help me....

                  Ghi chú

                  Working...
                  X