วันเสาร์ที่ 13 กรกฎาคม พ.ศ. 2556

การถ่ายทอดความคิดในการแก้ปัญหาด้วยอัลกอริทึม



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


คำสั่ง  read    หมายถึง  การอ่านค่าหรือรับค่าข้อมูลตัวแปรตามที่กำหนดไว้


คำสั่ง  print    หมายถึง  การแสดงผลลัพธ์ที่ได้จากการคำนวณ

                 และพิมพ์ข้อความ End  เมื่อจบการทำงาน

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


การเขียนผังงาน ( Flowchart )

             ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการทำงานของ

โปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามที่


ต้องการ มี 2 ประเภท คือ ผังงานระบบ และผังงานโปรแกรม



ประโยชน์ของผังงาน


• ช่วยลำดับขั้นตอนการทำงานของโปรแกรม และสามารถนำไปเขียนโปรแกรมได้โดยไม่สับสน

• ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด


• ช่วยให้การดัดแปลง แก้ไข ทำได้อย่างสะดวกและรวดเร็ว


• ช่วยให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น




วิธีการเขียนผังงานที่ดี

• ใช้สัญลักษณ์ตามที่กำหนดไว้

• ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา

• คำอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย

• ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก

• ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน

• ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรม


1.ผังงานระบบ (System Flowchart)



            จะแสดงภาพรวมของระบบ เน้นแสดงเฉพาะสื่อที่ทำหน้าที่นำข้อมูลเข้าและออก โดยจะไม่แสดง

ถึงรายละเอียดวิธีการประมวลผล ซึ่งจะนำไปแสดงไว้ในส่วนของผังงานโปรแกรมแท

2.ผังงานโปรแกรม ( Program Flowchart )
                  การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ที่เรียกว่า สัญลักษณ์ ANSI ( American National Standards Institute ) ในการสร้างผังงาน

สัญลักษณ์

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

สัญลักษณ์ของผังงาน (Flowchart)

รูปภาพสัญลักษณ์ความหมายของสัญลักษณ์
Flowchart Start or Stopเริ่มต้นหรือจบ Flowchart (Start or Stop)
Flowchart Processการประมวลผล (Process)
Flowchart Input Or Outputส่วนนำเข้าข้อมูลหรือแสดงผลข้อมูล (Input or Output)
Flowchart Decisionการตัดสินใจ (Decision)
Flowchart Connectorจุดเชื่อมต่อ (Connector)
Flowchart Direction of Flowทิศทางการทำงาน (Direction of Flow)


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







หลักการใช้สัญลักษณ์ของผังงาน (Flowchart) คือ

 1)  ผังงาน (Flowchart) ที่เขียนขึ้น ต้องมีจุดเริ่มต้น และ จุดสิ้นสุด (Start and Stop)

 2)  สัญลักษณ์แต่ละรูปจะมีการเชื่อมต่อด้วย ทิศทางการทำงาน (Direction of Flow)


 3)  ทิศทางการทำงานจะต้องเริ่มต้นจากจุดเริ่มต้น และจบที่จุดสิ้นสุดเท่านั้น


วันเสาร์ที่ 6 กรกฎาคม พ.ศ. 2556

กระบวนการเทคโนโลยีสารสนเทศ

กระบวนการเทคโนโลยีสารสนเทศ


          1.  การวิเคราะห์และกำหนดรายละเอียดของปัญหา  (State The Problem)
          ขั้นตอนนี้เป็นขั้นตอนแรกสุดก่อนที่จะลงมือแก้ปัญหาแต่ผู้แก้ปัญหามักจะมองข้ามไป จุดประสงค์ของขั้นตอนนี้ คือ การทำความเข้าใจกับปัญหาเพื่อแยกให้ออกว่าข้อมูลที่กำหนดมาในปัญหาหรือเงื่อนไขของปัญหาคืออะไร อีกทั้งวิธีการที่ใช้ประมวลผล กล่าวโดยสรุปมีองค์ประกอบในการวิเคราะห์ดังนี้
         การระบุข้อมูลเข้า
ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กำหนดมาในปัญหา
         การระบุข้อมูลออก
ได้แก่ การพิจารณาเป้าหมายหรือสิ่งที่ต้องหาคำตอบ
         การกำหนดวิธีประมวลผล
