วันอังคารที่ 22 สิงหาคม พ.ศ. 2560

Ref : https://sites.google.com/site/programmingm42/-rhas-theiym-psuedo-code




การเขียนรหัสเทียม
    
       

รหัสเทียม (Pseudocode) คือ การเขียนโปรแกรมในรูปแบบภาษาอังกฤษที่มีขั้นตอนและรูปแบบแน่นอนกะทัดรัด และมองดูคล้ายภาษาระดับสูงที่ใช้กับเครื่องคอมพิวเตอร์ซึ่งไม่เจาะจงภาษาใดภาษาหนึ่ง

ประโยชน์ของซูโดโค้ด

            • เป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมแต่ละโปรแกรม
            • เป็นต้นแบบในการทบทวน ปรับปรุงแก้ไข และพัฒนาโปรแกรมของโปรแกรมเมอร์ และนักวิเคราะห์ระบบ
            • เป็นตัวกำหนดงานเขียนโปรแกรม เพื่อให้โปรแกรมเมอร์นำไปพัฒนาเป็นโปรแกรมคอมพิวเตอร์ เพื่อสั่งให้            คอมพิวเตอร์ทำงานตามกระบวนการที่ได้จำลองกระบวนการจริงไว้ในซูโดโค้ด

วิธีการเขียนซูโดโค้ด

            • ประโยคคำสั่ง (Statement) จะอยูในรูปแบบของภาษาอังกฤษอย่างง่าย
            • ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
            • ควรใช้ย่อหน้า เพื่อแยกคำเฉพาะ (Keywords)  ได้ชัดเจน รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งช่วยให้อ่านโค้ดได้ง่าย
            • แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงลาง โดยมีทางเข้าเพียงทางเดียว และมีทางออกทางเดียวเท่านั้น
            • กลุ่มของประโยคคำสั่งต่างๆ อาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องมีการกำหนดชื่่อของโมดูลด้วย เพื่อให้สามารถเรียกใช้งานโมดูลนั้นได้

ตัวอย่างการเขียนรหัสเทียม Pseudo Code

            Algorithm Problem_1
            Variables : mLoop, Sum, testScore, average
            Begin
                    Input mLoop
                    Sum = 0
                    For I = 1 to mLoop
                            Input testScore
                            Sum = Sum + testScore
                    Next
                    average = Sum / mLoop
                    Print average
            End Problem_1


รูปแบบการเขียน Pseudo Code


        1. การกำหนดค่า และการคำนวณ
                name = expression

                name คือ ชื่อตัวแปรที่ใช้สำหรับเก็บค่า
                expression คือ ค่าข้อมูลหรือนิพจน์

ตัวอย่าง
        salary = 1000
        overTime = 2500
        tax = 125
        Income = salary + overTime - tag

        
        2. การอ่าน/รับข้อมูล
                การอ่านข้อมูลสามารถใช้คำสั่ง READ, INPUT หรือ GET ได้ โดย
                        Read variables_1 ,variables_2, variables_3
                        Input variables_1 ,variables_2, variables_3
                        Get variables_1 ,variables_2, variables_3

                READ ใช้สำหรับการอ่านค่าที่มีอยู่แล้ว มาเก็บไว้ในตัวแปร เช่น การอ่านข้อมูลจากไฟล์ โดยจะทำงานร่วมกับ OPEN (การเปิดไฟล์)
                INPUT และ GET ใช้สาำหรับการรับค่าข้อมูลผ่านทางแป้นพิมพ์
                Variable คือ ตัวแปรที่ใช้เก็บข้อมูลที่อ่านหรือรับเข้ามา ซึ่งสามารถกำหนดได้ ตามจำนวนตัวแปรที่ต้องการ โดยใช้เครื่องหมาย “,” คั่นระหว่างชื่อตัวแปร

