ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ การวิเคราะห์ปัญหา (Problem analysis) การออกแบบโปรแกรม (Design) การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง (Coding) การตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging) การทดสอบความถูกต้องของโปรแกรม (Testing and validating) การทำเอกสารประกอบโปรแกรม (Documentation) การบำรุงรักษาโปรแกรม (Program Maintenance)
เขียนขั้นตอนการแก้ปัญหา 1. การวิเคราะห์ปัญหา ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ประกอบด้วยอะไรบ้าง การวิเคราะห์ปัญหา วิเคราะห์ผลลัพธ์ วิเคราะห์ Input Process เขียนขั้นตอนการแก้ปัญหา - กำหนดวัตถุประสงค์ของงาน - รูปแบบของผลลัพธ์
ตัวอย่าง ต้องการคำนวณหาพื้นที่ของสามเหลี่ยมรูปหนึ่ง ตัวอย่าง ต้องการคำนวณหาพื้นที่ของสามเหลี่ยมรูปหนึ่ง 1. วิเคราะห์ผลลัพธ์ กำหนดวัตถุประสงค์ การคำนวณหาพื้นที่สามเหลี่ยม รูปแบบผลลัพธ์ ความยาวฐาน = ……………… ความสูง = ……………… พื้นที่สามเหลี่ยม = …………… 2.กำหนดข้อมูลเข้า 1. ความยาวฐาน 2. ความสูง
3. ขั้นตอนการประมวลผล ป้อนความยาวฐาน ป้อนความสูง คำนวณพื้นที่สามเหลี่ยม จากสูตร พื้นที่สามเหลี่ยม = ความยาวฐาน ความสูง
2. การออกแบบโปรแกรม เครื่องมือที่ใช้ในการออกแบบ ผังงาน (Flowchart) ขั้นตอนการแก้ปัญหาทีละขั้นตอนในลักษณะรูปภาพ รหัสจำลอง (Pseudo) รูปแบบเป็นภาษาพูดง่าย ๆ ภาษาอังกฤษ หรือภาษาไทยก็ได้
สัญลักษณ์ในผังงาน จุดเริ่มต้น หรือสิ้นสุด จุดเชื่อมต่อในหน้าอื่น อ่านข้อมูลเข้า หรือแสดงผล จุดเชื่อมต่อในหน้าเดียวกัน ประมวลผล พิมพ์ผลทางเครื่องพิมพ์ ตัดสินใจ แสดงทิศทางการประมวลผล แสดงผลทางหน้าจอ
ตัวอย่างการเขียนผังงาน จงเขียนผังงานแสดงการเขียนและส่งจดหมาย เริ่มต้น เขียนจดหมาย พับจดหมาย ใส่ซองจดหมาย จ่าหน้าซอง 1 1 มีแสตมป์หรือไม่ ทำการซื้อแสตมป์ ติดแสตมป์ ส่งจดหมาย มี ไม่มี จบงาน
อัลกอริทึม คือ ลำดับการทำงานหรือขั้นตอนการแก้ไขปัญหางานให้สำเร็จ อัลกอริทึม คือ ลำดับการทำงานหรือขั้นตอนการแก้ไขปัญหางานให้สำเร็จ
การพัฒนาอัลกอริทึม การเขียนขั้นตอนในรายละเอียดของแต่ละอัลกอริทึม อาศัยโครงสร้างควบคุมดังนี้ โครงสร้างลำดับ (Sequence structure) โครงสร้างตัดสินใจ (Selection structure) โครงสร้างทำซ้ำ (Repetition structure)
โครงสร้างการทำงานแบบลำดับ (Sequence) โครงสร้างลำดับ หลักการให้มองงานเป็นชิ้นใหญ่ก่อน ยังไม่ต้องลงรายละเอียด แล้วจัดลำดับความคิดว่าจะทำอะไร ก่อนหรือหลัง ตามลำดับ Begin งาน 1 งาน 2 end งาน 1 งาน 2 ผังงาน รหัสเทียม
การพัฒนาอัลกอริทึม example: จงเขียนโปรแกรมคำนวณหาค่า y ของสมการ y = x^2 + 2x +10 start Read x Y = x*x + 2*x +10 Write y stop ผังงาน
คำนวณหาพื้นที่คางหมู = จงเขียนผังงานคำนวณการหาพื้นที่สี่เหลี่ยมคางหมู โดยกำหนดค่าความยาวด้านคู่ขนานและความสูงให้ เริ่มต้น 1 พิมพ์ค่าพื้นที่ อ่านความยาวด้าน คู่ขนานและความสูง จบงาน คำนวณหาพื้นที่คางหมู = ½ * ด้านคู่ขนาน * สูง 1
การพัฒนาอัลกอริทึม โครงสร้างตัดสินใจ (selection) โครงสร้าง IF โครงสร้าง IF else
การพัฒนาอัลกอริทึม โครงสร้าง IF เป็นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทำหรือไม่ทำ ก่อนที่จะไปทำงานอื่นต่อไป เงื่อนไข งานที่ต้องทำ ใช่ งานต่อไป ไม่ใช่
การพัฒนาอัลกอริทึม ตัวอย่าง โครงสร้าง IF แม่ถามว่าหิวข้าวหรือไม่ ถ้าหิวก็ให้กิน ถ้าไม่หิวไม่ต้องกิน แล้วจึง เดินงานไปโรงเรียน (งานต่อไป) หิวใช่ไหม? ใช่ งานกินข้าว ไม่ใช่ งานเดินทางมาเรียน
การพัฒนาอัลกอริทึม ตัวอย่าง โครงสร้าง IF จงเขียนผังงาน แสดงยอดขาย ถ้าซื้อสินค้ามากกว่า 1000 บาทมีส่วนลดให้ 10% วิเคราะห์ : Output คือยอดขายสุทธิ Input คือ ยอดขายก่อนหักส่วนลด Process มีรายละเอียดเขียนด้วยผังงานได้ในหน้าถัดไป
การพัฒนาอัลกอริทึม เริ่มต้น อ่าน ยอดซื้อ ตัวอย่าง(ต่อ) โครงสร้าง IF ส่วนลด = 0 ไม่ใช่ ใช่ ยอดซื้อ >1000 ส่วนลด = ยอดซื้อ * 10/100 ผังงาน เงินที่ต้องชำระ = ยอดซื้อ - ส่วนลด พิมพ์ เงินที่ต้องชำระ จบ
การพัฒนาอัลกอริทึม โครงสร้าง IF-else If เงื่อนไข งาน 1 Else งาน 2 End if ไม่ใช่ ใช่ เงื่อนไข งาน 2 งาน 1
การพัฒนาอัลกอริทึม โครงสร้าง IF-Else ตัวอย่าง ร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ลูกค้า ถ้าเป็นชายจะลดให้ 5% แต่ถ้าเป็นหญิง จะลดให้ 10% จงเขียนอัลกอริทึมเพื่อพิมพ์ยอดขาย วิเคราะห์ปัญหา Output คือ ราคาสุทธิ Input คือ ราคาสินค้า และ เพศ Process เขียนด้วยผังงาน ดังในหน้าต่อไป
IF-ELSE อ่านค่า รวมเงิน, เพศ ส่วนลด = 0 จบงาน ส่วนลด = รวมเงิน * 0.1 เริ่มต้น อ่านค่า รวมเงิน, เพศ ส่วนลด = 0 no yes เพศ = ‘M’ ส่วนลด = รวมเงิน * 0.1 ส่วนลด = รวมเงิน * 0.05 เงินที่ต้องชำระ = รวมเงิน - ส่วนลด พิมพ์ เงินที่ต้องชำระ จบงาน
ตัวอย่าง โครงสร้างการทำงานแบบมีการเลือก (Selection) เริ่มต้น C = A - B C = A + B C = A A > B A < B จบงาน ใช่ ไม่ใช่ ในบริเวณ A และ B ของหน่วยความจำมีตัวเลขเก็บอยู่ จงเขียนผังงานที่แสดงการเปรียบเทียบระหว่าง A และ B ตามเงื่อนไข ดังนี้ ถ้า A>B คำนวณ A-B นำผลที่ได้ไปเก็บไว้ที่ C ถ้า A<B คำนวณ A+B นำผลที่ได้ไปเก็บไว้ที่ C ถ้า A=B เอา ไปเก็บไว้ที่ C
ตัวอย่างการเขียนผังงาน เมื่อเราซื้อยาจากร้านขายยาที่มีอยู่ทั่ว ๆ ไปนั้น ในส่วนของวิธีใช้ยามักจะแยกขนาดรับประทานไว้ตามอายุ เช่น อายุมากกว่า 10 ปี รับประทานครั้งละ 3 ช้อนชา อายุ 6-10 ปี รับประทานครั้งละ 2 ช้อนชา อายุ 2-5 ปี รับประทานครั้งละ 1 ช้อนชา เด็กอายุต่ำกว่า 1 ปี ห้ามรับประทาน จงเขียนผังงานที่แสดงถึงขนาดของการใช้ยาตามอายุนี้
ใช่ รับประทานครั้งละ อายุ > 10 3 ช้อนชา 6 <= อายุ <=10 เริ่มต้น อายุ > 10 6 <= อายุ <=10 2 <= อายุ <=5 ห้ามรับประทาน จบงาน รับประทานครั้งละ 3 ช้อนชา 2 ช้อนชา 1 ช้อนชา ใช่ ไม่ใช่
การพัฒนาอัลกอริทึม โครงสร้าง DO while DO คำสั่งต่าง ๆ While เงื่อนไข งาน จริง เงื่อนไข รหัสเทียม เท็จ ผังงาน
การพัฒนาอัลกอริทึม โครงสร้าง while เท็จ While เงื่อนไข เงื่อนไข งาน end while เงื่อนไข จริง งาน รหัสเทียม ผังงาน
ผังงานกับการเขียนโปรแกรม การเขียนแปลนบ้านเหมือนกับการเขียนผังงาน ดังนั้นการสร้างบ้านก็เหมือนกับการเขียนโปรแกรมนั่นเอง หน่วยความจำ มีลักษณะเหมือน ล็อกเกอร์เก็บของ ตำแหน่ง(Address) ข้อมูล X = 1 X 1 8 X = 8 จะหาตำแหน่งว่าง ในหน่วยความจำ แล้วนำค่าไปเก็บ พร้อมจำตำแหน่ง ที่เก็บว่าชื่ออะไร A = 2 A 2 รูปแสดงการจำลองหน่วยความจำหลักของคอมพิวเตอร์
ตัวอย่าง กำหนดให้หน่วยความจำตำแหน่ง A และ B มีเลข 6 และ 2 เก็บอยู่ตามลำดับ จงเขียนผังงานแสดงการสลับค่า 6 และ 2 โดยสลับให้ได้ค่าเป็น A=2 และ B=6
ตัวอย่าง ตำแหน่ง(Address) ข้อมูล เริ่มต้น 1 A = 6 A 6 2 A = B W 6 W = A จบงาน 1
3. การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง(Coding) การเขียนโปรแกรมที่ดีนั้น ควรจะทำตามขั้นตอน คือเริ่มตั้งแต่ วิเคราะห์ปัญหา ก่อนแล้วทำการออกแบบโปรแกรม จึงเริ่มเขียนโปรแกรม สำหรับผู้ที่ไม่มีประสบการณ์ควรทดลองเขียนในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทำงานได้แล้วจึงทำการคีย์ลงเครื่อง
4. การตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging the Program) รูปแบบข้อผิดพลาด มี 3 แบบคือ Syntax Error – ข้อผิดพลาดจากการใช้ไวยากรณ์ภาษาที่ผิด หรือ อาจเกิดจากการสะกดคำผิด Run-time Error – ข้อผิดพลาดในระหว่างการปฏิบัติงาน(Execution) มักเกิดจากความรู้เท่าไม่ถึงการณ์ Logical Error – ข้อผิดพลาดที่หาและแก้ได้ยากที่สุด ต้องทำการไล่โปรแกรมทีละคำสั่งเพื่อหาข้อผิดพลาดนั้น
การตรวจสอบข้อผิดพลาดของโปรแกรม( ต่อ ) (Testing and Debugging the Program) วิธีการตรวจสอบข้อผิดพลาดของโปรแกรม มีดังนี้ การตรวจสอบด้วยตนเอง (Self Checking) เขียนโปรแกรมลงกระดาษแล้วไล่เช็คตรวจสอบการทำงานทีละขั้นด้วยตนเอง ว่าจะมีการทำงานที่ถูกต้องตามความต้องการหรือไม่ ตรวจสอบด้วยการแปลโปรแกรม (Translating) การแปลเป็นภาษาเครื่อง ตรวจสอบข้อผิดพลาดของโปรแกรม
5. การทดสอบความถูกต้องของโปรแกรม ทดสอบว่าโปรแกรมให้ผลลัพธ์ออกมาถูกต้องตามที่ต้องการหรือไม่ โดยการป้อนข้อมูลสมมติหลายๆ ค่าที่เป็นไปได้เข้าไปแล้วดูผลลัพธ์ว่าถูกต้องหรือไม่
6. การทำเอกสารประกอบโปรแกรม เอกสารประกอบโปรแกรมสำหรับผู้ใช้ (User Documentation) เอกสารประกอบสำหรับผู้เขียนโปรแกรม (Technical Documentation)
7. การบำรุงรักษาโปรแกรม หลังจากที่มีการใช้งานโปรแกรมไปนานๆ แล้ว อาจต้องมีการปรับปรุงแก้ไขโปรแกรมให้ตรงตามความต้องการของผู้ใช้ที่อาจเปลี่ยนแปลงไป