Thông báo

Collapse
No announcement yet.

Giải thuật lập trình menu

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

  • Giải thuật lập trình menu

    Các bác cho em hỏi có giải thuật nào giúp lập trình menu thuận tiện không?
    Em đang lập trình cho một cái máy đo, các phần cơ bản và tổ chức dữ liệu tạm ổn rồi, còn phần menu thì thấy chuối quá! Nếu lập trình bằng tư duy thông thường thì . Em nghĩ ngành công nghệ thông tin phát triển đến hiện nay thì chắc đã phải có cả mớ giải thuật cho việc này!!???

    Anh em mình lập trình cho vi điều khiển, nếu không có giao diện người sử dụng thì thôi, hoặc ta làm ta xài, còn đâu thì chắc đều mắc vào menu cả. Mà người dùng thì họ đâu cần biết mình làm thế nào, họ chỉ cần thấy nó đẹp, tiện dụng thì cho là pro rồi, còn dơn giản lởm cởm thì dân chắc là dân nhà ta. Có khi xử lý sai số chưa tối ưu mà làm được cái fade-in, fade-out ấn tượng thì cũng hơn hàng!?

    Bác nào biết thì chỉ bảo giúp nhé!!! Nhất là mấy cái bác bên Xi-En-2-Ti (CNTT)!

    Thanhks a lot!!!

  • #2
    Hehe, em không biết là Menu của bác muốn như thế nào, nhưng em từng làm 1 cái như thế này,
    http://www.picvietnam.com/forum/showthread.php?t=1783
    hiện nay hầu hết các ứng dụng trên VDK có Menu em dùng nó cả. Và em phát triển nó lên thêm 1 bậc nữa, lọc menu nhiều hơn và tối ưu hơn đó nhiều
    Diễn đàn Vi điều khiển:

    Comment


    • #3
      Bạn làm theo phương pháp duyệt cây đúng không?
      Cái này có bị giới hạn bởi độ sâu ngăn xếp không?
      Nếu bài toán đặt ra yêu cầu các nhánh có liên kết thì sao?

      Đây cũng là mô hình tôi đang nghĩ đến. Nhưng nó hơi khiếp!

      Comment


      • #4
        Àh! Mà có thể dùng hàng đợi để duyệt cây thì phải!? Đỡ đụng ngăn xếp. Có thể xây dựng một hàm duyệt chung cho tất cả các lá. Phải không nhẩy?

        Comment


        • #5
          Nguyên văn bởi KnowMore Xem bài viết
          Àh! Mà có thể dùng hàng đợi để duyệt cây thì phải!? Đỡ đụng ngăn xếp. Có thể xây dựng một hàm duyệt chung cho tất cả các lá. Phải không nhẩy?
          Hehe, dùng ngăn xếp thì đúng là mất nhiều RAM, em đã làm thành công cái duyệt menu theo cái kiểu khác giống như là câu truy vấn: SELECT * FROM menu_table WHERE menu_parend = Current_Status LIMIT 2 FROM Current_Page

          Đại khái là chỉ lọc 2 Menu hiển thị từ vị trí đang duyệt, do đó không cần dùng ngăn xếp, chỉ dùng 1 mảng nhỏ hơn nhiều để lưu lại vị trí hiện tại của từng menu để sau này trở ra đúng cái vị trí đó.

          Bác cứ thử làm đi, có gì không được cứ POST lên diễn đàn, nếu giúp được em giúp bác tối đa
          Diễn đàn Vi điều khiển:

          Comment


          • #6
            Các bác đã nghe nói đến Ngữ cảnh bình đẳng chưa?
            Anh em mình làm menu thì hay nghĩ đến duyệt cây, nhưng bài toán thực tế thì nhiều khi là duyệt đồ thị (cây cũng là một loại đồ thị). Nếu phải làm bằng cách thêm các rẽ nhánh thì mệt lắm, hay lỗi lung tung.
            Không biết có bác nào biết giải thuật lướt đồ thị không nhỉ?

            //nói duyệt cây, duyệt đồ thị hình như không đúng lắm? Có lẽ phải nói leo cây và leo đồ thị!?

            Comment


            • #7
              Tôi thì ko phải dân CNTT nhưng thường hay tư duy theo kiểu các bước và dùng hàm switch để chọn bước. Cái này có gọi là duyệt cây ko nhể.
              AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
              Xem thêm tại Online Store ---> Click here
              Mob: 0982.083.106

              Comment


              • #8
                Nguyên văn bởi minhtuan04 Xem bài viết
                Hehe, em không biết là Menu của bác muốn như thế nào, nhưng em từng làm 1 cái như thế này,
                http://www.picvietnam.com/forum/showthread.php?t=1783
                hiện nay hầu hết các ứng dụng trên VDK có Menu em dùng nó cả. Và em phát triển nó lên thêm 1 bậc nữa, lọc menu nhiều hơn và tối ưu hơn đó nhiều
                Hi bác Tuấn, sao link bác đưa em tải về không có file design và file mô phỏng vậy, nếu bác còn giữ thì up lên cho anh em tham khảo với nha,
                Và con tim đã vui trở lại ....

                Comment


                • #9
                  Nguyên văn bởi VNarmy Xem bài viết
                  Tôi thì ko phải dân CNTT nhưng thường hay tư duy theo kiểu các bước và dùng hàm switch để chọn bước. Cái này có gọi là duyệt cây ko nhể.
                  Em cũng đang tư duy theo cách này! Nhưng nói chung là !
                  Nếu lồng switch vào switch thì không phát sinh lệnh gọi, nhưng vẫn rất rối!
                  Bác minhtuan04 dùng mảng để lưu thông tin liên kết của một đỉnh, giúp có thể dùng hàm tổng quát và tránh việc đụng đệ quy, ngăn xếp(?).
                  Chán wa'! Ở mình cứ học cái gì, làm cái gì ấy? Cơ bản và quan trọng như giải thuật menu thì chẳng biết tìm ở đâu!
                  Dân CNTT thì chỉ sử dụng các hỗ trợ có sẵn cho menu từ ngôn ngữ hoặc trình hợp dịch thôi, trừ khi lập trình bằng ngôn ngữ cơ bản.
                  Anh em làm vdk cần menu thì chắc chắn phải tự giải quyết.
                  Em đang tìm các giải thuật (chuẩn) cho việc lập trình menu, cái này chắc chắn đã có! Kỹ thuật lập trình đã chuyển từ nghệ thuật sang công nghệ rồi còn gì!

                  Comment


                  • #10
                    Thử bằng 1 hướng kiểu automata xem.
                    Các trạng thái menu được thể hiện bằng trạng thái của automata.
                    Chuyển trạng thái do người dùng định nghĩa bằng cách vẽ ra.

                    Đúng là người dùng trên các OS có sẵn thì có các module do IDE+ Compiler sinh ra tiện lợi.

                    Sông dài, Thuyền lớn, Biển rộng bao la.
                    Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

                    Comment


                    • #11
                      Nguyên văn bởi pass Xem bài viết
                      Hi bác Tuấn, sao link bác đưa em tải về không có file design và file mô phỏng vậy, nếu bác còn giữ thì up lên cho anh em tham khảo với nha,
                      Đây bác, xịn hơn cả yêu cầu của bác luôn, bác vào tải về thử đi, menu trở nên đơn giản hơn rồi
                      http://dientuvietnam.net/forums/showthread.php?p=125785
                      Diễn đàn Vi điều khiển:

                      Comment


                      • #12
                        Bài Tóan tìm đường ngắn nhất bằng Dijsktra

                        Chào các bạn tôi dang làm bài tập về tìm đường đi ngắn nhất sử dụng giài thuật Dijsktra , gặp khó khăn như sau nhờ giúp đỡ .
                        Khi từ một nút của đồ thị duyệt đến các nút khác nếu hàm chi phí của hai cạnh từ nút này đến hai nút là bằng nhau thì lúc này giải thuật sẽ giải quyết thế nào?

                        Comment


                        • #13
                          mình thấy bài của bạn rất hay về cách lập trình.mình đã tham khảo bài của bạn,nhưng mình thấy rằng bài của bạn có chút dở hơi là nếu tạo ra 1 tree như thế ,dễ quản lý như thế mà cuối cùng chẳng làm gì cả chỉ hiển thi ra 1 chuỗi kí tự,vậy có để làm gì không.trong khi mục đích cuối cùng là tạo tree để quản lý các chương trình con dễ hơn,tạo giao diện người dùng - thiết bị dễ dàng hơn.
                          như vậy là cuối mỗi thư mục mình tạo ra phải để ít nhất chương trình con,và tên chương trình con sẽ được ghi thành list trong thư mục đó.
                          không cứ là phải cuối thư mục mới có chương trình con. mà mình cũng có thể sắp xếp , bố trí sao cho có thể đặt một vài chương trình con ở giữa mỗi thư mục.
                          trong chương trình bạn có sử dụng hàm quét phím liên tục để có thể nhận ra được nút ấn của khi ở trong 1 thư mục nào đó .điều này rất hạn chế . nếu bạn chạy 1 chương trình nào đó rồi thì bạn không thể kiểm tra phím liên tục được nữa . như vậy bạn chỉ đi được 1 lần.nếu ta nhúng hệ điều hành thời gian thực vào con VDK nay đc thì phương pháp của bạn thật tuyệt vời ^^
                          dựa theo bài toán của bạn mình sẽ nghĩ cách để có thể tối ưu nó. cảm ơn bạn đã cho mình 1 ý tưởng để thực hiện

                          thanks

                          Comment

                          Về tác giả

                          Collapse

                          KnowMore Tìm hiểu thêm về KnowMore

                          Bài viết mới nhất

                          Collapse

                          Đang tải...
                          X