วันพุธที่ 25 มิถุนายน พ.ศ. 2557

อัลกอริทึม

อัลกอริทึม


               อัลกอริทึม หมายถึง  การแก้ไขปัญหาที่เราสามารถเข้าใจได้ และยังมีลำดับการแก้ไขปัญหาใดปัญหาหนึ่งอย่างมีลำดับหรือขั้นตอนการทำงานที่ต่างกันและจะมีการทำงานที่เป็นขั้นตอนที่ชัดเจน เพราะ ถ้าเราเอาข้อมูลเข้าอะไร  แล้วจะได้ผลลัพธ์อย่างไร


                วิธีการทำงานเป็นขั้นๆ และบางครั้งก็เป็นแบบวนซ้ำ  บางครั้งเป็นแบบเปรียบเทียบ ในขั้นตอนต่างๆ จนกระทั่งเสร็จจบการทำงาน


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


เรามาดูสัญลักษณ์  ของอัลกอริทึม  



                 สัญลักษณ์                    ความหมายในการทำงาน                   ลำดับการทำงาน


                     +                                      บวก                                                  4

                     -                                       ลบ                                                   4

                     *                                       คูณ                                                  3
   
                     /                                        หาร                                                 3

                    ** หรือ  ^                           ยกกำลัง                                            2

                    ( )                                       วงเล็บ                                             1


       หากมีวงเล็บจะให้ทำในวงเล็บก่อน  และกรณีที่ลำดับความสำคัญเท่ากัน  จะคำนวณจากด้านซ้ายไปขวา




ซูโด้โค้ต

กาารเขียน ซูโด้โค้ตหรือ รหัสเทียม

ซูโดโค้ต (Pseudocode)
   
     เป็นคำอธิบายขั้นตอนการทำงานของโปรแกรม โดยใช้ถ้อยคำผสมระหว่างภาษาแังกฤษและภาษาการเขียนโปรแกรมแบบโคร้งสร้าง จะช่วยให้ผุ้เขียนโปรแกรมสามารถพัฒนาขั้นตอนต่างๆ ให้เป็นโปรแกรมได้ง่ายขึ้น ส่วนใหย่มักใช้คำเฉพาะ (Reserve Word) ที่มีในภาษาการเขียนโปรแกรมและมักเขียนด้วยตัวอักษรตัวใหญ่ ซูโดโค้ดที่ดี่ จะต้องมีความชัดเจนสั้น และได้ใจความ ข้อมูลต่างๆ  ที่ใช้จะถูกเขียนอยู่ในรูปของตัวแปร



 จะมีการทำงานที่แตกต่างกัน  เรามาลองดู


 ๑.  รหัสเทียมแบบเรียงลำดับ



BEGIN


     .................... ( ข้อมูลเรียงตามลำดับอันที่ หนึ่ง )

     .................... ( ข้อมูลเรียงตามลำดับอันที่ สอง )

     .................... ( ข้อมูลเรียงตามลำดับอันที่ สาม )


END



๒.  รหัสเที่ยมแบบทางเลื่อก



BEGIN


      
     IF ................  ( ข้อมูลแบบเงื่อนไขเอามาใส่จตามลำดับ )


        
END  IF



๓.  รหัสเที่ยมแบบหาค่าเฉลี่ย

BEGIN

   1.   Start


   2.   Count   =  0


   3.   Sum   =  0


   4.   Input  (value)



   5. IF value > 0 THEN

      count = count  +  1
      sum  =  sum  + value
       Goto 3
       ELSE Goto 5


   6. average = sum /  count


  7. output (average)


END
   

การออกแบบผังงาน (Flowchart)

การออกแบบผังงาน (Flowchart)


       การออกแบบผังงาน คือ การใช้สัญลักษณ์ รูปแบบต่างๆที่แตกต่างกัน มีการทำงานที่แตกต่างกันขึ้นอยู่กับโจทย์และยังมีลูกศรบอกทิศทางการทำงานว่าไปทางไหน แล้วต้องจบที่ไหน  เรามาลองดูการทำงานของผังงาน

การทำงานแบบตามเงื่อนไข

