Chirơng 1 Máy tin h Phương pháp luận lập trình

Một phần của tài liệu Kỹ thuật lập trình (Trang 40 - 44)

) Hiến thị thơng tin

42 Chirơng 1 Máy tin h Phương pháp luận lập trình

Khơng giống như ngơn ngữ lập trinh mức cao (high-level programming

language) như Pascal, C++, c#, Java, . . ta khơng cĩ một tập các quy tăc nào

để định nghĩa một cách chính xác ngơn ngừ nào là mã giả, ngơn ngữ nào khơng là mã giả. Mã giả thay đổi từ nhĩm lập trình này đến nhĩm lập trình khác.

Sau đây là một số đặc điểm trong các mã giả khác nhau:

- Các ký hiệu máy tính thơng thường được sử dụng cho các phép tốn số học (arithmetic operation): + là phép cộng (addition), - là

phép trừ (subtraction), * là phép nhân (multiplication) và / là phép

chia (division).

- Các tên ký hiệu (symbolic name) hoặc danh hiệu (identifier) được

dùng để biểu diễn các đại lượng được xử lý trong giải thuật.

- Các ghi chú (comment) được dùng đề giải thích cho các bước, các

thành phần của giải thuật. Các ghi chú này thường được ghi trong cặp (* . . *), cặp / * . . * / hoặc / / .

- Một số từ của ngơn ngữ tư nhiên được sử dụng làm từ khĩa (keyword)',

read, e n te r, in p u t dùng để nhập dữ liệu, w rite , o u tp u t, d is p la y , p r i n t dùng để xuất dữ liệu, compute dùng để tính tốn.

- Thụt đầu dịng (indentation) được dùng để trình bày các cấu trúc điều khiển cho dễ đọc.

Mơ tả giải thuật bằng mã giả phải rõ ràng và cho thấy luận lý của chương trình (program) thực hiện giải thuật này.

Giai thuật cĩ cẩu trúc (structured algorithm) là một giải thuật được

thiết kế bàng cách sử dụng ba cấu trúc điều khiển sau đây:

- Cấu trúc tuần tự (sequence structure): chuồi các hành động được

thực hiện một cách tuần tự, mỗi hành động được thực hiện đúng một lần.

- Cấu trúc diều kiện (conditional structure): Một hoặc nhiều hành

động khác nhau được chọn và thực hiện.

- Cấu trúc lặp (iterational structure): một hoặc nhiều hành động được

thực hiện lặp lại.

Ba cấu trúc điều khiển này rất đơn giản. Tuy nhiên, trên thực tế, bu cấu trúc điều khiển này được dùng dể mơ tủ but kỳ giủi thuật nào.

Chương 1. Máy tính - Phương pháp luận lập trình 43 Cấu trúc của một giải thuật được trình bày bằng một hình vẽ, hình này được gọi là sơ đồ cẩu trúc (structure diagram).

Sơ đồ cấu trúc cho thấy các cơng việc khác nhau phải được thực hiện và mối liên hệ giữa chúng. Sơ đồ cấu trúc đặc biệt rất hữu ích để mơ tả các giải thuật của các vấn đề rất phức tạp.

Hình 1.13. Sơ đồ cấu trúc

Vỉ dụ 1.13: Tinh chế các giải pháp để giải quyết các vấn đề ban đầu, vấn đề con 1 và vấn đề con 2 bằng mã giả.

- Vẩn đề ban đầu: Giải phương trình bậc bậc hai ax2 + bx + c = 0.

read a, b, c;

if (a = ũ)

Giải phương trình bậc nhất bx + c = 0;

else

Giải phương trình bậc hai đủ ax2 + bx -t- c = 0;

- Vấn đề con 1: Giải phương trình bậc nhất bx + c = 0, khi a = 0.

Giải pháp tịng phần là tìm nghiệm X (bậc nhất), nếu cĩ.

if (b = 0)

if (c = ũ)

write "Phương trình cĩ vơ số nghiệm";

else

write "Phương trình vơ nghiệm";

else

