วันศุกร์ที่ 12 กรกฎาคม พ.ศ. 2556

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

การเขียนรหัสเทียม
รหัสเทียม(Pseudo Code อ่านว่า “ซูโดโค้ด”) คือ การอธิบายลำดับขั้นตอนการทำงานอย่างละเอียดได้จากขั้นตอนวิธีการ
ประมวลผล แล้วขั้นตอนต่อไปคือ นำขั้นตอนการประมวลผลมาเขียนผังงานหรือรหัสเทียมหรืออาจเขียนทั้งสองอย่าง เพื่อนำผังงานหรือรหัสเทียมไปใช้ประกอบการเขียนโปรแกรมต่อไป

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

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

ลักษณะของรหัสเทียม
1.กำหนดจุดเริ่มต้นด้วยคำว่า “Begin” และจุดสิ้นสุดด้วยคำว่า “End”
2.ใช้คำที่สามารรถเข้าใจได้ง่าย
3.การเขียนรหัสเทียมแต่ละคำสั่งควรเขียนเป็นบรรทัดๆ
4.การเขียนรหัสเขียนรหัสเทียมต้องไม่ขึ้นกับภาษาใดภาษาหนึ่งในการเขียนโปรแกรม
5.ควรมีการย่อหน้า เพื่อสะดวกต่อการอ่านและการตรวจสอบ
6.การเขียนรหัสเทียมจะเขียนจากบนลงล่าง และมีทางเข้าหนึ่งทาง ทางออกหนึ่งทาง
7.การเขียนรหัสเทียมจะไม่เขียนหมายเลขกำกับในแต่ละขั้นตอน
ประเภทของชุดคำสั่งในภาษาโปรแกรม
-คำสั่งรับข้อมูล (Input)
-คำสั่งแสดงผลข้อมูล (Output)
-คำสั่งประมวลผลข้อมูล หรือ การกำหนดค่าตัวแปร (Assignment statement)
-คำสั่งเปรียบเทียบค่า (Condition or Selection)
-คำสั่งกระทำซ้ำ (Iteration or Looping)


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

เมื่อไหร่จึงจะใช้ Flowchart
ควรใช้เมื่อมีความต้องการในการพัฒนากระบวนการใดๆ ในปัจจุบัน(as-is) ซึ่ง flowchart จะช่วยให้ทีมงานหรือผู้ที่เกี่ยวข้องในการพัฒนากระบวนการเข้าใจถึงกระบวนการที่เป็นอยู่ในปัจจุบัน และสามารถนำไปเปรียบเทียบกับกระบวนการในอนาคต(to be) เพื่อพัฒนากระบวนการให้มีประสิทธิภาพมากยิ่งขึ้น
- ใช้เมื่อต้องการวิเคราะห์หรือกำหนดกระบวนการ ทั้งรายละเอียดของ action และการตัดสินใจ
- ใช้เมื่อต้องการหาปัญหาได้อย่างตรงจุดในกระบวนการ
- ใช้เมื่อประเมินศักยภาพหรือประสิทธิภาพของกระบวนการ เพื่อช่วยระบุว่าต้องทำอย่างไรจึงจะเป็นวิธีที่ดีที่สุด
- ใช้เมื่อต้องการสื่อสารหรือฝึกอบรมเบื้องต้น เพื่อให้มีความเข้าใจที่ตรงกันในรายละเอียดของกระบวนการ

ประโยชน์ของการใช้ Flowchart
- ทำให้ทุกคนเข้าใจกระบวนการที่ถูกจัดทำเป็นลำดับภาพ(ให้ทุกคนเห็นภาพเดียวกัน) : โดยทั่วไปแต่ละคนอาจมีแนวความคิดที่แตกต่างกันไปเกี่ยวการกระบวนการทำงาน flowchart จึงสามารถช่วยให้เข้าใจตรงกันในขั้นตอนหรือลำดับของกระบวนการ และยังแสดงให้เห็นถึงความเข้าใจของผู้เขียนกระบวนการที่เขียนขึ้นมาว่าถูกต้องกับสิ่งที่เป็นจริงหรือไม่
- เป็นเครื่องมือสำหรับฝึกอบรมพนักงาน : เป็นเครื่องมือช่วยในการฝึกอบรมพนักงานใหม่หรือเก่าในการทำงานให้ได้ตามมาตรฐานกระบวนการที่ได้มีการกำหนดไว้
- ทำให้ทราบปัญหาและโอกาสในการพัฒนากระบวนการ : ถ้ามองลึกลงไปในแต่ละขั้นตอนของกระบวนการและภาพ diagram จะเห็นปัญหาได้อย่างชัดเจน ซึ่งเป็นโอกาสในวิเคราะห์ปัญหาในกระบวนการได้ตรงจุด ทราบถึงขั้นตอนที่ซ้ำซ้อน และงานที่วนไปวนมาไม่มีประสิทธิภาพ