ตัวอย่าง
        Input a, b, c
        Answer = a + b + c

        Get current_date
        expire_date = current_date + 120
        
        Open student_file
        Read Id, Name, Address, Sex

        3. การแสดงผลข้อมูล
                การแสดงผลข้อมูลสามารถใช้คำสั่ง Print , Prompt, Write
                    print  variables_1 ,variables_2, variables_3
                    prompt variables_1 ,variables_2, variables_3
                    write variables_1 ,variables_2, variables_3

                PRINT และ PROMPT ใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความ

                WRITE ใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล

ตัวอย่าง
        Prompt " Enter 3 Value ==> "
        Input Value1 , Value2 , Value3
        Sum = Value1 + Value2 + Value3
        Print Sum

        Open Student _file
        Input Id, Name, Address, Sex
        Write Id, Name, Address, Sex

        4. การกำหนดเงื่อนไข
                If < condition > Then
                        Activity 1
                Else 
                        Activity 2
                Endif

                <condition> คือ เงื่อนไขที่กำหนด ซึ่งหากเงื่อนไขเป็นจริง จะทำกิจกรรมหลัง THEN (activity1)  แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะทำกิจกรรมหลัง ELSE (activity2)

ตัวอย่าง
         IF sex = “M” THEN
                male = male + 1
         ELSE 
                female = female + 1
         ENDIF

         IF score >= 80
                grade = “A”
         ELSEIF score >= 70
                grade = “B”
         ELSEIF score >= 60
                grade = “C”
         ELSEIF score >= 50
                grade = “D”
         ELSE
                grade = “F”
         ENDIF

            5. ในกรณีที่มีหลายเงื่อนไข 
                    การใช้ IF อาจทาให้ตรวจสอบโปรแกรมได้ยาก สามารถใช้คาสั่ง CASE …. END CASE แทนได้

ตัวอย่าง
            CASE score OF
            >= 80 : grade = “A”
            >= 70 : grade = “B”
            >= 60 : grade = “C”
            < 60 : grade = “F”
            ENDCASE

            6. การทํางานเป็นรอบ (Loop)
                        การทางานเป็นรอบด้วยลูป WHILE … ENDWHILE

                        WHILE<condition>
                        activity1
                        activity2
                        activity3
                        ENDWHILE

            การทำงานของลูป WHILE จะมีการตรวจสอบเงื่อนไขก่อน โดยหากเงื่อนไขเป็นจริง จะทำกิจกรรมภายในลูปซ้ำไปเรื่อยๆ จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูปแต่หากเงื่อนไขที่ตรวจสอบครั้งแรกเป็นเท็จ ก็จะไม่มีการทากิจกรรมภายในลูปเลย

ตัวอย่าง

                    num = 1
                    WHILE num <= 20
                                PRINT num
                                num = num + 1
                    ENDWHILE
                    PRINT “STOP RUN”


            7. การทำงานเป็นรอบ (Loop)
                    การทำงานเป็นรอบด้วยลูป DO … UNTIL

                    DO
                        activity1
                        activity2
                        activity3
                    UNTIL <condition>


            การทำงานของลูป DO … UNTIL จะทำกิจกรรมภายในลูปก่อนหนึ่งรอบ จากนั้นจะทาการตรวจเงื่อนไข โดยจะวนซ้าไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นจริง จึงหลุดออกจากลูป และถึงแม้เงื่อนไขที่ตรวจสอบเป็นจริงตั้งแต่แรก แต่ลูป DO…UNTIL ก็จะมีการทากิจกรรมภายในลูปอย่างน้อยหนึ่งรอบเสมอ

ตัวอย่าง


                    num = 0
                    DO
                            PRINT “HELLO…”
                            num = num + 1
                    UNTIL num > 20

            8. การทํางานเป็นรอบ (Loop)
                        การทางานเป็นรอบด้วยลูป FOR … NEXT

                    FOR i=1 to n
                                activity1
                                activity2
                                activity3
                    Next



ไม่มีความคิดเห็น:

แสดงความคิดเห็น