Phong cách lập trình

7 844 11
Phong cách lập trình

Đang tải... (xem toàn văn)

Thông tin tài liệu

Phong cách lập trình

Quy định về Phong cách lập trìnhLê Sỹ Quang - Lê Sỹ VinhPhần I: Trình bày tên hằng tên biến và tổng quan chươngtrình.I. Giới thiệuPhong cách lập trình của một lậptrình viên cũng giống như phong cách sống của một con người. Có lẽ song song với việc học các kiến thứcphục vụ cho công việc lập trình bạn phải học và rèn luyện cho bản thân mình mộtphong cách lập trình tốt. Việc học và rèn luyện một phong cách lập trình tốtnên tiến hành ngay từ khi bạn mới bắt tay vào học lập trình. Một phong cách lậptrình tốt sẽ giúp bạn tạo ra một chương trình dễ đọc, dễ hiểu, dễ tìm và sửalỗi, dễ nhận thấy cấu trúc bậc cao của chương trình. Những điều này sẽ thuậnlợi cho cả người viết chương trình, người đánh giá chương trình, và người bảotrì chương trình. Sau đây là một số những quy định về một phong cách lập trìnhtốt được đúc kết từ kinh nghiệm của các chuyên gia trên thế giới về lập trình.II. Cách đặt tên biến và tên hằngKhi mới học lập trình, chúng tathường cảm thấy việc đặt tên biến và tên hằng rất dễ dàng, bởi vì những chươngtrình đầu tiên thường ngắn, đơn giản, dễ hiểu và được lập trình trong mộtkhoảng thời gian ngắn liên tục. Nhưng sau khi lượng kiến thức đã nhiều, cácchương trình bắt đầu dài ra, phức tạp hơn, số lượng biến và hằng cần dùng ngày càngnhiều, đặc biệt là một chương trình có thể được lập trình trong một khoảng thờigian dài, có thể là vài ngày, hoặc vài tháng. Thậm chí một chương trình donhiều người lập trình, mỗi người làm một phần nào đó. Khi đó việc đặt tên biếnvà tên hằng sẽ trở lên khó khăn hơn nhiều. Bạn phải biết cách đặt tên biến vàtên hằng sao cho chúng mang ý nghĩa rõ dàng vàcó tính gợi cảm (lập trình viên có thể nhìn vào tên biến và tên hằng vàhiểu được chức năng và tác dụng của chúng).Sau đây là một số quy định về cách đặt tên biến và tên hằng:1. Tên biến, tên hằng phải đượcđặt bởi một dãy kí tự có nghĩaVí dụ:- var pp: char; Cách đặt tên biến như vậy là không tốt, biến pp khôngmang ý nghĩa và không gợi nhớ cho lập trình viên.- var persion_position: char;Cách đặt tên biến như vậy là tốt, tênbiến mang ý nghĩa rõ ràng đồngthời gợi nhớ cho lập trình viên.2. Tên biến không nên đặt bằng toàn kí tự in hoa Ví dụ: var PERSON_POSITION: char;Việc đặt tên biến như thế này là không tốt, bởi nếu ta coi một chương trình nhưmột văn bản thì trong một văn bản có quá nhiều chữ cái in hoa sẽ làm cho ngườiđọc khó chịu và không nhận ra những chỗ quan trọng trong văn bản.3. Tên hằng nên đặt bằng mộtchuỗi kí tự in hoaTrong một chương trình, số lượngcác hằng xuất hiện không nhiều, vậy nếu chúng ta đặt tên hằng là chuỗi kí tự inhoa sẽ phân biệt được chúng với tên biến.4. Các từ khoá nên dùng toàn chữcái thườngVí dụ: for, while, do, begin, end. Như chúng ta đã biết trong một sốngôn ngữ thì bộ chương trình dịch không phân biệt chữ cái in hoa và chữ cái inthường (ví dụ trong ngôn ngữ lập trình Pascal). Nhưng trong một số ngôn ngữ lậptrình khác thì chữ các in hoa và chữ cái in thường được coi là khác nhau. Tronghầu hết các ngôn ngữ lập trình này, các từ khoá được viết dưới dạng chữ cái inthường (ví dụ trong ngôn ngữ lập trình C++). Vậy một thói quen về việc dùng cáctừ khoá bằng toàn chữ cái in thường thì sẽ dễ dàng cho chúng ta hơn rất nhiềukhi chúng ta học một ngôn ngữ lập trình mới.5. Cách đặt tên biến dàiKhi một chương trình dài và phứctạp, đặc biệt là nhiều người viết thì lượng biến cần phải sử dụng là rất lớn.Để tránh sự nhầm lẫn giữa các biến khác nhau thì các lập trình viên bắt buộcphải đặt các tên biến dài (thường từ 2 từ trở lên). Đối với các tên biến dài,ta có thể dùng chữ cái in hoa hoặc dấu gạch chân dưới để phân biệt giữa các từkhác nhau. Ví dụ: - person_position hoặcpersonPosition: Là cách đặt tên biến tốt. - personposition: Là cáchđặt tên biến không tốt.6. Cách đặt tên hàmCó nhiều cách đặt tên hàm khácnhau. Cách đặt tên hàm cũng giống như cách đặt tên biến. Nhưng khi đặt tên chomột hàm thì cần có thêm một vài chú ý về cấu trúc ngữ pháp của tên hàm. Mộttrong những cách đặt phổ biến trong việc đặt tên hàm là sử dụng cấu trúc ngữpháp Độngtừ + Cụm danh từ.Ví dụ:- function search_table; - function is_person;III. Trình bày tổng quan củachương trình1. Tổng quan chương trìnhChương trình phải được lùi đầudòng một cách thích hợp. Các câu lệnh �bên trong� các vòng lặp (ví dụ: for,while, repeate), các lệnh điều kiện rẽ nhánh (ví dụ: if, case) và trong cặp�begin . end� phải được lùi thêm một bậc. Bên cạnh đó các câu lện khai báobiến cũng nên lùi vào một bậc. Việc lùi vào một bậc có thể được thực hiện bằngmột số dấu cách (space) hoặc dấu tab.Việc lùi vào một cách thích hợp các dòng lệnh sẽ cho lập trình viên thấyđược cấu trúc khối của chương trình, điều đó giúp cho việc tìm lỗi và sửa lỗidễ dàng hơn.Vídụ1: Chương trình viết có cấu trúc tốt.function do_example;var i:integer;Begin for i:=1 to n do begin if (i mod 2 = 0) then write(�số chẵn�) else write(�số lẻ�); end;End;Ví dụ 2: Chương trình viết có cấutrúc không tốtfunctiondo_another_example;var i: integer;beginfori:=1 to n do begin if (i mod 2 = 0) then write(�số chẵn�)else write(�sốlẻ�);end; end;2. Đoạn chương trình và dòng lệnhTrong một file chương trìnhthường gồm nhiều hàm, trong một hàm có thể lại gồm nhiều đoạn nhỏ. Mỗi đoạn nhỏnên được tách nhau ra bởi các dòng trống.Trong một đoạn nhỏ ý nghĩa của các dòng lệnh nên tương đối giống nhau vàphù hợp với nhau.Trong chương trình mỗi dòng chỉnên viết một dòng lệnh (các bộ chương trình dịch của các ngôn ngữ thường bỏ quatất cả các dấu trống, vì vậy việc bạn cố viết một chương trình với số lượngdòng ít bằng cách đẩy nhiều dòng lệnh trên cùng một dòng là vô nghĩa). Mỗi dònglệnh trên một dòng sẽ giúp bạn dễ dàng trong việc gỡ rối chương trình.IV. Bài tậpTrênmặt phẳng toạ độ cho 2 hình chữ nhật có các cạnh song song với hai trục toạ độ.Hình chữ nhật thứ nhất được biếu diễn bởi hai cặp toạ độ đối tâm trái dưới vàphải trên là (x1,y1) và (x2,y2). Hìnhchữ nhật thứ hai được biếu diễn bởi hai cặp toạ độ đối tâm trái dưới và phảitrên là (x3,y3) và (x4,y4). Hãy viết một chương trình với số phép toán là ítnhất có thể được để kiểm tra xem hai hình chữ nhật trên có diện tích chung vớinhau hay không (diện tích chung lớn hơn 0). Quy định về phong cách lập trìnhLê Sỹ Quang - Lê Sỹ Vinh1. Mỗichương trình phải có một phần chú thích chung giới thiệu mục tiêu của chươngtrình. Điều đó sẽ giúp bạn dễ dàng nâng cấp và bảo trì chương trình trong thờigian sau này. Phần chú thích của chương trình như một phát biểu ngắn ngọn vềbài toán cần giải quyết.Ví dụ:Input:Một dãy số A có độ dài N.Output:Dãy số A sau khi đã được sắp xếp. 2. Mỗi chươngtrình con cần phải có chú thích về mục đích của chương trình con đó, những chúthích làm cho người đọc hiểu được mục đích của chương trình con chứ không phảigiúp người đọc hiểu được chương trình con đó được thực hiện như thế nào.Vídụ:Chú thích đúng: mô tả mục đích của hàm{hàm tinh_tong_2_sonhận vào 2 số nguyên, trả kết quả ra là một số nguyên bằng tổng của 2 số nguyênnhận vào}functiontinh_tong_2_so(giatri1, giatri2 : integer) : integer;begintinh_tong_2_so:=giatri1 + giatri2;end;Chú thích sai: mô tả hoạt động của hàm{hàm tinh_tong_2_solấy giatri1 cộng với giatri2}functiontinh_tong_2_so(giatri1, giatri2 : integer) : integer;begintinh_tong_2_so:=giatri1 + giatri2;end;3. Đốivới các cấu trúc dữ liệu quan trọng phải có chú thích và về mục đích của cấutrúc đó và mỗi liên hệ của nó với các phần dữ liệu khác. Vấn đề chú thích chonhững cấu trúc dữ liệu đặc biệt cần thiết cho lập trình hướng chức năng. Vídụ:tuoi: array[1 max]of integer; { mang day_so lưu tuổi của tất cả các sinh viên trong trường).4. Mỗichương trình con cần có chú thích về ý nghĩa cho từng tham số của chương trình.Vídụ:{ diem1: chua toa do dinh thunhat cua tam giac, diem2:chua toa do dinh thu hai cua tam giac, diem3:chua toa do dinh thu ba cua tam giac}procedure tinh_dien_tich_tamgiac(diem1, diem2, diem3 : kieu_diem);5.Những đoạn chương trình phức tạp và khó hiểu, cần chú thích cẩn thận. Lời chúthích sẽ liên quan đến nội dung của đoạn chương trình đó.Vídụ{chương trình con dưới đây sẽ nhận vào một danh sách các số nguyên có độ dài làN, kết quả trả ra là một bộ gồm 3 số dau,cuoi, tong cho biết đoạn con liên tiếp bắt đầu từ vị trí dauvà kết thúc ở vị trí cuoi có giá trị tổng bằng tong,đó là đoạn con liên tiếp trong dãy số trên có tổng lớn nhất}proceduretim_doan_con_dai_nhat(N : integer, A : kieu_mang_1_chieu, Var dau, cuoi, tong :integer);begin{ dùnghai vòng for để liệt kê tất cả các đoạn con liên tiếp của dãy số, mỗi đoạncon bắt đầu từ vị trí firstvà kết thúc ở vị trí last}forfirst:=1 to N do forlast:=first to N dobegin end;end;6. Đốivới mỗi chương trình con nên liệt kê điều kiện trước và điều kiện sau củachúng. Vídụ:{điềukiện trước: so_chia phải có giá trị khác không, 2 giá trị đưa vào phải là 2số nguyên.điều kiện sau: Phải tính tích của hai số với độ chính xác là 1/10000}functiontinh_tich_2_so(so_bi_chia, so_chia : integer) : real; 7. Nêncó ít nhất một dòng trống (hoặc một dòng kẻ) trước mỗi chương trình con để táchbiệt nhưng chương trình con, điều này sẽ giúp cho ta phân biệt được các chươngtrình con khác nhau.Vídụ:functiontinh_tong_2_so(giatri1, giatri2 : real) : real;begintinh_tong_2_so:=giatri1 + giatri2;end;{----------------------------------------------------------------------------------------}function tinh_tich_2_so(giatri1, giatri2 : real) :real;begintinh_tich_2_so:=giatri1 * giatri2;end;Lê Sỹ Quang - Lê Sỹ Vinh . Phong cách lập trìnhLê Sỹ Quang - Lê Sỹ VinhPhần I: Trình bày tên hằng tên biến và tổng quan chươngtrình.I. Giới thiệuPhong cách lập trình của một lậptrình. mộtphong cách lập trình tốt. Việc học và rèn luyện một phong cách lập trình tốtnên tiến hành ngay từ khi bạn mới bắt tay vào học lập trình. Một phong cách

Ngày đăng: 11/09/2012, 08:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan