Ngôn ngữ lập trình nào: Xin ý kiến các đồng chí

X-Quang
21-12-07, 20:19
Chẳng là mình đang phải làm assignment viết chương trình để giải quyết một bài toán tối ưu hóa. Giáo mình cho chọn ngôn ngữ lập trình thoải cbn mái luôn. Mình dân kinh tế, ngày xửa, ngày xưa có học qua cái gì mà (Q)Basic (?) (không phải Visual Basic như bây giờ đâu), nhưng cũng đã hơn chục năm rồi. Bây giờ, nhân vụ giáo đòi mình viết chương trình cũng định học hành tử tế, biết một cái ngôn ngữ nào đó hầu phục vụ đất nước sau này.

Mình đang băn khoăn không biết nên chọn ngôn ngữ nào để học giữa: (1) Pascal, (2) C/C++ và (3) Visual Basic. Mình không có nhiều thời gian, cuối tháng 2 phải xong bài, nhưng lại muốn học cái gì đó để sau này còn tận dụng được kiến thức chứ không đến nỗi học xong bỏ xó.

Các đồng chí cao thủ tin học ở TL xin cho ý kiến chỉ đạo với. Nên nhắm tới thằng nào trước đây?

Xin lắng nghe và cảm ơn trước.
Look
21-12-07, 20:33
1. Bài toán KHKT => Chọn Pascal hoặc C
2. Cụ thể
- Muốn nhanh => Chọn Pascal
- Muốn "sau này còn tận dụng kiến thức" => Chọn C++ hoặc C#
Phuongdong
21-12-07, 21:53
Visual Basic - đơn giản , dễ học. Giao diện đẹp. Có thể tiện cho công việc của chú sau này
Độc Hành Phong
21-12-07, 21:58
Hé hé tối ưu hoá thì cứ pascal mà xơi thôi còn chần chờ gì nữa. Không làm được thì bác quẳng cho bọn trẻ con chuyên tin ý, nó lại chẳng nhoay nhoáy nhoay nhoáy cơ mà không biết bài toán bác định giải thuộc loại gì, là em cứ xui dại bác thử phát được không được thì thôi.
X-Quang
21-12-07, 22:43
Cảm ơn các đồng chí đã tận tình chỉ bảo.

@PD: Trong Excel cũng có phần viết macro bằng VB thì phải nên mình thấy thằng đó có vẻ ấn tượng. Tuy nhiên, có người lại nhận xét là thằng ấy cồng kềnh và phức tạp. Hơn nữa, để dùng nó thì phải có bản quyền, mà mình chưa biết nên lấy ở đâu về để cài và còn sách học nữa chứ. Băn khoăn tẹo.

@Look: nhà em cũng load được cái Pascal từ freepascal.org về rồi, nó lại còn có luôn tài liệu nên cũng tiện. Tuy nhiên, gợi ý của bác về thằng C cũng đáng lưu ý. Em trước giờ nghe thấy C là cứ hãi hãi. Có khi cũng tìm hiểu thêm một chút, thằng này có phải mua bản quyền kiếc gì không nhỉ?

@Hành Phong: cảm ơn gợi ý của đồng chí. Mình muốn tự làm được cơ chứ ai lại nhờ con cháu mình nó làm cho thì buồn cười quá. Cháu nhà mình còn mải ôn thi toán quốc gia với quốc tế nên nó cũng bận. Hê hê.

PS. Mình phải làm cái Metaheuristics cho bài toán dạng Knapsack problem. Input một file text, output là best solution và phải control được thời gian cho ra kết quả (sau 1s; 5s...).
namcs
21-12-07, 22:46
C nếu bác dơn mấy IDE như eclipse thì không có bản quyền gì hết bác. Em đề xuất C++. Tuy học hơi khó hơn mấy cái kia nhưng hợp mục đích giải quyết tính toán và xài về sau.
Look
21-12-07, 22:56
Nhiều khi ham muốn loại trừ nhau, dùng C++ sau này lập trình hướng đối tượng hoặc lập trình hệ thống ngon hơn...

Nhưng với mục tiêu đánh nhanh, thắng nhanh để giải bài toán "xếp đồ vật vào ba lô sao cho giá trị đạt cực [sướng]" thì nên dùng Pascal hoặc nếu Input lớn (đòi hỏi bộ nhớ thoải mái) thì cần dùng freepascal. Metaheuristics (cảm tính bội) mà đạt cực trị là hơi khó? Sao không dùng quy hoạch động?
X-Quang
21-12-07, 23:15
Sao không dùng quy hoạch động?

Là giáo em yêu cầu vậy bác ợ. Đang học cái gì mà combinatorial optimization với đủ thứ loằng ngoằng khỉ nợ.
Độ này em cũng mất khá nhiều thời gian tìm hiểu các loại phần mềm: Stata, Latex,... giờ thêm thằng này nữa, mệt phết.
Look
21-12-07, 23:20
Ờ, Latex soạn toán cho nó nhanh, cái stata là gì anh chưa biết?
Nếu xong rồi làm một quả form giao diện của bạn Phuong Đông thì hơi bị ngon đấy. Chuyển sang lập trình VB cũng nhanh thôi, chỉ khác mỗi cú pháp một tẹo.
X-Quang
22-12-07, 03:04
Ờ, Latex soạn toán cho nó nhanh, cái stata là gì anh chưa biết?

