View Full Version : Phong cách lập trình
Mr. Pitô
21-06-2007, 09:08 PM
1. Cách đặt tên
- Tên phải được đặt một cách có nghĩa
- Tên hằng nên đặt bằng 1 dãy kí tự in hoa còn tên biến thì không nên viết hoa tất cả.
vd: TÊN_HẰNG và tên_biến
- Các từ khoá như const, begin, end, Procedure, Function... nên dùng toàn kí tự thường hoặc chỉ viết hoa chữ cái đầu tiên. Riêng cặp BEGIN ... END. của chương trình chính nên viết hoa toàn bộ.
- Đối với các tên dài thì nên có kí tự " _ " ngăn cách hoặc là viết hoa các chữ cái đầu của tên biến.
vd: TÊN_HẰNG_DÀI , TenBiếnDài
- Tên chương trình con phải nêu ra được nhiệm vụ của chương trình con đó.
vd : procedure ĐọcDữLiệu; function TínhGiaiThừa;
Một sô tên hằng hay sử dụng
FI hoặc FILE_IN: hằng chứa tên của tệp vào
FO hoặc FILE_OUT: hằng chứa tên của tệp ra
MAX, NMAX, MMAX...: Các giới hạn của bài toán
2. Trình bày tổng quan chương trình
Một chương trình pascal có thể mô tả như sau:
{phần khai báo}
program TÊN_CHƯƠNG_TRÌNH;
const
< Khai báo các hằng cần sử dụng >
type
<Khai báo các kiểu dữ liệu>
var
<Khai báo các biến toàn cục>
{kết thúc phần khai báo}
<Khai báo và cài đặt chương trình con>
{chương trình chính}
BEGIN
<Thân chuơng trình chính>
END.
{kết thúc chương trình chính}
Một số điểm cần lưu ý:
- Trong thân chương trình chính chỉ nên chứa lời gọi các chương trình con. Khi lập trình thì nên cài chương trình chính trước rồi mới đến chương trình con sau. Đây là cách lập trình theo kiểu Top Down (từ trên xuống). Trong các chương trình con thì lại nên chia thành các chương trình con nhỏ hơn.
- Giữa các phần khai báo, các chương trình con và chương trình chính nên có các dòng ngăn cách, có thể là 1 dòng trống hoặc là 1 dãy kí tự. Ngoài ra trong thân 1 chương trình thì các khối lệnh thực hiện cùng một nhiệm vụ nên được ngăn cách với các khối lệnh khác cũng bằng 1 dòng trống hoặc 1 dãy kí tự.
- Các lệnh cũng được chia thành các cấp và được lùi vào đầu dòng tương ứng với cấp.
VD
begin
<Lệnh cấp 1>
<Lệnh cấp 2>
<Lệnh cấp 3>
<Lệnh cấp 2>
<Lệnh cấp 1>
<Lệnh cấp 2>
{...}
end;
- Không nên viết sát tên biến với các kí tự như : , + - * / :=
vd: nên viết:
a := (3 + b) * c;
var a, b, c: integer;
chứ không nên viết:
a:=(3+b)*c;
var a,b,c:integer;
Nothing
22-06-2007, 01:02 AM
Anh bổ sung tý cho chú là tên biến nên đặt tiền tố là viết tắt của kiểu dữ liệu. Ví dụ kiểu Integer thì nên đặt tên biến là intBien. Sử dụng nhiều comment, trước khi bắt đầu một công việc, hoặc để đánh dấu, giải thích một việc gì thì nên comment. Để người đọc sau có thể hiểu, hoặc để cho chính mình sau này có thể maintain được.
Mà anh lâu không đụng đến Pascal ko biết các chú làm gì. :devil:
Nếu mà lập trình ứng dụng thì còn nhiều trò nữa. Như là cách viết Query, sử dụng Connection, try catch, tách html và các ngôn ngữ lập trình web, ... ;;)
Mr. Pitô
22-06-2007, 10:39 AM
Chít chít tối qua vội quá em quên mất vụ comment.
3. Lời chú thích
- Được đặt trong cặp { }(Cái này là ở Pascal, các ngôn ngữ khác có thể không phải)
- Đặt đầu chương trình nêu mục đích chương trình
- Đặt trước hàm, thủ tục chú thích công việc của hàm, thủ tục
- Đặt sau các dòng lệnh phức tạp, khó hiểu và các cấu trúc dữ liệu, liên kết.
4. Liên kết
Khi lập trình 1 chương trình dài như phần mềm ứng dụng thì bạn nên tách chương trình của mình thành các file con, mỗi file có thể là 1 đoạn chương trình con hoàn chỉnh có nhiệm vụ cụ thể. Làm như thế chương trình của bạn sẽ gọn gàng hơn, dễ kiểm soát hơn .
Ở chương trình chính bạn chỉ cần gọi liên kết đến file đó bằng {$I ĐiạChỉFile}
================================================== =====
@ Anh Nothing: báo cáo với anh là dạo này bọn em dùng Pascal chỉ để giải toán. Thỉnh thoảng rỗi rỗi ngồi code mấy phần mềm chơi cho đỡ buồn.
Nothing
22-06-2007, 02:43 PM
:devil: Anh hỏi đùa tý thôi, ai chả biết các cháu học Tin ở quê phải học Bát can. :nghieng:
Mà sao chương trình Tin lạc hậu tỹ thế nhỉ? Cái này có nguyên nhân từ Bộ các Giáo à? Anh nghĩ là giờ này phải cho các cháu học C/C++ chứ mấy giờ rồi còn Bát can. Viết bát can lệnh nhiều , gõ đau cả tay, anh ngày xưa học có mỗi một kỳ mà còn ngại. Sau này viết toàn Visual sướng , chỉ cắt dán là chính. :-j
Chú Pi đã viết được Bát can đồ họa chưa? Lớp đại học anh ngày xưa có mấy chú khoe là viết được từ hồi phổ thông, làm được hẳn NC, anh phục sát đất, bẹp như gián luôn. Anh các chú vừa dốt vừa lười, thế nên ko làm được công trình vĩ đại nào cả :-j
À, ở bên chỗ anh đang làm nó cấm viết switch case, bắt buộc phải viết đầy đủ if then thay thế, ko hiểu tại sao? :-?
Năm bọn em học thì Pascal vẫn là ngôn ngữ lập trình đầu tiên phải học, năm nay thì hầu hết các trường ĐH bỏ hết rồi, cho học thẳng C là ngôn ngữ cơ bản đầu tiên phải học, trừ một số cháu ở lớp sư phạm vẫn phải học Pascal và cả Pascal nâng cao.
Nghĩ tới lập trình mà ngại :devil: .
Metal
22-06-2007, 05:34 PM
Còn 1 cái nữa: Lập trình cho cấu trúc cơ khí. Nếu không cụ thể, tỉ mỉ, cẩn thận thì đến khi debug có mà khóc :nghieng:
Ông Già
22-06-2007, 07:31 PM
Còn 1 cái nữa: Lập trình cho cấu trúc cơ khí. Nếu không cụ thể, tỉ mỉ, cẩn thận thì đến khi debug có mà khóc :nghieng:
Nó gọi là gì ? Asembly ???
Metal
22-06-2007, 11:48 PM
Assembly tớ chưa dùng. Mà ngôn ngữ bậc thấp như nó thì làm cái gì mà chẳng phải xây dựng tỉ mỉ.
Lập trình cơ khí quan trọng là tính toán lực và hình học rõ trâu bò, trên ngôn ngữ nào cũng thế. Trong đó thấy trâu nhất là dùng đồ họa Pascal, còn không biết thằng Assem mà để vẽ hình thì có khiếp không nhỉ?
Phong cách lập tình của mình : Ít dùng module và chương trình con :nghieng:
Mr. Pitô
23-06-2007, 12:44 AM
Em thì chưa học C/C++ nhưng nghe các đàn anh ca ngợi lắm. Có khi lúc nào rỗi cũng phải kiếm tài liệu học mới được.
@anh Nothing: cái chương trình đồ hoạ em làm duy nhất là điều khiển một quả bóng chạy trên màn hình =)). Em thích dùng unit crt hơn, em có cái giải ô Sudoku tự viết nhưng mất mất mã nguồn rùi, chỉ còn file dịch ra thui (tại hôm trước thi trượt, bực mình del hết *.pas :dapdau: ) Nếu ai thích pm cho em em send cho.
FFonlineX
23-06-2007, 12:59 AM
Tưởng cái gì? cái nì thì ở trước cổng B8 thì có mà thoải con gà mái ;;)
Đề nghị có cái nào đó thích hợp hơn đối với tên của cái topic này :docsach:
Anh Metal ơi! Lập trình cho ngành cơ khí thế nào hả anh? Có điểm gì khác biệt giữa lập trình cơ khí đối với lập trình CNTT không?
Metal
23-06-2007, 04:57 AM
Anh Metal ơi! Lập trình cho ngành cơ khí thế nào hả anh? Có điểm gì khác biệt giữa lập trình cơ khí đối với lập trình CNTT không?
Hơ, chưa bao giờ lập trình cho CNTT. Chỉ có làm mấy cái BTL C++ với Database trong vòng 1 ngày. Cụ thể là google sau đó edit
Còn lập trình cơ khí thì thích hơn. Anh mới chỉ chơi VC++ với thư viện OpenGL. Nói chung là vẽ ra một mô hình nào đó rồi điều khiển nó, tính toán hình học cũng khá mệt. Có chú dùng trò này mà lừa được bao nhiêu tiền tài trợ Robocon.
Bây giờ thì mấy công ty mới ở VN nó dùng kiểu lập trình cho máy CNC ứng dụng công nghệ 3c (thiết kế, mô phỏng và điều khiển), nói chung cái này là loại cực kỳ visual nên làm khá dễ dàng, chỉ có cái là sv chẳng bao giờ được sờ tới do đắt tiền. Nhưng thông thường kỹ sư CNTT khó làm hơn mấy bác CTM vì không có cái nhìn tổng quát bằng anh cơ khí
Nothing
23-06-2007, 10:49 AM
Hơ, chưa bao giờ lập trình cho CNTT. Chỉ có làm mấy cái BTL C++ với Database trong vòng 1 ngày. Cụ thể là google sau đó edit
Còn lập trình cơ khí thì thích hơn. Anh mới chỉ chơi VC++ với thư viện OpenGL. Nói chung là vẽ ra một mô hình nào đó rồi điều khiển nó, tính toán hình học cũng khá mệt. Có chú dùng trò này mà lừa được bao nhiêu tiền tài trợ Robocon.
Bây giờ thì mấy công ty mới ở VN nó dùng kiểu lập trình cho máy CNC ứng dụng công nghệ 3c (thiết kế, mô phỏng và điều khiển), nói chung cái này là loại cực kỳ visual nên làm khá dễ dàng, chỉ có cái là sv chẳng bao giờ được sờ tới do đắt tiền. Nhưng thông thường kỹ sư CNTT khó làm hơn mấy bác CTM vì không có cái nhìn tổng quát bằng anh cơ khí
Bọn anh chỉ code cho ba cái loại kinh tế, ngân hàng tài chính với sản xuất, kinh doanh thôi. Chứ ba cái loại máy móc, tự động hóa, ... để cho các chú làm, ai lại đi cướp cơm các chú thế :-j
Chú Pi, anh chú cũng có biết lập trình đồ họa với Bát can đâu, ngày xưa học một kỳ, anh làm đối phó thôi. Nói chung là những thứ đấy học cho biết, chứ nếu đi làm coder như anh các chú bây giờ thì hầu như ko sử dụng đâu. Chú mới biết Bát can suông thì hơi chán, nhỉ. Phải học C++ để còn biết hướng đối tượng là cái gì, class là cái gì, kế thừa là cái gì, chứ lập trình tuần tự thế nhân loại bỏ qua từ thế kỷ trước rồi. :devil:
Mr. Pitô
23-06-2007, 11:45 AM
@Anh Nothing: :)) em học Bát Can từ hồi lớp 8, giờ vẫn chỉ biết có Bát Can. Hay hôm nào anh Nothing dạy em C/C++ đi. Em cũng mù tịt lập trình đồ hoạ như anh thui, giờ chẳng nhớ cái gì về graph cả :)). Nhưng em nghĩ có nền tảng 1 ngôn ngữ chắc rùi thì chuyển sang các ngôn ngữ khác thì cũng đơn giản hơn là người mới bắt đầu học.
Nghe nói về lập trình hướng đối tượng lâu rùi mà vẫn chưa có kiến thức gì về cái này cả. Anh Nothing rỗi thì lập cái topic dạy cho anh em với.
Cheese
23-06-2007, 01:02 PM
@Anh Nothing: em học Bát Can từ hồi lớp 8, giờ vẫn chỉ biết có Bát Can. Hay hôm nào anh Nothing dạy em C/C++ đi. Em cũng mù tịt lập trình đồ hoạ như anh thui, giờ chẳng nhớ cái gì về graph cả . Nhưng em nghĩ có nền tảng 1 ngôn ngữ chắc rùi thì chuyển sang các ngôn ngữ khác thì cũng đơn giản hơn là người mới bắt đầu học.
Nghe nói về lập trình hướng đối tượng lâu rùi mà vẫn chưa có kiến thức gì về cái này cả. Anh Nothing rỗi thì lập cái topic dạy cho anh em với.
Anh ấy hình như là bận lắm, không rảnh rỗi mà lập topic dạy cho bạn Kiu đâu :nghieng:
Nghe đây này:
Anh các chú vừa dốt vừa lười, thế nên ko làm được công trình vĩ đại nào cả
Chính vì cái từ in đậm mà anh ấy lại càng bận. Bạn Kiu đi nhờ người khác dạy đi.:-j
Nhân tiện góp ý với bạn Pi, TW không thích mấy từ rùi, thui lắm, bạn Kiu là mod thì nên gương mẫu nhá.;;)
Mr. Pitô
23-06-2007, 02:21 PM
Nhân tiện góp ý với bạn Pi, TW không thích mấy từ rùi, thui lắm, bạn Kiu là mod thì nên gương mẫu nhá.
Ủa thế à, đệ tử không biết. Nếu TW không thích thì em sửa vậy, thôi không dùng mấy từ kia nữa.
(:-o thằng bé con nhà mà giỏi thế, mới nói cái mà sửa được ngay rồi ) =))
@sư phụ Cheese: sư phụ làm ơn gọi đệ tử hoặc là Pi, hoặc là Kiu thôi, cùng 1 câu, lúc đầu là Pi, lúc sau lại là Kiu =))
pacific_boy571
09-11-2007, 11:08 PM
Cha bit bac nao lap trinh ma khong dung module thi that la kho dai day. Tai sao lai co the ngoc ngech the chu? Chac la do phong cach lap trinh khac biet sao? trong khi lap trinh OOP thi dung module la phuong thuc huu hieu nat, va tranh cho ta phai go lenh. ...............
LamNguyen
29-11-2007, 09:59 AM
OOP hiện nay cũng không còn là một thuật ngữ thời thượng nữa rồi.
Một lý do: với các ngôn ngữ dạng "visual" cao như hiện nay, lập trình viên ngày càng sử dụng các đối tượng đã sẵn có nhiều hơn (trừ việc phát sinh các cấu trúc kế thừa chủ yếu cho việc mô tả dữ liệu), và cũng với việc chuẩn hóa của giao diện chiếm chủ yếu.. người ta đã sử dụng các đối tượng được gắn kèm tương đối đủ (thuộc tính, phương thức, sự kiện..)
hunter_tls
30-11-2007, 01:18 PM
@Anh Nothing: :)) em học Bát Can từ hồi lớp 8, giờ vẫn chỉ biết có Bát Can. Hay hôm nào anh Nothing dạy em C/C++ đi. Em cũng mù tịt lập trình đồ hoạ như anh thui, giờ chẳng nhớ cái gì về graph cả :)). Nhưng em nghĩ có nền tảng 1 ngôn ngữ chắc rùi thì chuyển sang các ngôn ngữ khác thì cũng đơn giản hơn là người mới bắt đầu học.
Nghe nói về lập trình hướng đối tượng lâu rùi mà vẫn chưa có kiến thức gì về cái này cả. Anh Nothing rỗi thì lập cái topic dạy cho anh em với.
Anh nhớ mày học từ năm lớp 6 từ khi mới vào trường TMN cơ mà. Hồi đó anh em ta chơi vui nhỉ.
hunter_tls
30-11-2007, 01:20 PM
Hix!! Bỏ pascal từ năm lớp 9. Giờ lên học ĐH quay lại học C thì chỉ nhớ mấy câu lệnh vào ra dữ liệu. Mấy phần nâng cao thì quên hết sạch. nhìn cấu trúc C khác với P qua'
Special One
30-11-2007, 08:35 PM
Học C chán quá, tao chẳng còn hiểu ông thầy viết cái gì trên bảng nữa rồi.!! Quả này thi Tin chắc móm!!:-S
pacific_boy571
20-05-2008, 04:30 PM
Hãy cố gắng dùng nhiều module và các Function thì chương trình nhìn nó sẽ "sảng sủa" hơn và cố một cấu trúc rõ ràng. Như thế khi chúng ta cần có chỉnh sửa gì thì sẽ rất nhanh.
Nó cũng thể tiện một tư duy mạch lạc trong lập trình đấy.
Mr. Pitô
01-06-2008, 01:08 AM
Nên lập trình theo kiểu top-down, để chương trình nó tự tuôn ra bằng cách chia nhỏ dần một bài toán lớn thành các bài toán vừa, một bài toán vừa thành các bài toán con ... đến khi nào bài toán trở nên quá đơn giản thì dừng lại.
hunter_tls
01-06-2008, 09:26 PM
Thêm các dòng chú thích!! Như thế thì mình dễ hiểu bài toán hơn!!! Ngoài ra, bố cục trình bày phải rõ ràng. Các lệnh "con" phải lùi vào so với lệnh "cha" một dấu cách. Học từng tí một thì mới thành Pro được....