Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Programmer1

14,483 views

Published on

Published in: Education, Technology, Business

Programmer1

  1. 1. การเขียนโปรแกรมเบื้องต้น
  2. 2. ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ <ul><ul><li>การวิเคราะห์ปัญหา (Problem analysis) </li></ul></ul><ul><ul><li>การออกแบบโปรแกรม (Design) </li></ul></ul><ul><ul><li>การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง ( Coding ) </li></ul></ul><ul><ul><li>การตรวจสอบข้อผิดพลาดของโปรแกรม ( Testing and Debugging ) </li></ul></ul><ul><ul><li>การทดสอบความถูกต้องของโปรแกรม ( Testing and validating ) </li></ul></ul><ul><ul><li>การทำเอกสารประกอบโปรแกรม ( Documentation ) </li></ul></ul><ul><ul><li>การบำรุงรักษาโปรแกรม ( Program Maintenance ) </li></ul></ul>
  3. 3. การวิเคราะห์ปัญหา <ul><li>สิ่งที่ต้องพิจารณา </li></ul><ul><ul><li>Input ? ( พิจารณาจาก Output) </li></ul></ul><ul><ul><li>Output? ( พิจารณาอันดับแรก ) </li></ul></ul><ul><ul><li>Process ( ยังไม่ต้องสนใจตอนนี้ ) </li></ul></ul>Process Input Output Input 1 2 3
  4. 4. แนวความคิดเบื้องต้นการวิเคราะห์ปัญหา <ul><li>การวิเคราะห์ปัญหา </li></ul>วิเคราะห์ผลลัพธ์ วิเคราะห์ Input Process เขียนขั้นตอนการแก้ปัญหา
  5. 5. การออกแบบโปรแกรม <ul><li>เครื่องมือที่ใช้ในการออกแบบ </li></ul><ul><ul><li>ผังงาน ( Flowchart ) ขั้นตอนการแก้ปัญหาทีละขั้นตอนในลักษณะรูปภาพ </li></ul></ul><ul><ul><li>รหัสจำลอง ( Pseudo ) รูปแบบเป็นภาษาพูดง่าย ๆ ภาษาอังกฤษ หรือภาษาไทยก็ได้ </li></ul></ul>
  6. 6. สัญลักษณ์ในผังงาน จุดเริ่มต้น หรือสิ้นสุด อ่านข้อมูลเข้า หรือแสดงผล ประมวลผล ตัดสินใจ แฟ้มข้อมูล จุดเชื่อมต่อในหน้าเดียวกัน โปรแกรมย่อย แสดงผลทางหน้าจอ แสดงทิศทางการประมวลผล พิมพ์ผลทางเครื่องพิมพ์ จุดเชื่อมต่อในหน้าอื่น
  7. 7. การพัฒนาอัลกอริธึม <ul><li>หลักการโครงสร้างควบคุม (Control structures) </li></ul><ul><ul><li>การเขียนขั้นตอนในรายละเอียดของแต่ละอัลกอริธึม อาศัยโครงสร้างควบคุมดังนี้ </li></ul></ul><ul><ul><li>โครงสร้างลำดับ (Sequence structure) </li></ul></ul><ul><ul><li>โครงสร้างตัดสินใจ (Selection structure) </li></ul></ul><ul><ul><li>โครงสร้างทำซ้ำ (Repetition structure) </li></ul></ul>
  8. 8. การพัฒนาอัลกอริธึม <ul><li>โครงสร้างลำดับ </li></ul><ul><ul><li>หมายถึง งานที่ต้องทำต้องมีลำดับก่อนหลัง </li></ul></ul><ul><ul><li>เช่น อัลกอริธึม “ การตื่นนอนต้อนรับวันใหม่ ” </li></ul></ul><ul><ul><ul><li>งาน ตื่นนอน </li></ul></ul></ul><ul><ul><ul><li>งาน ถอดชุดนอน </li></ul></ul></ul><ul><ul><ul><li>งาน เข้าห้องน้ำ </li></ul></ul></ul><ul><ul><ul><li>งาน แต่งตัว </li></ul></ul></ul><ul><ul><ul><li>งาน เดินทางมาเรียน </li></ul></ul></ul><ul><ul><li>ต้องจัดลำดับให้ถูกต้อง </li></ul></ul>จุดเริ่มต้น จุดสิ้นสุด งาน ตื่นนอน งาน ถอดชุดนอน งาน เข้าห้องน้ำ งาน แต่งตัว งาน เดินทางมาเรียน
  9. 9. ตัวอย่างการเขียนผังงาน <ul><li>จงเขียนผังงานที่แสดงลำดับการคำนวณตัวเลข เพื่อหาผลลัพธ์การคำนวณ เช่น 10 / 5 + 6 * 3 </li></ul><ul><li>โดยมีลำดับการคำนวณทางเลขคณิต ดังนี้ </li></ul><ul><li>1. ยกกำลัง </li></ul><ul><li>2. คูณหรือหาร ( โดยทำจากซ้ายไปขวา ) </li></ul><ul><li>3. บวกหรือลบ ( โดยทำจากซ้ายไปขวา ) </li></ul>
  10. 10. ตัวอย่างการเขียนผังงาน เริ่มต้น T1 = 10 / 5 T2 = 6 * 3 T3 = T1 + T2 จบงาน
  11. 11. ตัวอย่างการเขียนผังงาน (X – 5) + (6 *3)
  12. 12. ตัวอย่างการเขียนผังงาน (X – 5) + (6 *3) เริ่มต้น T1 = 6*3 T2 = x-5 T3 = T1+T2 จบงาน รับค่า x
  13. 13. Flow Chart ( ผังงาน ) <ul><li>โครงสร้างตัดสินใจ (selection) </li></ul><ul><ul><li>โครงสร้าง IF </li></ul></ul><ul><ul><li>โครงสร้าง IF else </li></ul></ul>
  14. 14. Flow Chart ( ผังงาน ) <ul><li>โครงสร้าง IF </li></ul><ul><ul><li>เป็นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทำหรือไม่ทำ ก่อนที่จะไปทำงานอื่นต่อไป </li></ul></ul>เงื่อนไข งานที่ต้องทำ ใช่ ไม่ใช่
  15. 15. Flow Chart ( ผังงาน ) <ul><li>ตัวอย่าง โครงสร้าง IF </li></ul><ul><ul><li>ตรวจสอบคะแนนว่าเกิน 50 คะแนนหรือไม่ ถ้าไม่ถึง 50 คะแนนก็สอบไม่ผ่าน ถ้าเกิน 50 คะแนนก็คือสอบผ่าน </li></ul></ul>> 50 คะแนนใช่ไหม ? ผ่าน ใช่ ไม่ ผ่าน ไม่ใช่
  16. 16. Flow Chart ( ผังงาน ) <ul><li>ตัวอย่าง โครงสร้าง IF </li></ul><ul><ul><li>แม่ถามว่าหิวข้าวหรือไม่ ถ้าหิวก็ให้กิน ถ้าไม่หิวไม่ต้องกิน แล้วจึง เดินงานไปโรงเรียน ( งานต่อไป ) </li></ul></ul>หิวใช่ไหม ? งานกินข้าว ใช่ งานเดินทางมาเรียน ไม่ใช่
  17. 17. ตัวอย่าง Flow Chart การไปมหาลัย
  18. 18. การพัฒนาอัลกอริธึม <ul><li>ตัวอย่าง โครงสร้าง IF </li></ul><ul><ul><li>จงเขียนผังงาน แสดงยอดขาย ถ้ายอดขายมากกว่า 1000 บาทมีส่วนลดให้ 10% </li></ul></ul>
  19. 19. การพัฒนาอัลกอริธึม <ul><li>ตัวอย่าง ( ต่อ ) โครงสร้าง IF </li></ul>start ยอดขายก่อนหักส่วนลด ถ้ายอดขาย >1000 ลด 10% ยอดขายสุทธิ จริง ไม่จริง End
  20. 20. การพัฒนาอัลกอริธึม <ul><li>โครงสร้าง IF-else </li></ul>เงื่อนไข งาน 1 งาน 2 If เงื่อนไข งาน 1 Else งาน 2 End if ใช่ ไม่ใช่
  21. 21. การพัฒนาอัลกอริธึม <ul><li>โครงสร้าง IF-Else </li></ul><ul><ul><li>ตัวอย่าง ร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ลูกค้า ถ้าเป็นชายจะลดให้ 5% แต่ถ้าเป็นหญิง จะลดให้ 10% จงเขียนอัลกอริธึมเพื่อพิมพ์ยอดขาย </li></ul></ul>
  22. 22. IF-ELSE เริ่มต้น รับค่า total, sex ถ้าเป็นผู้ชาย คำนวณส่วนลด 10% คำนวณส่วน ลด 5 % ราคาสุทธิ = ราคาสินค้า - ส่วนลด แสดงราคาสุทธิ จริง ไม่จริง สิ้นสุด
  23. 23. IF-ELSE start Read total, sex discount= 0 Sex = ‘M’ discount = total * 0.1 discount = total * 0.05 netTotal = total - discount Write netTotal yes no End
  24. 24. ตัวอย่างการเขียนผังงาน <ul><li>เมื่อเราซื้อยาจากร้านขายยาที่มีอยู่ทั่ว ๆ ไปนั้น ในส่วนของวิธีใช้ยามักจะแยกขนาดรับประทานไว้ตามอายุ เช่น </li></ul><ul><li>อายุมากกว่า 10 ปี รับประทานครั้งละ 3 ช้อนชา </li></ul><ul><li>อายุ 5-10 ปี รับประทานครั้งละ 2 ช้อนชา </li></ul><ul><li>อายุ 1-5 ปี รับประทานครั้งละ 1 ช้อนชา </li></ul><ul><li>เด็กอายุต่ำกว่า 1 ปี ห้ามรับประทาน </li></ul><ul><li>จงเขียนผังงานที่แสดงถึงขนาดของการใช้ยาตามอายุนี้ </li></ul>
  25. 25. <ul><li>รับอายุ </li></ul><ul><li>ตรวจสอบ อายุน้อยกว่า 1 ปีใช่ไหม </li></ul><ul><li>ใช่ ห้ามรับประทานยา </li></ul><ul><li>ไม่ใช่ ตรวจสอบ อายุน้อยกว่า 5 ปีใช่ไหม </li></ul><ul><li> ใช่ รับประทาน 1 ช้อนชา </li></ul><ul><li>ไม่ใช่ ตรวจสอบ อายุน้อยกว่า 10 ปีใช่ไหม </li></ul><ul><li> ใช่ รับประทาน 2 ช้อนชา </li></ul><ul><li> ไม่ใช่ รับประทาน 3 ช้อนชา </li></ul><ul><li>แสดงขนาดยาที่ใช้ </li></ul>
  26. 26. <ul><li>รับอายุ </li></ul><ul><li>ตรวจสอบ อายุมากกว่า 10 ปีใช่ไหม </li></ul><ul><li>ใช่ รับประทาน 3 ช้อนชา </li></ul><ul><li>ไม่ใช่ ตรวจสอบ อายุมากกว่า 5 ปีใช่ไหม </li></ul><ul><li> ใช่ รับประทาน 2 ช้อนชา </li></ul><ul><li>ไม่ใช่ ตรวจสอบ อายุมากกว่า 1 ปีใช่ไหม </li></ul><ul><li> ใช่ รับประทาน 1 ช้อนชา </li></ul><ul><li> ไม่ใช่ ห้ามรับประทานยา </li></ul><ul><li>แสดงขนาดยาที่ใช้ </li></ul>
  27. 27. เริ่มต้น อายุ < 1 อายุ < 6 อายุ < 10 รับประทานครั้งละ 3 ช้อนชา จบงาน ห้ามรับประทาน รับประทานครั้งละ 1 ช้อนชา รับประทานครั้งละ 2 ช้อนชา ใช่ ไม่ใช่ ใช่ ใช่ ไม่ใช่ ไม่ใช่
  28. 28. เริ่มต้น อายุ > 10 อายุ > 6 อายุ > 1 ห้ามรับประทาน จบงาน รับประทานครั้งละ 3 ช้อนชา รับประทานครั้งละ 2 ช้อนชา รับประทานครั้งละ 1 ช้อนชา ใช่ ใช่ ใช่ ไม่ใช่ ไม่ใช่ ไม่ใช่
  29. 29. การบ้าน 30 มิ . ย . 2553 6/2 <ul><li>1. รัฐบาลเปลี่ยนอัตราการจัดเก็บภาษีอัตราใหม่ดังนี้ </li></ul><ul><ul><li>ผู้มีเงินรายได้ 0 - 200,000 บาท ไม่ต้องเสียภาษี </li></ul></ul><ul><ul><li>ผู้มีเงินรายได้ 200,001 - 500,000 บาท เสียภาษี 3 % </li></ul></ul><ul><ul><li>ผู้มีเงินรายได้ 500,001 - 1,000,000 บาท เสียภาษี 5 % </li></ul></ul><ul><ul><li>ผู้มีเงินรายได้ 1,000,001 - 5,000,000 บาท เสียภาษี 7 % </li></ul></ul><ul><ul><li>ผู้มีเงินรายได้ 5,000,001 ขึ้นไป เสียภาษี 10 % </li></ul></ul><ul><li>จงเขียนผังงานแสดงภาษีที่ผู้มีเงินได้ต้องจ่าย </li></ul><ul><li>( ให้นักเรียนเขียนผัง Process แสดงมาด้วย ) </li></ul>
  30. 30. การพัฒนาอัลกอริธึม <ul><li>โครงสร้างทำซ้ำ (Repetition Structure) </li></ul><ul><ul><li>While Repetition Structure </li></ul></ul><ul><ul><ul><li>โครงสร้างที่ต้องตรวจสอบเงื่อนไขก่อนทำในลูป </li></ul></ul></ul><ul><ul><li>Do While Repetition Structure </li></ul></ul><ul><ul><ul><li>โครงสร้างที่ต้องประมวลผลในลูปอย่างน้อย 1 รอบก่อนทดสอบเงื่อนไขออกจากลูป </li></ul></ul></ul>
  31. 31. การพัฒนาอัลกอริธึม <ul><li>โครงสร้าง while </li></ul>While เงื่อนไข งาน end while เงื่อนไข งาน เท็จ จริง รหัสเทียม ผังงาน
  32. 32. การพัฒนาอัลกอริธึม <ul><li>โครงสร้าง DO while </li></ul>เงื่อนไข งาน เท็จ จริง ผังงาน DO คำสั่งต่าง ๆ While เงื่อนไข รหัสเทียม
  33. 33. การพัฒนาอัลกอริธึม <ul><li>ตัวอย่าง โครงสร้าง while </li></ul><ul><li>จงเขียน โปรแกรมคำนวณหาผลรวมของสมการต่อไปนี้ </li></ul><ul><li>sum = 1 + 2 + 3 + … + N </li></ul><ul><li>วิเคราะห์ปัญหา </li></ul><ul><ul><li>Output คือ sum </li></ul></ul><ul><ul><li>Input คือ N </li></ul></ul><ul><ul><li>Process </li></ul></ul><ul><ul><ul><ul><li>1. รับค่า N </li></ul></ul></ul></ul><ul><ul><ul><ul><li>2. คำนวณหาค่าของ sum ( วงลูป ด้วยโครงสร้าง while) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>3. พิมพ์ผลลัพธ์ sum </li></ul></ul></ul></ul>
  34. 34. ตัวอย่าง โครงสร้าง while start Read N Sum = 0 I = 1 I <= N Sum = sum + I I = I + 1 write sum stop begin Read N Sum = 0 I = 1 While (I <= N) sum = sum + I I = I +1 End while Write “sum” , sum end รหัสเทียม ผังงาน No Yes
  35. 35. ตัวอย่าง โครงสร้าง Do while start Read N Sum = 0 I = 0 I < N Sum = sum + I I = I + 1 write sum stop yes no Begin Read N sum = 0 I = 0 do I = I + 1 sum = sum + I while (I < N) write Sum end ผังงาน รหัสเทียม
  36. 36. โครงสร้างการทำงานแบบมีการทำงานซ้ำ ( Iteration ) เริ่มต้น J = 0 J = J + 1 J < 100 จบงาน ใช่ ไม่ใช่ Do While เริ่มต้น J = 0 J = J + 1 J < 100 จบงาน ไม่ใช่ ใช่ While
  37. 37. โครงสร้างการทำงานแบบมีการทำงานซ้ำ ( Iteration ) <ul><li>จงเขียนผังงาน แสดงถึงการพิมพ์ค่าบวกของ 1+2+3+4+5+.....+100 </li></ul><ul><li>ออกทางเครื่องพิมพ์ </li></ul>เริ่มต้น J=1 SUM = 0 SUM = SUM+J J=J+1 J <=100? Print SUM จบงาน ใช่ ไม่ใช่
  38. 38. การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง ( Coding ) <ul><li>การเขียนโปรแกรมที่ดีนั้น ควรจะทำตามขั้นตอน คือเริ่มตั้งแต่ วิเคราะห์ปัญหา ก่อนแล้วทำการออกแบบโปรแกรม จึงเริ่มเขียนโปรแกรม สำหรับผู้ที่ไม่มีประสบการณ์ควรทดลองเขียนในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทำงานได้แล้วจึงทำการคีย์ลงเครื่อง </li></ul>
  39. 39. การตรวจสอบข้อผิดพลาดของโปรแกรม ( Testing and Debugging the Program ) <ul><li>รูปแบบข้อผิดพลาด มี 3 แบบคือ </li></ul><ul><ul><li>Syntax Error – ข้อผิดพลาดจากการใช้ไวยากรณ์ภาษาที่ผิด หรือ อาจเกิดจากการสะกดคำผิด </li></ul></ul><ul><ul><li>Run-time Error – ข้อผิดพลาดในระหว่างการปฏิบัติงาน ( Execution ) มักเกิดจากความรู้เท่าไม่ถึงการณ์ </li></ul></ul><ul><ul><li>Logical Error – ข้อผิดพลาดจากการประมวลผลที่ไม่ถูกต้องเป็นข้อผิดพลาดที่หาและแก้ได้ยากที่สุด ต้องทำการไล่โปรแกรมทีละคำสั่งเพื่อหาข้อผิดพลาดนั้น </li></ul></ul>
  40. 40. การตรวจสอบข้อผิดพลาดของโปรแกรม ( Testing and Debugging the Program ) <ul><li>วิธีการตรวจสอบข้อผิดพลาดของโปรแกรม มีดังนี้ </li></ul><ul><ul><li>การตรวจสอบด้วยตนเอง ( Self Checking ) เขียนโปรแกรมลงกระดาษแล้วไล่เช็คตรวจสอบการทำงานทีละขั้นด้วยตนเอง ว่าจะมีการทำงานที่ถูกต้องตามความต้องการหรือไม่ </li></ul></ul><ul><ul><li>ตรวจสอบด้วยการแปลโปรแกรม ( Translating ) การแปลเป็นภาษาเครื่อง ตรวจสอบข้อผิดพลาดของโปรแกรม </li></ul></ul>
  41. 41. การทดสอบความถูกต้องของโปรแกรม ( Testing and Validating ) <ul><li>วิธีทดสอบความถูกต้องของข้อมูล มีดังนี้ </li></ul><ul><ul><li>กรณีที่ข้อมูลถูกต้อง ( valid case ) ทดสอบโดยใส่ข้อมูลที่ถูกต้องลงไปในโปรแกรม เพื่อทดสอบผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่ </li></ul></ul><ul><ul><li>การใช้ขอบเขตและความถูกต้องของ ข้อมูล ( Range check and Completeness check ) เป็นการเช็คขอบเขตข้อมูล </li></ul></ul><ul><ul><li>การใช้ความสมเหตุสมผล ( Consistency Check ) </li></ul></ul>
  42. 42. การทดสอบความถูกต้องของโปรแกรม ( Testing and Validating ) <ul><ul><li>ข้อมูลที่เป็นตัวเลขและตัวอักษร ( Correct No. and Type character check ) ตรวจสอบว่าถ้าเป็นฟิลด์ที่เป็นตัวเลขอย่างเดียว เช่น จำนวนเงิน ก็ควรจะป้อนข้อมูลได้เฉพาะตัวเลขเท่านั้น </li></ul></ul><ul><ul><li>ข้อมูลเป็นไปตามข้อกำหนด ( Existence Check ) ข้อมูลที่ป้อนต้องเป็นไปตามที่กำหนดไว้แน่นอนแล้วเท่านั้น </li></ul></ul>

×