1 / 39

การเขียนโปรแกรมเบื้องต้น

การเขียนโปรแกรมเบื้องต้น. ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น. ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์. การวิเคราะห์ปัญหา (Problem analysis) การออกแบบโปรแกรม (Design) การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง ( Coding )

ama
Télécharger la présentation

การเขียนโปรแกรมเบื้องต้น

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การเขียนโปรแกรมเบื้องต้นการเขียนโปรแกรมเบื้องต้น ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น

  2. ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ • การวิเคราะห์ปัญหา (Problem analysis) • การออกแบบโปรแกรม (Design) • การเขียนโปรแกรมโดยใช้ภาษาใดภาษาหนึ่ง (Coding) • การตรวจสอบข้อผิดพลาดของโปรแกรม (Testing and Debugging) • การทดสอบความถูกต้องของโปรแกรม (Testingand validating) • การทำเอกสารประกอบโปรแกรม (Documentation) • การบำรุงรักษาโปรแกรม (Program Maintenance)

  3. Input Output Process Input 2 3 1 การวิเคราะห์ปัญหา • สิ่งที่ต้องพิจารณา • Input ? (พิจารณาจาก Output) • Output? (พิจารณาอันดับแรก) • Process (ยังไม่ต้องสนใจตอนนี้)

  4. แนวความคิดเบื้องต้น การวิเคราะห์ปัญหา • การวิเคราะห์ปัญหา วิเคราะห์ผลลัพธ์ วิเคราะห์ Input Process เขียนขั้นตอนการแก้ปัญหา

  5. การออกแบบโปรแกรม • เครื่องมือที่ใช้ในการออกแบบ • ผังงาน (Flowchart) ขั้นตอนการแก้ปัญหาทีละขั้นตอนในลักษณะรูปภาพ • รหัสจำลอง (Pseudo) รูปแบบเป็นภาษาพูดง่าย ๆ ภาษาอังกฤษ หรือภาษาไทยก็ได้

  6. การพัฒนาอัลกอริธึม • ข้อดีของรหัสเทียม (จำลอง) • แปลงเป็นโปรแกรมได้ง่าย • ข้อดีของผังงาน • อ่านง่าย เข้าใจตรงกันได้

  7. สัญลักษณ์ในผังงาน แฟ้มข้อมูล จุดเริ่มต้น หรือสิ้นสุด จุดเชื่อมต่อในหน้าอื่น อ่านข้อมูลเข้า หรือแสดงผล จุดเชื่อมต่อในหน้าเดียวกัน ประมวลผล โปรแกรมย่อย ตัดสินใจ พิมพ์ผลทางเครื่องพิมพ์ แสดงผลทางหน้าจอ แสดงทิศทางการประมวลผล

  8. การพัฒนาอัลกอริธึม • หลักการโครงสร้างควบคุม (Control structures) การเขียนขั้นตอนในรายละเอียดของแต่ละอัลกอริธึม อาศัยโครงสร้างควบคุมดังนี้ • โครงสร้างลำดับ (Sequence structure) • โครงสร้างตัดสินใจ (Selection structure) • โครงสร้างทำซ้ำ (Repetition structure)

  9. การพัฒนาอัลกอริธึม • โครงสร้างลำดับ • หมายถึง งานที่ต้องทำต้องมีลำดับก่อนหลัง • เช่น อัลกอริธึม “การตื่นนอนต้อนรับวันใหม่” • งาน ตื่นนอน • งาน ถอดชุดนอน • งาน เข้าห้องน้ำ • งาน แต่งตัว • งาน เดินทางมาเรียน ต้องจัดลำดับให้ถูกต้อง งาน ตื่นนอน งาน ถอดชุดนอน งาน เข้าห้องน้ำ งาน แต่งตัว งาน เดินทางมาเรียน

  10. โครงสร้างการทำงานแบบลำดับ (Sequence) • โครงสร้างลำดับ • หลักการให้มองงานเป็นชิ้นใหญ่ก่อน ยังไม่ต้องลงรายละเอียด แล้วจัดลำดับความคิดว่าจะทำอะไร ก่อนหรือหลัง ตามลำดับ Begin งาน 1 งาน 2 end งาน 1 งาน 2 ผังงาน รหัสเทียม

  11. ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน • จงเขียนผังงานที่แสดงลำดับการคำนวณตัวเลข เพื่อหาผลลัพธ์การคำนวณ แล้วเก็บผลลัพธ์ไว้ในหน่วยความจำตำแหน่ง K 8 + 10 / 5 - 6 * 3 โดยมีลำดับการคำนวณทางเลขคณิต ดังนี้ 1. ยกกำลัง 2. คูณหรือหาร (โดยทำจากซ้ายไปขวา) 3. บวกหรือลบ (โดยทำจากซ้ายไปขวา)

  12. ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน 1 เริ่มต้น T1 = 10 / 5 T3 = 8 + T1 T2 = 6 * 3 K = T3 - T2 1 จบงาน

  13. start Read x Y = x*x + 2*x +10 Write y stop การพัฒนาอัลกอริธึม example: จงเขียนโปรแกรมคำนวณหาค่า y ของสมการ y = x^2 + 2x +10 Begin read x y = x*x + 2*x +10 Write y end ผังงาน รหัสเทียม

  14. จงเขียนผังงานคำนวณการหาพื้นที่สี่เหลี่ยมคางหมู โดยกำหนดค่าความยาวด้านคู่ขนานและความสูงให้ เริ่มต้น 1 พิมพ์ค่าพื้นที่ อ่านความยาวด้าน คู่ขนานและความสูง จบงาน คำนวณหาพื้นที่คางหมู = ½ * ด้านคู่ขนาน * สูง 1

  15. การพัฒนาอัลกอริธึม • โครงสร้างตัดสินใจ (selection) • โครงสร้าง IF • โครงสร้าง IF else

  16. ใช่ เงื่อนไข งานที่ต้องทำ ไม่ใช่ งานต่อไป การพัฒนาอัลกอริธึม • โครงสร้าง IF • เป็นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทำหรือไม่ทำ ก่อนที่จะไปทำงานอื่นต่อไป

  17. การพัฒนาอัลกอริธึม • ตัวอย่าง โครงสร้าง IF • แม่ถามว่าหิวข้าวหรือไม่ ถ้าหิวก็ให้กิน ถ้าไม่หิวไม่ต้องกิน แล้วจึง เดินงานไปโรงเรียน (งานต่อไป) ใช่ หิวใช่ไหม? งานกินข้าว ไม่ใช่ งานเดินทางมาเรียน

  18. จงเขียนผังงานแสดงการเขียนและส่งจดหมายจงเขียนผังงานแสดงการเขียนและส่งจดหมาย เริ่มต้น 1 เขียนจดหมาย ไม่มี มี มีแสตมป์หรือไม่ พับจดหมาย ทำการซื้อแสตมป์ ใส่ซองจดหมาย ติดแสตมป์ จ่าหน้าซอง ส่งจดหมาย 1 ตัวอย่างการเขียนผังงาน จบงาน

  19. การพัฒนาอัลกอริธึม • ตัวอย่าง โครงสร้าง IF • จงเขียนผังงาน แสดงยอดขาย ถ้าซื้อสินค้ามากกว่า 1000 บาทมีส่วนลดให้ 10% • วิธีคิด: • Output คือยอดขายสุทธิ • Input คือ ยอดขายก่อนหักส่วนลด • Process มีรายละเอียดเขียนด้วยผังงานได้ในหน้าถัดไป

  20. start การพัฒนาอัลกอริธึม Read total • ตัวอย่าง(ต่อ) โครงสร้าง IF Discount = 0 no yes Total >1000 Begin read total discount = 0 if (total >1000) then discount = total *10/100 end if netTotal = total – discount Write netTotal End Discount = total * 10/100 NetTotal = total - discount Write NetTotal ผังงาน รหัสเทียม End

  21. การพัฒนาอัลกอริธึม • โครงสร้าง IF-else If เงื่อนไข งาน 1 Else งาน 2 End if ใช่ ไม่ใช่ เงื่อนไข งาน 2 งาน 1

  22. การพัฒนาอัลกอริธึม • โครงสร้าง IF-Else • ตัวอย่าง ร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ลูกค้า ถ้าเป็นชายจะลดให้ 5% แต่ถ้าเป็นหญิง จะลดให้ 10% จงเขียนอัลกอริธึมเพื่อพิมพ์ยอดขาย • วิเคราะห์ปัญหา • Output คือ ราคาสุทธิ กำหนดให้เป็น netTotal • Input คือ ราคาสินค้า และ เพศ กำหนดให้เป็น total และ sex ตามลำดับ • Process เขียนด้วยผังงาน ดังในหน้าต่อไป

  23. IF-ELSE start Read total, sex discount= 0 no yes Sex = ‘M’ discount = total * 0.1 discount = total * 0.05 netTotal = total - discount Write netTotal End

  24. เริ่มต้น ใช่ A > B C = A - B ไม่ใช่ ใช่ A < B C = A + B ไม่ใช่ C = A จบงาน โครงสร้างการทำงานแบบมีการเลือก (Selection) ในบริเวณ A และ B ของหน่วยความจำมีตัวเลขเก็บอยู่ จงเขียนผังงานที่แสดงการเปรียบเทียบระหว่าง A และ B ตามเงื่อนไข ดังนี้ ถ้า A>B คำนวณ A-B นำผลที่ได้ไปเก็บไว้ที่ C ถ้า A<B คำนวณ A+B นำผลที่ได้ไปเก็บไว้ที่ C ถ้า A=B เอา ไปเก็บไว้ที่ C

  25. ตัวอย่างการเขียนผังงานตัวอย่างการเขียนผังงาน • เมื่อเราซื้อยาจากร้านขายยาที่มีอยู่ทั่ว ๆ ไปนั้น ในส่วนของวิธีใช้ยามักจะแยกขนาดรับประทานไว้ตามอายุ เช่น อายุมากกว่า 10 ปี รับประทานครั้งละ 3 ช้อนชา อายุ 6-10 ปี รับประทานครั้งละ 2 ช้อนชา อายุ 2-5 ปี รับประทานครั้งละ 1 ช้อนชา เด็กอายุต่ำกว่า 1 ปี ห้ามรับประทาน จงเขียนผังงานที่แสดงถึงขนาดของการใช้ยาตามอายุนี้

  26. เริ่มต้น ใช่ รับประทานครั้งละ 3 ช้อนชา อายุ > 10 ไม่ใช่ ใช่ รับประทานครั้งละ 2 ช้อนชา 6 <= อายุ <=10 ไม่ใช่ ใช่ 2 <= อายุ <=5 รับประทานครั้งละ 1 ช้อนชา ไม่ใช่ ห้ามรับประทาน จบงาน

  27. การพัฒนาอัลกอริธึม • โครงสร้างทำซ้ำ (Repetition Structure) • While Repetition Structure • โครงสร้างที่ต้องตรวจสอบเงื่อนไขก่อนทำในลูป • Do While Repetition Structure • โครงสร้างที่ต้องประมวลผลในลูปอย่างน้อย 1 รอบก่อนทดสอบเงื่อนไขออกจากลูป

  28. การพัฒนาอัลกอริธึม • โครงสร้าง while เท็จ While เงื่อนไข งาน end while เงื่อนไข จริง งาน รหัสเทียม ผังงาน

  29. การพัฒนาอัลกอริธึม • โครงสร้าง DO while DO คำสั่งต่าง ๆ While เงื่อนไข งาน จริง เงื่อนไข รหัสเทียม เท็จ ผังงาน

  30. การพัฒนาอัลกอริธึม • ตัวอย่าง โครงสร้าง while • จงเขียน โปรแกรมคำนวณหาผลรวมของสมการต่อไปนี้ sum = 1 + 2 + 3 + … + N • วิเคราะห์ปัญหา • Output คือ sum • Input คือ N • Process มี งาน 3 งาน • งาน รับค่า N • งานคำนวณหาค่าของ sum (วงลูปด้วยโครงสร้าง while) • พิมพ์ผลลัพธ์ sum

  31. ตัวอย่าง โครงสร้าง while start begin Read N Sum = 0 I = 1 While (I <= N) sum = sum + I I = I +1 End while Write “sum” , sum end Read N Sum = 0 I = 1 No I <= N Yes Sum = sum + I write sum รหัสเทียม I = I + 1 stop ผังงาน

  32. ตัวอย่าง โครงสร้าง Dowhile start ผังงาน รหัสเทียม Read N Begin Read N sum = 0 I = 0 do I = I + 1 sum = sum + I while (I < N) write Sum end Sum = 0 I = 0 I = I + 1 Sum = sum + I yes no I < N write sum stop

  33. เริ่มต้น J = 0 ไม่ใช่ J < 100 ใช่ จบงาน J = J + 1 While โครงสร้างการทำงานแบบมีการทำงานซ้ำ (Iteration) เริ่มต้น J = 0 J = J + 1 ไม่ใช่ J < 100 จบงาน ใช่ Do While

  34. โครงสร้างการทำงานแบบมีการทำงานซ้ำ (Iteration) เริ่มต้น จงเขียนผังงาน แสดงถึงการพิมพ์ค่าบวกของ 1+2+3+4+5+.....+100 ออกทางเครื่องพิมพ์ J=1 SUM = 0 SUM = SUM+J J=J+1 ไม่ใช่ ใช่ J <=100? Print SUM จบงาน

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

  36. การตรวจสอบข้อผิดพลาดของโปรแกรม(Testing and Debugging the Program) • รูปแบบข้อผิดพลาด มี 3 แบบคือ • Syntax Error – ข้อผิดพลาดจากการใช้ไวยากรณ์ภาษาที่ผิด หรือ อาจเกิดจากการสะกดคำผิด • Run-time Error– ข้อผิดพลาดในระหว่างการปฏิบัติงาน(Execution) มักเกิดจากความรู้เท่าไม่ถึงการณ์ • Logical Error – ข้อผิดพลาดที่หาและแก้ได้ยากที่สุด ต้องทำการไล่โปรแกรมทีละคำสั่งเพื่อหาข้อผิดพลาดนั้น

  37. การตรวจสอบข้อผิดพลาดของโปรแกรม(Testing and Debugging the Program) • วิธีการตรวจสอบข้อผิดพลาดของโปรแกรม มีดังนี้ • การตรวจสอบด้วยตนเอง (Self Checking) เขียนโปรแกรมลงกระดาษแล้วไล่เช็คตรวจสอบการทำงานทีละขั้นด้วยตนเอง ว่าจะมีการทำงานที่ถูกต้องตามความต้องการหรือไม่ • ตรวจสอบด้วยการแปลโปรแกรม (Translating) การแปลเป็นภาษาเครื่อง ตรวจสอบข้อผิดพลาดของโปรแกรม

  38. การทดสอบความถูกต้องของโปรแกรม (Testing and Validating) • วิธีทดสอบความถูกต้องของข้อมูล มีดังนี้ • กรณีที่ข้อมูลถูกต้อง (valid case) ทดสอบโดยใส่ข้อมูลที่ถูกต้องลงไปในโปรแกรม เพื่อทดสอบผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่ • การใช้ขอบเขตและความถูกต้องของข้อมูล (Range check and Completeness check) เป็นการเช็คขอบเขตข้อมูล • การใช้ความสมเหตุสมผล (Consistency Check)

  39. การทดสอบความถูกต้องของโปรแกรม (Testing and Validating) • ข้อมูลที่เป็นตัวเลขและตัวอักษร (Correct No. and Type character check) ตรวจสอบว่าถ้าเป็นฟิลด์ที่เป็นตัวเลขอย่างเดียว เช่น จำนวนเงิน ก็ควรจะป้อนข้อมูลได้เฉพาะตัวเลขเท่านั้น • ข้อมูลเป็นไปตามข้อกำหนด (Existence Check) ข้อมูลที่ป้อนต้องเป็นไปตามที่กำหนดไว้แน่นอนแล้วเท่านั้น

More Related