{

compute X = -c / b; write x;

44 Chương 1. Máy tính - Phương pháp luận lập trình

- vấn đề con 2: Giải phương trình bậc hai đủ a x 2 + b x + c = 0, khi

a ^ 0. Giải pháp từng phần là tìm nghiệm X (bậc hai), nếu cĩ.

delta = b * b - 4 * a * c ;

if (delta < 0)

write "Phương trình vơ nghiệm";

else if (delta = 0) { compute X = -b / (2 * a); write "Nghiệm kép = ", x; } else {

compute xl = (-b - sqrt(delta)) / (2 * a);

compute x2 = (-b + sqrt(delta)) / (2 * a);

write "Nghiệm xl = ", xl;

write "Nghiệm x2 = ", x2;

}

1.6.3. Xây dựng chiến lược kiểm thử

Giải thuật được dùng đe viết chương trình cho máy tính thực hiện. Ta cần phải chạy thử chương trình này với nhiều tổ hợp dữ liệu nhập khác nhau để bảo đàm chương trình luơn luơn cho ra các kết quả đúng trong mọi trường hợp.

Một tổ họp dừ liệu nhcập để chạy kiểm tra một chương trình được gọi là trường hợp kiếm thử (test-case).

Để kiểm thử một chương trinh một cách hồn tồn kỳ lưỡng, ta phải phàn loại các trường hợp kiểm thử sao cho chúng bao quát các giá trị nhập thơng thường (normal input value) và các giá trị nhập ớ ngưỡng {extreme input value) đế kiểm tra các giới hạn của chương trình. Các tổ họp đặc biệt

của dữ liệu nhập được dùng đế kiếm tra chương trình thực hiện các khía cạnh riêng biệt của vấn đề.

Lun ý ràng đổi với tất cả các trường họp kiểm thử, các kết quả mong đợi phải được xác định trước khi viết chương trình. Việc hồn thành các trường họp kiểm thử sẽ giúp cho việc kiếm tra các giải thuật và các chương trình được hiệu quả.

Ví dụ 1.14: Các trường họp kiểm thử để kiểm tra chương trình giải phương

Chương 1. Máy tính - Phương pháp luận lập trình 45

Bảng 1.2. Các trường hợp kiểm thử

Test-case a b c Kết quà mong đọi TCI 0 0 0 Phương trình cĩ vơ số nghiệm T c i 0 0 1 Phương trình bậc nhất vơ nghiệm TC3 0 1 2 Nghiệm bậc nhất X = -2 TC4 1 1 2 Phương trình bậc hai vơ nghiệm TC5 1 2 1 Nghiệm kép X = - 1

TC6 1 -3 2 Hai nghiệm x l = 1 và x2 = 2

1.6.4. Viết chưoìig trình

Các giải thuật bằng mă giả khơng thể được thực hiện trực tiếp trên máy tính.

Q trình chuyển giải thuật bằng mã giả thành chương trình bằng ngơn ngữ lập trì nil được gọi là viêt chương trình hoặc lập trình {programming, coding).

Nhiều ngơn ngữ lập trình đều cĩ các giới hạn khi thực hiện các chương trinh trên máy tính. Do đĩ, việc lập trình sẽ gặp khĩ khăn khi các giới hạn này xảy ra. Ví dụ, trong tốn học thì sổ nguyên {integer number) cĩ thể rất lớn, nhưng nhiều phần mềm ngơn ngữ lập trình chứa số nguyên trong 4 byte và cĩ giá trị từ 0 đến 4.294.967.295 (sổ nguyên khơng dấu).

Ta phải chọn một phần mềm ngơn ngữ lập trinh thích hợp với giải

thuật đã thiết kế để viết chương trình.

Hiện tại cĩ nhiều ngơn ngữ lập trình mức cao {high-level programming

language) như Pascal, C++, c#, Java, ... Mỗi ngơn ngữ lập trình đều cĩ các

đặc điểm riêng biệt.

Sau khi ta chọn ngơn ngừ lập trình, việc viết chương trình phải bảo đảm chương trình chạy đủng {correct), dễ đọc {readable) và dễ hiểu {understandable).

Các nguyên tắc viết chương trình là:

- Chương trình nên cĩ cấu trúc tốt {well-structured).

- Mỗi chương trình nên được lập tài liệu {program documentation). - Chương trình nên được định dạng (formatted).

46 Chương 1. Máy tính - Phương pháp luận lập trình

a. Chưong trình cĩ cấu trúc tốt

- Sử dụng cách tiếp cận từ trên xuống (top-down approach) khi phát

triển chương trình để giải quyết một vấn đề phức tạp. Phân chia vấn đề ban đầu thành nhiều vấn đề con ngày càng đon giản hơn. Sau đĩ, ta viết các đơn thể chương trình riêng biệt để giải quyết các vấn đề con này. Cách làm này được gọi là lập trình đơn thê (modular programming).

- Cố gắng đạt được tính đon giản (simplicity) và tính trong sáng {clarity). Nên tránh kiểu lập trình thơng minh chỉ nhằm mục đích

chứng minh sự khéo léo của người lập trình hoặc viết đoạn mã lệnh để chạy nhanh hơn một chút.

Một phần của tài liệu Kỹ thuật lập trình (Trang 40 - 44)

Tải bản đầy đủ (PDF)

(49 trang)