สัญลักษณ์ที่ใช้ใน Flowchart
รูปไข่ (Oval) : ใช้แสดงจุดเริ่มต้นและจุดสิ้นสุดของกระบวนการ
กล่อง (Box) : แสดงถึงขั้นตอนหรือกิจกรรมในแต่ละกระบวน
เพชร (Diamond) : แสดงจุดที่ต้องตัดสินใจ เช่น ใช่/ไม่ใช่ หรือ ไป/ไม่ไป โดยในแต่ละทางเลือกจะต้องมีทางใดทางหนึ่งที่เป็นคำตอบเสมอ
วงกลม (Circle) : แสดงการเชื่อมต่อภายในหน้าเดียวกัน โดยจะมีตัวเลขในวงกลมแสดงว่าจุดใดที่มีการเชื่อมต่อกัน
รูปห้าเหลี่ยม (Pentagon) : แสดงถึงจุดเชื่อมต่อไปยังหน้าอื่นๆ โดยจะมีตัวหนังสือเขียนกำกับว่าเชื่อมต่อกับหน้าใด
เส้นการไหล : แสดงทิศทางการไหลของกระบวนการ

ระดับในการเขียนรายละเอียดของ Flowchart
     เมื่อต้องการพัฒนาอะไรบางอย่างโดยใช้ flowchart สิ่งที่ควรพิจารณาคือใครจะเป็นผู้นำข้อมูลที่เราเขียนไปใช้งาน และต้องการใช้งานข้อมูลมากน้อยเพียงใด ซึ่งจะช่วยให้เราทราบถึงระดับของรายละเอียดการเขียน flowchart ได้
Macro Level : ระดับนี้เป็นระดับที่ไม่จำเป็นต้องมีรายละเอียดมากในระดับการทำงานของกระบวนการ แต่จะเขียนเป็นภาพกว้างๆ เพียงพอสำหรับจุดประสงค์การนำ flowchart ไปใช้งาน โดยทั่วไปแล้วระดับ macro level นี้จะเขียนไม่เกิน 6 ขั้นตอน ตัวอย่างเช่น เราอยู่บนเครื่องบินที่ระดับ 30,000 ฟุตเหนือระดับน้ำทะเล แล้วมองลงมาเห็นทะเล พื้นดิน ภูเขา
Mini Level : เป็นระดับที่อยู่กึ่งกลางระหว่างภาพกว้างๆ macro level กับ micro level ซึ่งโดยปกติแล้วจะเจาะลงไปในส่วนใดส่วนหนึ่งของ flowchart ระดับ macro level ตัวอย่างเช่น เราอยู่บนเครื่องบินที่ระดับ 10,000 ฟุต จากระดับน้ำทะเล แล้วมองเห็นบนพื้นดินมีเมืองหลายๆ เมือง หรือมีภูเขาหลายๆ ลูก ฯลฯ
Micro Level : เป็นมุมมองระดับพื้นดินที่เห็นรายละเอียดได้ครบทุกส่วน โดยจะบันทึกทุกข้อมูล ทุกกิจกรรมหรือทุกการกระทำ ทุกการตัดสินใจ ซึ่งรูปแบบนี้จะใช้เพื่อเป็นตัวบอกวิธีการทำงานอย่างละเอียด เช่น เราอยู่บนเครื่องบินระดับที่สามารถมองเห็นได้ทุกๆ รายละเอียดของเมือง เห็นทุกบ้าน และเห็นไปถึงภายในบ้าน

วิธีการเขียน Flowchart
- ระบุผู้ที่เป็นคนเขียน flowchart ให้ถูกต้อง
- พิจารณาว่าอะไรที่คาดหวังว่าจะได้จาก flowchart
- ระบุว่าใครที่จะใช้ flowchart
- กำหนดระดับในการเขียน flowchart ที่ต้องการ
- กำหนดขอบเขตของกระบวนการหรือการเขียน flowchart

สิ่งสำคัญที่จะทำให้การเขียน Flowchart ประสบความสำเร็จ
- เริ่มต้นด้วยภาพกว้างๆ ก่อน : เขียน flowchart ในระดับ macro level ก่อนเป็นอันดับแรก หลังจากนั้นจะสามารถเขียนในระดับที่ลึกลงไปในแต่ละส่วนได้
- เข้าไปสังเกตการณ์ในกระบวนการ : ทางที่จะทำให้การเขียน flowchart ประสบความสำเร็จได้ต้องเข้าไปเห็นกระบวนการทำงานจริง จึงจะเห็นภาพการทำงานที่เกิดขึ้นได้อย่างครบถ้วน
- บันทึกขั้นตอนของกระบวนการจากการเข้าไปสังเกตการณ์ : บันทึกขั้นตอนที่เกิดขึ้น เขียนขั้นตอนบนบัตรบันทึก(Post-it) จัดเรียงลำดับไว้ โดยใช้สีที่แตกต่างกันเพื่อแสดงกลุ่มการทำงาน ซึ่งจะทำให้เข้าใจกระบวนการทำงานได้มากขึ้น
- จัดเรียงลับดับเป็นขั้นเป็นตอน : จัดเรียงบัตรบันทึก(Post-it) ที่บันทึกไว้จากการเข้าไปสังเกตการณ์ วางให้ครบตามจริงที่บันทึกมา
- เขียน flowchart : เขียนจากข้อมูลต่างๆ ที่ได้ไปสังเกตการณ์ การบันทึก และจัดเรียงลับดับขั้นตอน

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



วันอาทิตย์ที่ 7 กรกฎาคม พ.ศ. 2556

นานาชาติเซนต์เทเรซา

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

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


ที่มา: http://www.thaigoodview.com/node/83018