Hỏi & đáp lập trình

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi canh en buon, 23/5/07.

  1. Gaique9x

    Gaique9x Youtube Master Race

    Tham gia ngày:
    21/5/07
    Bài viết:
    77
    Em có 1 chút ý kiến xin được đóng góp

    Thưc ra VB.net, java hay C# chỉ đơn thuần là ngôn ngữ lập trình thôi, nó cũng chì là công cụ để hiện thực ý tưởng của mình thôi.
    Hơn nữa cấu trúc các ngôn ngữ giống nhau tới 90% (cũng có mấy câu điều kiện, mấy dòng lặp,... ). Do đó chỉ cần mình nắm thật chắc 1 ngôn ngữ thì việc học các ngôn ngữ khác là điều dễ dàng

    Hơn nữa cái cốt lõi khi lập trình là giải thuật để mình hiện thực ý tưởng kìa.


    Mong rằng qua bài viết này anh sẽ chọn cho mình 1 hướng đi thích hợp.

    À, sẵn đây có ai có bài toán nào khó khó hay ý tưởng nào lạ lạ không, hãy post lên cho mọi người cùng tham khảo với nhé(^_^)
     
  2. canh en buon

    canh en buon Youtube Master Race

    Tham gia ngày:
    20/5/07
    Bài viết:
    84
    Nơi ở:
    Thành phố buồn
    Thích thì chiều

    Đề bài: Hãy tìm đường đi qua 1 ma trận sao cho tổng các số trên đường đi là nhỏ nhất.

    Ví dụ: ma trận MxN
    5 2 9 2 9 0
    6 2 2 9 7 1
    1 4 2 1 2 5
    8 3 8 0 1 0
    Tổng các số đã đi qua là 7

    Qui tắc đi:
    + Chọn 1 phần tử bất kỳ trong cột đầu tiên làm phần tử xuất phát
    + Đi từ trái qua phải
    + Mổi lần đi 1 bước
    + Có thể đi thẳng hoặc đi chéo
    + Sau N lần đi phải tới đích (N số cột ma trận)
    có nghĩa là bạn chỉ được tiến không được lùi

    Ví dụ:
    1 2 3
    5 3 1
    9 3 1
    Đi thẳng

    1 2 3
    5 3 1
    9 3 1
    Đi chéo

    Lưu ý: M và N rất lớn (chỉ là đề phòng các bạn sử dụng giải thuật vét cạn:p )
     
  3. canh en buon

    canh en buon Youtube Master Race

    Tham gia ngày:
    20/5/07
    Bài viết:
    84
    Nơi ở:
    Thành phố buồn
    À quên, về phần bài giải thì đợi mình thi xong nếu không có bạn nào giải ra mình sẽ post bài giải lên.
    Nhưng mình nghĩ rằng bài này không khó với những cao thủ lập trình đâu!!!
     
  4. satthugiaumat1986

    satthugiaumat1986 C O N T R A

    Tham gia ngày:
    25/9/02
    Bài viết:
    1,506
    Nơi ở:
    The Hell
    Nói tới giải thuật thì ứng dụng business phần lớn ko ứng dụng nhiều giải thuật , ngôn ngữ lập trình cũng là cả 1 vấn đề , dùng VB6 với VB 2005 để viết 1 chương trình thì nó khác nhau 1 trời 1 vực rồi :;) , nhất là phần tạo giao diện và xử Database
     
  5. Brianlam

    Brianlam T.E.T.Я.I.S

    Tham gia ngày:
    14/7/04
    Bài viết:
    526
    Tui rất là khoái câu trên của bạn sát thủ :D , những cái giải thuật đó hay thiệt , nhưng tui xài cũng không nhiều lắm, 1 dạo lặp trình ba cái trí tuệ nhân tạo điên lên , giờ cuối cùng lại ko xài heuristic nhiều nữa , cứ code trâu bò sau đó tối ưu dần dần :D , quả là gà mà hehe
     
  6. Gaique9x

    Gaique9x Youtube Master Race

    Tham gia ngày:
    21/5/07
    Bài viết:
    77
    Em đây không đồng ý với ý kiến của chị satthu và anh brianlam, do 2 nguyên nhân:

    1\- Nếu nói code trâu bò sau đó tối ưu dần dần, vậy phương pháp anh brianlam code trâu bò và tối ưu là dựa trên đâu (cũng dựa trên các giải thuật)
    + Đầu tiên anh code trâu bò chẳng phải là anh đang dùng giải thuật vét cạn hay sao (cố gắng vác sức trâu ra mà vét hết tất cả trường hợp )
    + Sau đó anh tối ưu dần lên chẳng phải là anh đang thêm vào nhánh cận hay sử dụng các heuristic sao (còn nếu muốn tối ưu về tốc độ thì dùng qui hoặch động hay tham lam ).
    + Vậy có thể kết luận rằng thực ra anh cũng đang sử dụng các giải thuật đã học (nhưng vì chúng đã trở thành 1 phần kỹ năng của anh rồi nên anh không nhận ra)
    2\- Nguyên nhân thứ 2 là về ngôn ngữ:
    + Với tốc độ phát triển như vũ bão của CNTT thì sẽ ngày càng xuất hiện nhiều ngôn ngữ mới với nhiều tình năng hơn như giao diên ngày càng đẹp hơn, lập trình ngày càng trực quan hơn, hỗ trợ nhiều hàm thư viện hơn..., và nhất là ngày càng thân thiện với người dùng hơn (hiện nay đã có ngôn ngữ lập trình dành cho trẻ em ). Vậy những cái em đang học bây giờ có quá lạc hậu không. Câu trả lời là không, ngôn ngữ thì có thể lạc hậu nhưng giải thuật thì không.
    + Nếu nói ngôn ngữ cấp càng cao thì càng tốt, vậy tại sao ta không chuyển sang sử dụng ngôn ngữ cấp cao mà vẫn sử dụng các ngôn ngữ cấp thấp, ví dụ ta so sánh C với VB:
    * Về cấp độ: thì VB là ngôn ngữ cấp cao, còn C là ngôn ngữ lai giữa cấp cao và cấp thấp
    * Về giao diện: giao diện kéo thả trong C thì chắc chắc thận thiện hơn giao diện MFC trong C.
    * Về lập trình: thì lập trình trong VB cũng dễ chịu hơn nhiều so với lập trình trong C
    * Về các mặt khác: thì VB cũng tỏ ra ưu thế hơn C
    *** Vậy tại sao hơn 90% chương trình hiện nay trên thế giới đều được viết bằng C???
    + Vì vậy, có thể nói giao diện chỉ là yếu tố phụ giúp chương trình dễ sử dụng hơn, thân thiện hơn. Còn về database thì việc hiện thực nó cũng dựa trên những giải thuật trong cấu trúc dữ liệu thôi.

    Đây chỉ là ý kiến thiển cận của riêng cá nhân em, mong các anh chị góp ý kiến thêm.
     
  7. satthugiaumat1986

    satthugiaumat1986 C O N T R A

    Tham gia ngày:
    25/9/02
    Bài viết:
    1,506
    Nơi ở:
    The Hell
    Sử dụng ngôn ngữ gì để viết là dựa vào mục đích chương trình đó sẽ làm dc gì , vd bạn muốn viết hệ điều hành mà mang VB.Net ra viết thì ... :))

    Giao diện là 1 yếu tố rất quan trọng đó bạn , nếu ko thì bọn M$ cứ để cái giao diện 9x cho windows chứ cần gì tạo giao diện mới cho Vista ;)) .

    Xử lý database bây giờ chắc ko dùng nhiều giải thuật ( mà tớ cũng chả bao giờ học giải thuật cả :D ) , các ngôn ngữ cấp cao hiện nay nó dc cung cấp 1 tá thư viện để tương tác với DB , xử lý = lệnh SQL , nhưng vậy chẳng có gì lo :D .

    Với lại tớ nói ko dùng nhiều chứ ko bảo ko dùng , mà thực ra 1 số chương trình tớ viết tớ cũng ko biết cách tớ giải quyết vấn đề bạn gọi nó là giải thuật hay gì , quy hoạch động hay vét cạn là gì tớ cũng ko biết :D

    Chủ yếu là dựa vào cái đầu thui , quá phụ thuộc vào mí cái dc học thì ko ổn :D , vd như 1 bài toán thía này , bạn dc chỉ là phải dùng giải thuật này , nhưng mà sao ko thử tìm cách khác xem sao :D
     
  8. canh en buon

    canh en buon Youtube Master Race

    Tham gia ngày:
    20/5/07
    Bài viết:
    84
    Nơi ở:
    Thành phố buồn
    Mình nghĩ tai sao ta không trung hòa các ý kiến với nhau?

    Theo cá nhân mình nghĩ thì cả 2 đều quan trọng, mình xin phân tích kỹ hơn:
    Trước tiên mình xin có 1 vài nhận xét về bài của 2 bạn:

    + Đầu tiên là bạn gaique, mình rất đồng tình với bạn là nếu mình nắm thật vững 1 ngôn ngữ nào đó và việc học các ngôn ngữ khác sẽ dễ dàng hơn nhiều
    + Nhưng mình xin phản đối ý kiến cho rằng giao diện không quan trọng, biết rằng giải thuật chình là linh hồn của chương trình nhưng nếu phần giao diên không đẹp thì chương trình cũng sẽ không được coi trọng (ví dụ như khi mua 1 món hàng, dù biết rằng chất lượng bên trong nó rất tuyệt vời nhưng nếu phần mẫu mã bao bì bên ngoài nó không bắt mắt thì cũng không được khách hàng ưu chuộng)
    + Ngoài ra nếu bạn cho rằng ngôn ngữ cấp cao hay hơn ngôn ngữ cấp thấp thì không phải. Mổi ngôn ngữ có 1 thế mạnh riêng (Java là về mạng, C là về lập trình ứng dụng, SQL là về database,...), vì thế đã là 1 người lập trình viên thì phải biết lựa chọn cho mình ngôn ngữ thích hợp nhất.

    + Còn về bạn satthu thì bạn cho rằng không cần học các giải thuật thì bạn vẫn viết được các chương trình business, bởi vì các thư viện của các ngôn ngữ đã cung cấp cho bạn rất nhiều hàm viết sẵn.
    + Vâng bạn có thể viết các chương trình ứng dụng bằng các giải thuật tự chế của mình, nhưng bạn hãy thử viết 1 chương trình hệ thống thử xem (như hệ điều hành, các trình biên dịch, hay các phần mềm nhúng...)

    * Mình lấy ví dụ như bài toán tìm 1 danh sách lặp vòng mà mình đố các bạn hôm bữa, đây là 1 bài toán được ứng dụng rất nhiều trong thực tế. Như trong việc quản lý các thư mục của hệ điều hành hay như trong các trình download web.
    * Mình xin nói cụ thể hơn, giả sử bạn có 1 trình down web không có khả năng xử lý lặp vòng, vậy khi bạn đang down 1 trang web với tất cả các đường link của nó, nhưng lỡ các trang web này link vòng vòng với nhau thì sao (khi đó chương trình của bạn sẽ rơi vào vòng lặp vô tận). Nhưng nếu dùng giải thuật vét cạn hôm trước của bạn để tránh 1 danh sách lặp vòng vậy thì khi down 1 trang web ta phải mất rất nhiều thời gian so với lúc bình thường.

    * Hay 1 ví dụ khác về việc truy xuất dữ liệu trong database, nếu ở cấp lập trình ứng dụng bạn chỉ cần biết các cậu lệnh truy vấn SQL để truy xuất các dữ liệu trong bảng là được rồi, nhưng với các nhà lập trình hệ thống thì họ phải nắm thật vững các giải thuật về truy xuất dữ liệu (truy xuất tuần tư, truy xuất theo cây, hay dùng bảng băm,...) để làm sao giúp bạn truy xuất dữ liệu tối ưu nhất.

    Kết luận: Giải thuật hay ngôn ngữ đều quan trọng, nhưng về giải thuật nếu bạn chỉ lập trình ứng dụng thì không cần quan tâm lắm, nhưng nếu là 1 nhà lập trình hệ thống thì bạn phải nắm thật vững các giải thuật.

    Mình vẫn còn nhiều điều muốn nói nhưng mất công các bạn nói mình nhiều chuyện, với lại sáng mai mình thi rồi, vì vậy hôm nay mình quyết tâm phải offline (tức là mình sẽ treo chuột khoảng 1 tuần:p )
    Hẹn sớm gặp lại!!!:D
     
  9. satthugiaumat1986

    satthugiaumat1986 C O N T R A

    Tham gia ngày:
    25/9/02
    Bài viết:
    1,506
    Nơi ở:
    The Hell
    Đầu tiên cứ lập trình ứng dụng đã , phải đi từng bước thôi , giờ lấy kinh nghiệm làm chính , chứ lý thuyết suông thì ko dc gì :D
     
  10. Gaique9x

    Gaique9x Youtube Master Race

    Tham gia ngày:
    21/5/07
    Bài viết:
    77
    Bài này cho vét cạn em còn không biết vét làm sao nửa!
    Anh có thể gợi ý 1 tí được không:p
     
  11. [L]at

    [L]at The Warrior of Light

    Tham gia ngày:
    8/1/06
    Bài viết:
    2,147
    Nơi ở:
    ハノイ
    Ai có mấy bài tập về JDBC , RMI và NetWorking ko nhỉ ? Học Java đau hết cả đầu :((
     
  12. satthugiaumat1986

    satthugiaumat1986 C O N T R A

    Tham gia ngày:
    25/9/02
    Bài viết:
    1,506
    Nơi ở:
    The Hell
    RMI thì nhằm nhò gì , vô J2EE Deploy với EJB thì khóc dài dài ;))
     
  13. [L]at

    [L]at The Warrior of Light

    Tham gia ngày:
    8/1/06
    Bài viết:
    2,147
    Nơi ở:
    ハノイ
    Cậu học qua rồi thì nói làm gì ? Tớ đang làm quản lí khách sạn / nhà thổ ;)) nên cần học kĩ JDBC + RMI . Code thì fang C# + Windows Forms thôi mà
     
  14. Long_badao

    Long_badao Youtube Master Race

    Tham gia ngày:
    31/5/07
    Bài viết:
    20
    Có ai rành về javascript không cho mình hỏi chút.
    Làm thế nào để thay đổi kích thước đối tượng button?
     
  15. Gaique9x

    Gaique9x Youtube Master Race

    Tham gia ngày:
    21/5/07
    Bài viết:
    77
    <input type = "button" value = "tên gì đó" style = "position:relative;height:Xpx;top:Ypx;left:Zpx;" onclick = "làm_gì_đó()">

    Với X,Y,Z xác định kích thướt và vị trí của button.
    Nếu muốn thao tác trực tiếp trên button thì anh thay relative bằng absolute
     
  16. Long_badao

    Long_badao Youtube Master Race

    Tham gia ngày:
    31/5/07
    Bài viết:
    20
    Bạn hiểu lầm ý mình rồi.
    Ý mình là đã có sẵn 1 nút button rồi mình muốn thay đổi kich thước của nó.
    (nếu được bạn hay viết 1 chương trình demo cho mình luôn đi)

    Cám ơn nhiều...
     
  17. QuangTue

    QuangTue Mr & Ms Pac-Man

    Tham gia ngày:
    19/1/06
    Bài viết:
    281
    Ai giúp em!Sao mỗi lần em khởi động máy la cai thung SBU no kiu tinnnnnnnnnn tinnnnnnnnnnnnnnnnnnnn
     
  18. bachkhoapro1204

    bachkhoapro1204 Youtube Master Race

    Tham gia ngày:
    20/5/07
    Bài viết:
    55
    SBU??? có phải CPU không?

    Ông để ý xem tiếng tin đó như thế nào, nếu:
    + 1 tiếng dài, nguyên nhân là:
    * Không tìm thấy card Video (kô áp dụng cho card on board)
    + 2 ngắn 1 dài
    * Chưa nối dây tín hiệu cho màn hình (Chỉ áp dụng cho card on boad)
    + 3 ngắn 1 dài
    * Lỗi liên quan đến Video
    + 1 ngắn
    * Lỗi về làm tươi bộ nhớ
    * Mạch làm tươi bộ nhớ trên mainboard bị hư hỏng
    + 2 ngắn
    * Lỗi sai chẵn lẻ
    * Việc kiểm tra chẵn lẽ không được hổ trợ trên sản phẩm nầy.
    + 3 ngắn
    * Lỗi trong 64kb bộ nhớ
    * Lỗi trong 64Kb đầu tiên của Ram
    + 4 ngắn
    * Lỗi bộ định thời
    * Bộ định thời trên mainboard không hoạt động.
    + 5 ngắn
    * Lỗi về bộ xữ lý
    * CPU gây ra lỗi
    + 6 ngắn
    * Lỗi 8042-cổng A20 Bios không chuyển sang chế độ bảo vệ được.
    + 7 ngắn
    * Lỗi về bộ xữ lý
    + 8 ngắn
    * Lỗi card Video
    * Card Video hay Ram trên card bị hư
    + 9 ngắn
    * Lỗi sai số tổng kiểm tra Rom
    * Số tổng kiểm tra Rom khong đúng với giá trị đã có trong Bios

    Ngoài ra ông nên kiểm tra lại quạt có hoặt động kô (lần trước máy tôi cũng bị vụ này đó)
     
  19. QuangTue

    QuangTue Mr & Ms Pac-Man

    Tham gia ngày:
    19/1/06
    Bài viết:
    281
    Cam ơn bài viết của bạn.Có ai cho hỏi nũa ne`:Sao em vô start chọn run rồi bấm regedit nó báo lỗi la`:registry editing has been disabled by your administrator
     
  20. satthugiaumat1986

    satthugiaumat1986 C O N T R A

    Tham gia ngày:
    25/9/02
    Bài viết:
    1,506
    Nơi ở:
    The Hell
    Dính virus, spy rồi ;))
     

Chia sẻ trang này