Cách để Viết mã giả

Bài viết wikiHow này hướng dẫn bạn cách viết văn bản mã giả (pseudocode) cho chương trình máy tính của mình. Nói đơn giản thì viết mã giả là tạo ra bản thảo ngôn ngữ không-phải-lập-trình để nêu rõ ý định code của bạn.

Phần 1 trong 3: Nắm vững nguyên tắc cơ bản của mã giảSửa đổi

  1. 1
    Biết mã giả là gì. Mã giả là bản phác thảo code nêu rõ từng bước mà bạn có thể dần chuyển đổi thành ngôn ngữ lập trình. Nhiều lập trình viên sử dụng mã giả để lên kế hoạch cho function (hàm) của thuật toán trước khi thiết lập chúng thành tác vụ code mang tính chuyên môn hơn.

    Mã giả đóng vai trò như bản hướng dẫn không chính thống, là một công cụ hỗ trợ cho việc nghĩ ra hướng giải quyết vấn đề của chương trình, và cũng là một công cụ giao tiếp có thể giúp bạn trình bày ý tưởng của mình với những người khác.

  2. 2
    Hiểu lý do khiến mã giả hữu ích. Mã giả được sử dụng để minh họa cho cách hoạt động của thuật toán máy tính. Coder (những người viết code) thường dùng mã giả làm một bước trung gian trong lập trình để chuyển từ giai đoạn lên kế hoạch ban đầu sang giai đoạn viết code thật có thể thực thi. Một số coder khác sử dụng mã giả cho những mục đích sau:
    • Mô tả rằng thuật toán sẽ hoạt động như thế nào. Mã giả có thể minh họa rằng một hàm tạo (construct), cơ chế hoặc kỹ thuật nào đó có thể hoặc bắt buộc phải xuất hiện ở chỗ nào đó trong chương trình.
    • Giải thích quy trình điện toán với những người dùng có trình độ chuyên môn thấp hơn. Máy tính cần có cú pháp nhập vô cùng chặt chẽ để chạy chương trình, nhưng con người (đặc biệt là những người không phải là lập trình viên) có thể sẽ cảm thấy dễ dàng hơn khi tìm hiểu một thứ ngôn ngữ linh hoạt, mạch lạc, cho thấy mục đích của từng dòng code.
    • Thiết kế code cho cả nhóm. Các kỹ sư phần mềm có trình độ cao thường chèn mã giả vào những bản thiết kế của mình để hỗ trợ giải quyết vấn đề phức tạp mà họ nhận thấy rằng nhiều lập trình viên của mình đang gặp phải. Nếu đang phát triển chương trình cùng với các coder khác, bạn có thể nhận thấy rằng mã giả giúp những ý định của bạn trở nên rõ ràng hơn.
  3. 3
    Nhớ rằng mã giả mang tính chủ quan và không chính thống. Không có cú pháp cố định nào mà bạn buộc phải sử dụng khi viết mã giả, nhưng thường thì bạn sẽ có tác phong chuyên nghiệp hơn khi dùng các cấu trúc mã giả tiêu chuẩn mà những lập trình viên khác có thể dễ dàng hiểu được. Nếu bạn đang tự code dự án của mình, điều quan trọng nhất là mã giả hỗ trợ bạn sắp xếp ý tưởng và thực hiện kế hoạch.
    • Nếu bạn đang hợp tác với những người khác trong cùng một dự án — bất kể đó là đồng nghiệp, lập trình viên hậu bối, hay cộng tác viên không chuyên về kỹ thuật — điều quan trọng là bạn phải sử dụng ít nhất một số cấu trúc tiêu chuẩn để mọi người có thể dễ dàng hiểu được ý định của bạn.
    • Nếu đang theo học khóa lập trình tại trường đại học, hội trại code hoặc ở công ty, bạn có thể sẽ phải làm bài kiểm tra về "tiêu chuẩn" mã giả đã được dạy. Tiêu chuẩn này thường sẽ có sự khác biệt tùy thuộc vào cơ sở giáo dục và giáo viên.

    Minh bạch là mục tiêu hàng đầu của mã giả, có thể sẽ hữu ích nếu bạn làm việc theo các quy ước lập trình được chấp thuận. Khi phát triển mã giả thành code thật, bạn cần chuyển đổi mã giả sang ngôn ngữ lập trình – thế nên nó có thể giúp bạn định hình bản phác thảo trong đầu.

  4. 4
    Tập trung vào mục đích chính của mã giả. Bạn có thể dễ dàng quay trở lại viết code một khi đã nắm rõ mục đích của mình. Việc nhớ kỹ mục đích của mã giả — giải thích xem từng dòng của chương trình có tác dụng gì — giúp bạn luôn đi đúng hướng trong quá trình tạo ra văn bản mã giả.
    Advertisement