Stata là phần mềm chuyên về thống kê với kinh tế lượng bác ợ. Nó cũng cho phép viết các chương trình để thực hiện một loạt các lệnh nào đó định sẵn với một bộ số liệu, gọi là các *.do file.

Có lẽ em sài tạm Pascal thôi. Hiện thời trong tay có tài liệu về thằng này nhiều nhất mà các bác đều nói là thằng này xơi nhanh được, về sau chuyển sang thứ khác cũng dễ.
caspi
22-12-07, 03:23
Ý kiến cái, để giải vụ này theo tớ nghĩ thì nên dùng Prolog.
caspi
22-12-07, 03:25
Ý kiến cái, để giải vụ này theo tớ nghĩ thì nên dùng Prolog.
Ví dụ trong này:
http://archives.devshed.com/forums/research-131/all-solutions-for-0-1-knapsack-problem-1709337.html


:- use_module(library(bounds)).

% begin parameters
desired_total(10).
max_items(3).
items_with_costs([a-10,b-(-3),c-50,d-(-40),e-5,f-5]).
% end parameters

setup_equality([], [], K, K).
setup_equality([_Item-Cost|ICs], [B|Bs], Acc0, K) :-
Acc1 #= Acc0 + Cost*B,
setup_equality(ICs, Bs, Acc1, K).


solve_(Bs) :-
items_with_costs(Is),
length(Is, NumItems),
length(Bs, NumItems),
Bs in 01,
max_items(MaxItems),
sum(Bs, #=<, MaxItems),
desired_total(K),
setup_equality(Is, Bs, 0, K).

solve(Bs) :-
solve_(Bs),
label(Bs).


kiểu thế :)
X-Quang
22-12-07, 04:13
Ồ, thank Caspi nhé. Có lẽ sau này có lúc sẽ cần tư vấn cũng nên. Tạm thời mình sẽ chọn một ngôn ngữ để tìm hiểu nó cái đã. Thật ra việc trả bài thì cũng quan trọng, nhưng quan trọng hơn là mình biết thêm được cái gì. Vì thế mới phải lăn tăn. Mình sẽ cố gắng thử trong thời gian tới xem thế nào. Có gì sẽ thỉnh giáo sau.
Bison
23-12-07, 06:29
Sao X- không xài Matlab? cái này đơn giản, dễ học nhiều tool box nhưng chạy hơi chậm. Bên mình mình toàn cho bọn trẻ làm bằng Matlab (Math & Engg), còn Eco thì mình không rành. Còn không thi VB học cũng nhanh.
X-Quang
23-12-07, 15:48
Sao X- không xài Matlab? cái này đơn giản, dễ học nhiều tool box nhưng chạy hơi chậm. Bên mình mình toàn cho bọn trẻ làm bằng Matlab (Math & Engg), còn Eco thì mình không rành. Còn không thi VB học cũng nhanh.
Cảm ơn Bison. Cũng có anh bạn ở cùng thành phố đang khuyên dùng Matlab. Thằng này cũng được dùng nhiều trong toán tài chính, mà công việc thật của mình cũng có dính dáng tý chút đến tài chính nên quả thật cũng đang băn khoăn. Trong list các ngôn ngữ mà ông thầy đưa ra hôm trước không có Matlab, đang định hỏi lại thầy xem thế nào.
Look
23-12-07, 17:20
Matlab không phải chỉ có dính dáng đến tài chính mà là hầu như mọi thứ và nó nằm ở các Tool box, và những thứ này thì trẻ con không chơi được, trừ trường hợp học sau đại học :D, ví dụ như Bioinformatic, Control System, Neural Network, Fuzzy Logic, Genertic Algorithm, Clustering...

Matlab có một điểm rất mạnh là thậm chí các vectơ, các ma trận nhiều chiều, nó dùng như là các biến đơn một cách giản dị :D
Bison
24-12-07, 02:47
Cảm ơn Bison. Cũng có anh bạn ở cùng thành phố đang khuyên dùng Matlab. Thằng này cũng được dùng nhiều trong toán tài chính, mà công việc thật của mình cũng có dính dáng tý chút đến tài chính nên quả thật cũng đang băn khoăn. Trong list các ngôn ngữ mà ông thầy đưa ra hôm trước không có Matlab, đang định hỏi lại thầy xem thế nào.

Ừ hỏi đi rồi cần mình úp cho, Matlab càng cũ chạy càng ngon (máy yếu, nhanh và ít lỗi) không cần bản mới làm gì. Cheers.
nghuy
27-12-07, 02:46
đèo mẹ PHP. giao diện là HTML, JS, CSS thêm tí AJAX, các bác cứ vẽ chuyện ********* gì mà log liếc gì, useless bỏ mẹ