การทำงานแบบตามเงื่อนไข  (Selection) หรือเรียกอีกอย่างหนึ่งว่า การทำงานแบบตัดสินใจ (Decision) นั่นคือเราสามารถให้โปรแกรมเลือกทำงานอย่างใดอย่างหนึ่งได้ โดยใช้เงื่อนไขเป็นตัวกำหนดการทำงานตามคำสั่ง โดยทั่วไปโปรแกรมจะกำหนดเอาไว้ว่าถ้าเงื่อนไขเป็นจริงโปรแกรมจะไปทำงานอย่างหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จโปรแกรมก็จะไปทำงานอีกอย่างหนึ่งนั่นก็หมายความว่าโปรแกรมจะเลือกทำงานทิศทางใดทิศทางหนึ่งเท่านั้น เช่น เมื่อเราขับขี่รถไปถึงทางสามแยก เราจะต้องตัดสินใจไปทางใดทางหนึ่ง ไม่สามารถวิ่งไปทั้งสองทางได้ในเวลาเดียวกัน



การทำงานแบบทำซ้ำ







          การทำงานแบบวนซ้ำ (Loop)เป็นการนำคำสั่งมาทำงานซ้ำหลายๆ รอบ จะทำงานกี่รอบขึ้นอยู่กับเงื่อนไขที่ผู้เขียนโปรแกรมกำหนดไว้ ซึ่งอาจจะเป็นการกำหนดจำนวนรอบที่แน่นอน  คือไม่แน่ชัดว่าจะทำงานกี่รอบ


การทำงานแบบเรียงลำดับ






เป็นขั้นตอนวิธีการทำงานพื้นฐาน ขั้นตอนวิธีการทำงานแบบลำดับได้รับการพัฒนามาจากโครงสร้างผังงานการทำงานแบบลำดับ การเขียนอธิบายการทำงานของวิธีการแก้ปัญหาโดยใช้ผังงาน ทำให้สามารถเห็นลำดับขั้นตอนวิธีการทำงานของการแก้ปัญหาได้ชัดเจนกว่าการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความโดยตรง แต่การนำผังงานมาพัฒนาให้เป็นภาษาคอมพิวเตอร์โดยตรง



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


การแก้โจทย์

การแก้โจทย์


มี่ ๕  ขั้นตอน  และในแต่ละขั้นตอนมีการทำงานที่แตกต่างกัน ยังมีของย่อย อีกมากมาย
เช่น


๑. ระบุสิ่งที่โจทย์ต้องการ
        ( ดูจากโจทย์ว่าต้องการอะไร )


๒.รูปแบบผลลัพธ์
        ( จะเป็นพวกตัวเลข เช่นการหาพื้นที่จะใช่ 99.99)


๓.ข้อมูลนำเข้า
        ( รับข้อมูลมาจากไหน )


๔.ประกาศค่าตัวแปล
        ( พวก  Real ,  Integer ต้องดูจากโจทย์ แล้วเลือกว่าจะเป็น  Real ,  Integer  )


๕.ประมวลผล

 ๕.๑เริ่ม
     ๕.๒  ประกาศค่าตัวแปล
         ...............................(เอาข้อมูลที่  ๔  มาใส่)
     ๕.๓   Input
         ................................(เอาข้อมูลที่ ๓  มาใส่)
     ๕.๔   ประมวลผล
     ๕.๕   แสดงผลลัพธ์
๕.๖ จบการประมวลผล

สัญลักษณ์ (Flowchart)

สัญลักษณ์ (Flowchart)



ตัวอย่างที่ 1 สํญลักษณ์ พร้อม ตัวอย่าง


ตัวอย่างที่ 2 สัญลักษณ์  พร้อม ความหมาย



สัญลักษณ์   (Flowchart) จะมีรูปแบบที่แตกต่างกันและในแต่ละสัญลักษณ์ จะมีหน้าที่แตกต่างกัน จะช่วยในเรารู้ว่าถ้าเจอรูปแบบนี้จะเป็นในของเรื่องอะไร ส่วนใหญ่ สัญลักษณ์ (Flowchart) ใช้ในการเขียนโปรแกรมในคอมพิวเตอร์