Phần 2 trong 3: Viết mã giả tốtSửa đổi

  1. 1
    Sử dụng trình chỉnh sửa văn bản thuần túy. Dù có một số thứ phức tạp hơn, ví dụ như trình xử lý văn bản Microsoft Word hoặc một chương trình tương tự giúp tạo ra văn bản rich-text (giàu tính chất), nhưng mã giả nên được định dạng ở mức tối thiểu để lúc nào cũng đơn giản.

    Trình chỉnh sửa văn bản thuần túy bao gồm Notepad (trên Windows) and TextEdit (trên Mac).

  2. 2
    Bắt đầu bằng cách ghi lại mục đích của dòng lệnh. Việc dành một hoặc hai dòng để trình bày mục đích của dòng code giúp định hình phần còn lại của văn bản, đồng thời giúp bạn đỡ phải giải thích tính năng của chương trình với từng người mà bạn muốn giới thiệu mã giả.
  3. 3
    Chỉ viết một câu lệnh mỗi dòng. Từng câu lệnh trong mã giả của bạn chỉ nên thực hiện một hành động cho máy tính. Thông thường, nếu danh sách tác vụ được lập chuẩn xác thì mỗi tác vụ sẽ tương ứng với một dòng mã giả. Bạn nên cân nhắc viết ra danh sách tác vụ của mình rồi chuyển danh sách đó thành mã giả, rồi từ từ phát triển mã giả đó thành dòng code thật mà máy tính có thể hiểu được.[1]
  4. 4
    Sử dụng khoảng trắng và thụt lề một cách hiệu quả. Việc chèn khoảng trắng giữa "các khối" văn bản giúp từng phần khác nhau của mã giả nằm tách biệt, và việc thụt lề từng khối báo hiệu rằng phần mã giả đó là thông tin chi tiết của đoạn mã giả bị thụt dòng ít hơn.
    • Ví dụ: Phần mã giả nói về việc nhập số nên nằm trong cùng một "khối", còn phần tiếp theo (chẳng hạn như phần nói về kết quả) nên nằm trong một khối khác.
  5. 5
    Viết hoa các từ khóa chính nếu cần. Tùy thuộc vào yêu cầu mã giả hoặc môi trường mà bạn đang xuất bản mã giả của mình, có thể bạn sẽ cần viết hoa các câu lệnh được giữ lại trong code thật.
    • Ví dụ: Nếu sử dụng từ khóa "if" và "then" trong mã giả, bạn có thể sẽ muốn viết hoa thành "IF" và "THEN", chẳng hạn như viết là "IF input number THEN output result" (IF nhập số THEN kết quả đầu ra).
  6. 6
    Viết bằng thuật ngữ đơn giản. Nhớ rằng bạn đang viết để giải thích rằng dự án sẽ làm gì chứ không đơn thuần là tóm tắt code. Điều này đặc biệt quan trọng khi bạn đang viết mã giả để demo cho khách hàng không biết gì về code, hoặc trình bày dự án cho lập trình viên mới vào nghề.[2]

    Thậm chí, bạn có thể còn muốn loại bỏ hết câu lệnh code và chỉ định nghĩa từng dòng lệnh bằng ngôn ngữ đơn giản. Ví dụ: Thay vì viết "if input is odd, output 'Y'" (if đầu vào là lẻ, đầu ra là 'Y') thì viết "if user enters an odd number, display 'Y'" (if người dùng nhập số lẻ, hiển thị 'Y').

  7. 7
    Giữ đúng trình tự của mã giả. Dù ngôn ngữ sử dụng để chỉnh sửa mã giả của bạn nên đơn giản, bạn vẫn cần giữ đúng trình tự của mã giả để phục vụ cho mục đích thực thi.
  8. 8
    Không để người khác phải đoán ý của bạn. Mọi chuyện đang diễn ra trong câu lệnh cần được mô tả một cách hoàn chỉnh. Phải nói rằng câu lệnh mã giả khá giống với câu khẳng định trong tiếng Anh thông thường. Mã giả thường không sử dụng các biến (variable) mà sẽ mô tả xem chương trình sẽ làm gì với những đối tượng gần với thế giới thực như số tài khoản, tên, hoặc số lần giao dịch.[3]
  9. 9
    Dùng cấu trúc lập trình tiêu chuẩn. Dù không có tiêu chuẩn cụ thể nào cho mã giả, nếu bạn sử dụng cấu trúc của các ngôn ngữ lập trình đã có (tuần tự) thì sẽ dễ dàng hơn cho những lập trình viên khác khi cố gắng hiểu các bước của bạn. Hãy sử dụng các thuật ngữ như "if" (nếu), "then" (thì), "while" (trong khi), "else" (nếu không thì), và "loop" (vòng lặp) giống trong ngôn ngữ lập trình ưa thích của bạn. Xem xét cấu trúc sau đây:
    • if CONDITION then INSTRUCTION — Nghĩa là câu lệnh sẽ chỉ được thực thi nếu một điều kiện nào đó là đúng (true). "Instruction" trong trường hợp này là một bước mà chương trình sẽ thực hiện, còn "condition" nghĩa là dữ liệu phải thỏa mãn điều kiện nào đấy thì chương trình mới thực hiện hành động.
    • while CONDITION do INSTRUCTION — Nghĩa là câu lệnh sẽ được thực hiện lặp đi lặp lại cho đến khi điều kiện không còn đúng nữa.
    • do INSTRUCTION while CONDITION — Rất giống với "while CONDITION do INSTRUCTION". Trong trường hợp này, điều kiện sẽ được kiểm tra trước khi thực hiện câu lệnh, còn trong trường hợp kia, câu lệnh sẽ được thực thi trước. Như vậy, lúc đó câu lệnh sẽ được thực hiện ít nhất một lần.
    • function NAME (ARGUMENTS): INSTRUCTION — Nghĩa là mỗi khi một cái name nào đó được sử dụng trong code thì sẽ thay thế cho một câu lệnh cụ thể. "Arguments" là danh sách các biến (variable) mà bạn có thể sử dụng để làm rõ câu lệnh.
  10. 10
    Sắp xếp các phần mã giả của bạn. Nếu thấy rằng có nhiều phần mã giả lớn định nghĩa những phần mã giả khác trong cùng khối, bạn có thể sẽ muốn sử dụng dấu ngoặc hoặc một số ký hiệu nhận dạng khác cho dễ nhìn.
    • Dấu ngoặc—bao gồm cả dấu ngoặc vuông tiêu chuẩn (chẳng hạn như [code]) và dấu ngoặc nhọn (ví dụ như {code})—đều có thể giúp bao hàm đoạn mã giả dài.
    • Khi code, bạn có thể thêm bình luận (comment) bằng cách gõ "//" ở bên trái dòng bình luận (ví dụ như //Đây là bước tạm thời.). Bạn có thể sử dụng phương pháp này khi viết mã giả để viết những dòng bình luận không thể cho vào đoạn code.
  11. 11
    Kiểm tra lại mã giả của bạn xem đã dễ đọc và rõ ràng chưa. Bạn nên trả lời được các câu hỏi dưới đây sau khi hoàn thành văn bản mã giả của mình:
    • Liệu ai đó chưa biết đến câu lệnh này có thể hiểu được mã giả của bạn?
    • Mã giả có được viết chuẩn chỉnh để dễ dàng chuyển hóa thành ngôn ngữ lập trình?
    • Mã giả đã mô tả câu lệnh hoàn chỉnh, không bỏ sót thứ gì hay chưa?
    • Liệu người khác có hiểu rõ từng tên đối tượng được sử dụng trong mã giả?
    • Nếu nhận thấy rằng một phần trong mã giả cần được sửa đổi hoặc chưa nêu rõ một bước nào đó mà người khác có thể quên, bạn cần trở lại và bổ sung thông tin cần thiết.
    Advertisement

Phần 3 trong 3: Ví dụ về tạo văn bản mã giảSửa đổi

  1. 1
    Mở trình chỉnh sửa văn bản thuần túy. Bạn có thể sử dụng chương trình mặc định Notepad (trên Windows) hoặc TextEdit (trên Mac) nếu không muốn cài đặt chương trình mới.
  2. 2
    Định nghĩa chương trình của bạn. Dù không quá cần thiết, việc viết một hai dòng ở phía trên cùng văn bản sẽ giúp phân biệt với phần thụt lề đầu tiên của chương trình:
    Chương trình này sẽ yêu cầu phương án lựa chọn từ phía người dùng. Nếu phương án đó phù hợp, nội dung hồi đáp sẽ được hiển thị; nếu không phù hợp thì sẽ hiện thông báo.
    
  3. 3
    Viết đoạn mở đầu. Câu lệnh đầu tiên của bạn—thứ đầu tiên mà chương trình sẽ thực hiện khi chạy—nên là dòng đầu tiên:
    print greeting (in ra câu chào)
            "Hello stranger!" (Chào bạn!)
    
  4. 4
    Thêm dòng tiếp theo. Thiết lập khoảng trống giữa dòng vừa viết và dòng tiếp theo bằng cách gõ Enter, sau đó viết dòng code tiếp theo. Trong ví dụ này, người dùng sẽ nhìn thấy hộp thoại sau đây:
    print prompt (in ra hộp thoại)
            press "Enter" to continue (nhấn "Enter" để tiếp tục)
    <người dùng nhấn "Enter">
    
  5. 5
    Gọi hành động. Trong ví dụ này, người dùng sẽ nhìn thấy câu hỏi thăm:
    print call-to-action (in ra kêu gọi hành động)
            "How are you?" (Bạn khỏe không?)
    
  6. 6
    Hiển thị cho người dùng thấy danh sách câu trả lời. Trong ví dụ này, sau khi nhấn Enter thêm một lần nữa, người dùng sẽ nhìn thấy danh sách câu trả lời dưới đây:
    display possible responses (hiển thị các câu trả lời) 
            "1. Fine." (khỏe)
            "2. Great!" (rất khỏe!)
            "3. Not good." (không khỏe)
    
  7. 7
    Yêu cầu người dùng thực hiện hành động. Đây là lúc chương trình yêu cầu người dùng nhập câu trả lời:
    print request for input (in ra yêu cầu nhập) 
            "Enter the number that best describes you:" (nhập số mà bạn thấy phù hợp nhất)
    
  8. 8
    Tạo câu lệnh "if" cho việc nhập của người dùng. Vì có nhiều câu trả lời mà người dùng có thể lựa chọn, bạn có thể sẽ muốn thêm nhiều kết quả dựa theo câu trả lời mà người dùng đã lựa chọn:
    if "1" (nếu chọn "1")
            print response (in ra câu đáp)
                    "Dandy!" (Khỏe là tốt rồi!)
     
    if "2" (nếu chọn "2")
            print response (in ra câu đáp)
                    "Fantastic!" (Rất khỏe thì quá tốt rồi!)
     
    if "3" (nếu chọn "3")
            print response (in ra câu đáp)
                    "Lighten up, buttercup!" (Thư giãn hơn chút cho khỏe đi bạn hiền!)
    
  9. 9
    Thêm dòng báo lỗi. Trong trường hợp người dùng không lựa chọn đúng câu trả lời, bạn có thể hiển thị dòng báo lỗi:
    if input isn't recognized (nếu không nhận diện được câu trả lời của người dùng)
            print response (in ra câu đáp)
                    "You don't follow instructions very well, do you?" (Bạn chưa làm theo đúng hướng dẫn phải không?)
    
  10. 10
    Thêm các phần khác của chương trình. Xem kỹ lại văn bản của bạn để bổ sung chi tiết nhằm đảm bảo rằng cả bạn và bất cứ ai đọc văn bản cũng đều hiểu được ý nghĩa. Sau khi làm theo phương pháp trên đây, văn bản mã giả hoàn thiện của bạn sẽ có dạng như sau:
    Chương trình này yêu cầu người dùng nhập số. Nếu số đó khớp với phương án trả lời có sẵn, câu đáp lại sẽ được hiển thị; nếu không khớp thì hiện thông báo.
     
    print câu chào
            "Chào bạn!"
     
    print hộp thoại
            Nhấn "Enter" để tiếp tục
    <Sau khi người dùng nhấn "Enter">
     
    Print câu hỏi thăm và kêu gọi hành động
            "Hôm nay bạn khỏe không?"
     
    display các phương án trả lời có thể lựa chọn
            "1. Khỏe."
            "2. Rất khỏe!"
            "3. Không khỏe."
     
    print yêu cầu input 
            "Nhập số phù hợp nhất với bạn:"
     
    if nhập "1"
            print câu đáp
                    "Khỏe thì tốt rồi!"
    if nhập "2"
            print câu đáp
                    "Rất khỏe thì quá tốt rồi!"
    if nhập "3"
            print câu đáp
                    "Thư giãn chút cho khỏe đi bạn hiền!"
     
    if không thể nhận diện input của người dùng
            print câu đáp
                    "Bạn chưa làm theo đúng hướng dẫn phải không?"
    
  11. 11
    Lưu lại văn bản của bạn. Nhấn Ctrl+S (trên Windows) hoặc Command+S ( trên Mac), gõ tên, sau đó nhấp Save để lưu.
    Advertisement

Lời khuyênSửa đổi

  • Mã giả là thứ tối ưu đối với các chương trình phức tạp có độ dài từ hàng trăm đến hàng nghìn dòng lệnh.

Cảnh báoSửa đổi

  • Mã giả không thể thay thế cho mã thật khi tạo chương trình. Mã giả chỉ có thể được sử dụng để tạo ra văn bản tham khảo nhằm biết rằng đoạn code có tác dụng gì.

Bài viết này đã giúp ích cho bạn?

Không