ได้แก่ การพิจารณาขั้นตอนวิธีการได้มาซึ่งคำตอบหรือข้อมูลออก 

          2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools And Algorithm Development)
          ขั้นตอนนี้เป็นขั้นตอนของการวางแผนในการแก้ปัญหาอย่างละเอียดถี่ถ้วน หลังจากที่เราทำความเข้าใจกับปัญหา พิจารณาเงื่อนไขและข้อมูลที่มีอยู่และสิ่งที่ต้องการหาในการแก้ปัญหาอย่างละเอียดถี่ถ้วน หลังจากที่เราทำความเข้าใจกับปัญหา พิจารณาเงื่อนไขและข้อมูลที่มีอยู่และสิ่งที่ต้องการหาในขั้นตอนที่ 1 แล้ว เราสามารถคาดคะเนวิธีการที่จะใช้ในการแก้ปัญหา ขั้นตอนนี้จำเป็นต้องอาศัยประสบการณ์ของผู้แก้ปัญหาเป็นหลัก หากผู้แก้ปัญหาเคยพบกับปัญหาทำนองนี้มาแล้วก็สามารถดำเนินการตามแนวทางที่เคยปฏิบัติมา
ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่ใช้ในการแก้ปัญหา โดยพิจารณาความเหมาะสมระหว่างเครื่องมือกับเงื่อนไขต่างๆ ของปัญหา ซึ่งหมายรวมถึงความสามารถของเครื่องมือในการแก้ปัญหาดังกล่าวและสิ่งที่สำคัญที่สุดคือความคุ้นเคยในการใช้งานเครื่องมือนั้นๆ ของผู้แก้ปัญหา
          อีกสิ่งหนึ่งที่ สำคัญในการแก้ปัญหา คือ ยุทธวิธีที่ใช้ในการแก้ปัญหา หรือที่เราเรียกว่า “ขั้นตอนวิธี” (Algorithm) ในการแก้ปัญหา หลังจากที่เราได้เครื่องมือช่วยแก้ปัญหาแล้วผู้แก้ปัญหาต้องวางแผนว่าจะใช้เครื่องมือดังกล่าวเพื่อให้ได้ผลลัพธ์ที่ถูกต้องที่สุด การออกแบบขั้นตอนวิธีในการแก้ปัญหา
          ผู้แก้ปัญหาควรใช้แผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทำงานเพื่อให้ง่ายต่อความเข้าใจ เช่น ผังงาน (Flowchart) ที่จำลองวิธีขั้นตอนการแก้ปัญหาในรูปแบบสัญลักษณ์รหัสจำลอง (Pseudo Code) ซึ่งเป็นการจำลองขั้นตอนวิธีการปัญหาในรูปแบบคำบรรยายการใช้เครื่องมือช่วยออกแบบดังกล่าว นอกจากแสดงกระบวนการที่ชัดเจนแล้วยังช่วยให้ผู้แก้ปัญหาสามารถหาข้อผิดพลาดของวิธีการที่ใช้ได้ง่ายและแก้ไขได้อย่างรวดเร็ว

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

         4. การตรวจสอบและปรับปรุง (Refinement)
          หลังจากที่ลงมือแก้ปัญหาแล้วต้องตรวจสอบให้แน่ใจว่าวิธีการนี้ให้ผลลัพธ์ที่ถูกต้องโดยผู้แก้ปัญหาต้องตรวจสอบว่าขั้นตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอียดของปัญหา ซึ่งได้แก่ ข้อมูลเข้าและข้อมูลออกเพื่อให้มั่นใจว่าสามารถรองรับข้อมูลเข้าได้ทุกกรณีอย่างถูกต้องสมบูรณ์ ในขณะเดียวกันก็ต้องปรับปรุงวิธีการเพื่อให้การแก้ปัญหานี้ได้ผลลัพธ์ที่ดีที่สุด
         ขั้นตอนทั้ง 4 ขั้นตอนดังกล่าวข้างต้น เป็นเสมือนขั้นบันได (Stair) ที่ทำให้มนุษย์ประสบความสำเร็จในการแก้ปัญหาต่างๆได้ รวมทั้งการเขียนหรือพัฒนาโปรแกรมคอมพิวเตอร์เพื่อแก้ปัญหา ก็ต้องใช้กระบวนการตามขั้นตอนทั้ง 4 นี้เช่นกัน