Week 7 Basic Program 1 (Application) Outline • Pseudocode รหัสจำลอง / คำอธิบำยระดับสูง • แบบฝึ กหัด • กำรประกำศตัวแปร (int และ string) • เงือ่ นไข if-else, if-else if-else •
Download ReportTranscript Week 7 Basic Program 1 (Application) Outline • Pseudocode รหัสจำลอง / คำอธิบำยระดับสูง • แบบฝึ กหัด • กำรประกำศตัวแปร (int และ string) • เงือ่ นไข if-else, if-else if-else •
Week 7 Basic Program 1 (Application) Outline • Pseudocode รหัสจำลอง / คำอธิบำยระดับสูง • แบบฝึ กหัด • กำรประกำศตัวแปร (int และ string) • เงือ่ นไข if-else, if-else if-else • กำรวนซ้ำ for, while 2 Pseudocode • Pseudocode คือ รหัสจำลอง หรือ คำสังเที ่ ยม • อ่ำนว่ำ “ซู-โด-โค้ด” หรือ “สู-โด-โค้ด” • ใช้วำงแผน อธิบำยรำยละเอียด และบันทึกขัน้ ตอนกำรทำงำน ของชุดคำสัง/โปรแกรมในภำษำที ่ ม่ นุษย์ทวไปเข้ ั่ ำใจได้งำ่ ย (Readable description) • 1 บรรทัด ต่อ 1 คำสัง่ • มีลำดับกำรทำงำนจำกบนลงล่ำง 3 ตัวอย่ างของ Pseudocode 1 • เกมเปำ่ ยิง้ ฉุ บ ผู้เลนคนที ่ 1 ออกทา่ ่ ่ 2 ออกทา่ ทีม่ ผี เู้ ล่น 2 คน ผู้เลนคนที ่ แจ้งทาที ่ ้เล ู นทั ่ ผ ่ ง้ สองออก ถ้า ผู้เลนคนใดออกท าผิ ่ ่ ด แจ้งวา่ การเลนเป็ นโมฆะ ไมมี ่ ่ ผู้ชนะ มิฉะนั้น ถ้า ผู้เลนคนแรกออกท าชนะ ่ ่ แจ้งวา่ ผู้เลนคนแรกชนะ ่ มิฉะนั้น ถ้า ผู้เลนคนที ส ่ องออกทาชนะ ่ ่ แจ้งวา่ ผู้เลนคนที ส ่ องชนะ ่ มิฉะนั้น ถ้า ผู้เลนทั ่ ง้ สองออกทาเดี ่ ยวกัน แจ้งวา่ เสมอกัน จบเกม 4 ตัวอย่ างของ Pseudocode 2 • เกมเปำ่ ยิง้ ฉุ บ ทีม่ ผี เู้ ล่น 2 คน ผู้เลนคนที ่ 1 ออกทา่ (ตอจากด านซ ่ ่ ้ ้าย) ผู้เลนคนที ่ 2 ออกทา่ มิฉะนั้น ถ้า ผู้เลนคนแรกออกท าค ่ ่ ่ อน ้ แจ้งทาที ่ เล ถ้า ผู้เลนคนที ส ่ องออกทากระด ่ ผ ู้ นทั ่ ง้ สองออก ่ ่ ถ้า ผู้เลนคนใดออกท าผิ แจ้งวา่ ผู้เลนคนที ส ่ องช ่ ่ ด ่ แจ้งวาการเล นเป็ นโมฆะ ไมมี ู มิฉะนั้น ถ้า เลนคนที ส ่ องออก ่ ่ ่ ผ้ชนะ ่ มิฉะนั้น ถ้า ผู้เลนออกท าเหมื อนกัน แจ้งวา่ ผู้เลนคนแรกชน ่ ่ ่ แจ้งวา่ เสมอ มิฉะนั้น ถ้า ผู้เลนคนแรกออกท ากรรไ ่ ่ มิฉะนั้น ถ้า ผู้เลนคนแรกออกท ากระดาษ ถ้า ผู้เลนคนที ส ่ องออกทากระด ่ ่ ่ ่ ถ้า ผู้เลนคนที ส ่ องออกทาค แจ้งวา่ ผู้เลนคนแรกชน ่ ่ อน ้ ่ แจ้งวา่ ผู้เลนคนแรกชนะ มิฉะนั้น ถ้า เลนคนที ส ่ องออก ่ ่ มิฉะนั้น ถ้า เลนคนที ส ่ องออกทากรรไกร แจ้งวา่ ผู้เลนคนที ส ่ องช ่ ่ ่ แจ้งวา่ ผู้เลนคนที ส ่ องชนะ ่ (มีตอด ่ านขวา) ้ 5 Exercise 1 • ให้นกั ศึกษำลองเขียน Pseudocode ของกำรถอนเงินจำกตู้ ATM ใส่บัตร ATM ........... ........... ........... ........... ........... 6 Advantages & Limitations of Pseudocode • ช่วยในกำรออกแบบโปรแกรมแบบมีโครงสร้ำง (Structured design) • สำมำรถแปลงให้เป็ นโปรแกรมได้ไม่ยำก (Easily convert to a program) • ผูเ้ ขียนโปรแกรมสำมำรถทบทวน และทำควำมเข้ำใจกับ โปรแกรมขนำดใหญ่ได้ดี (Promote understand) • โค้ดของโปรแกรมทีม่ ขี นำดใหญ่มคี วำมยำวมำก • ทำให้กำรอ่ำนโค้ดเพือ่ ทำควำมเข้ำใจกับโปรแกรมทำได้ยำก 7 Advantages & Limitations of Pseudocode • ช่วยในกำรสือ่ สำรกับผูอ้ ่นื (Aid in communication) • นักพัฒนำโปรแกรมด้วยกัน • ช่วยอธิบำยกำรทำงำนของโปรแกรมทีท ่ ำงำนในภำษำต่ำงกัน • ไม่เห็นภำพทิศทำงกำรทำงำนของโปรแกรมชัดเจนเหมือน Flowchart • สำหรับผูท ้ เ่ี พิง่ เริม่ ต้น กำรเขียน Pseudocode อำจทำได้ยำก กว่ำกำรเขียน Flowchart 8 Exercise 2 : Grading system • สร้ำงระบบตัดเกรด • ระบบตัดเกรดคือระบบทีม่ คี วำมสำมำรถในกำรตัดเกรดจำกคะแนนที่ ได้รบั โดยมีเกณฑ์ดงั นี้ • 80-100 → A • 70-79 → B • 60-69 → C • 50-59 → D • 0-49 → F 9 Exercise 2-1 : Grading system • ระบบตัดเกรดมีควำมสำมำรถดังต่อไปนี้ • ทำงำน 5 รอบ • แต่ละรอบ รับอินพุต เป็ น [คะแนน] 1 ครัง้ • ขัน้ ตอนกำรทำงำนของระบบตัดเกรด • นักศึกษำกรอกคะแนน • แจ้งอักษรเกรด • ทำกำรวนรับคะแนนรอบต่อไป • ระบบจบกำรทำงำนเมือ่ ครบ 5 รอบ 10 Exercise 2-1 : Grading System Design • วิเครำะห์ขนั ้ ตอนกำรทำงำนทีส่ ำคัญ • ผูใ้ ช้กรอกคะแนน อินพุท • แจ้งอักษรเกรด เอาท์พท ุ • วนรับคะแนนต่อ อินพุท • จบกำรทำงำนเมือ่ ครบ 5 รอบ ตรวจสอบรอบการทางาน • เขียนเป็ น Pseudocode ผู้ใช้กรอกคะแนนของนักศึ กษา 1 คน ระบบคานวณอักษรเกรด ระบบแสดงผลอักษรเกรด ??? ??? 11 Exercise 2-1 : Grading system design • เติม Flowchart ต่อให้เสร็จ Start รั บคะแนน คานวณอักษรเกรด แสดงผลคะแนน 12 Exercise 2-1 : Output Please enter your score: 75 Your grade is B Please enter your score: 43 Your grade is F Please enter your score: 66 Your grade is C Please enter your score: 71 Your grade is B Please enter your score: 49 Your grade is F 13 Exercise 2-1 : Program 14 Exercise 2-2 : Grading system V2 • พัฒนำระบบตัดเกรดทีม่ คี วำมสำมำรถเพิม่ ขึน ้ • รับอินพุต [ จำนวนรอบกำรทำงำน: n ] 1 ครัง้ • รับอินพุต [ คะแนน: data ] รอบละ 1 ครัง้ 15 Exercise 2-2 : Output Please input the number of students: 3 Please enter your score: 75 Your grade is B Please enter your score: 43 Your grade is F Please enter your score: 66 Your grade is C 16 Exercise 2-2 : Program • โปรแกรมนี้ทำงำนได้ตรง ตำมควำมต้องกำรหรือไม่ 17 Exercise 2-3 : Grading system V3 • พัฒนำระบบตัดเกรดทีม่ คี วำมสำมำรถเพิม่ ขึน ้ • ทำงำนไปเรือ่ ยๆ จนกว่ำจะถูกสังให้ ่ หยุดทำงำน • รับอินพุต [ คะแนน: data ] รอบละ 1 ครัง้ • รับอินพุต [ ต้องกำรทำงำนต่อหรือไม่: ans ] รอบละ 1 ครัง้ 18 Exercise 2-2 : Output Please enter your score: 75 Your grade is B Would you like to continue? (y/n): y Please enter your score: 43 Your grade is F Would you like to continue? (y/n): y Please enter your score: 66 Your grade is C Would you like to continue? (y/n): n 19 Exercise 2-3 : Program 20 Summary • กำรเขียนโปรแกรมทีด่ ี ควรเริม่ จำกกำรออกแบบโปรแกรมก่อน • Design before coding • เหมือนกำรออกแบบบ้ำนก่อนเริม่ ลงมือสร้ำง • เครื่องมือช่วยในการออกแบบโปรแกรม ได้แก่ Pseudocode และ Flow chart • ขัน้ ตอนการเขียนโปรแกรมอย่างเป็ นระบบ คือ ั หำ (Requirements Analysis) 1. วิเครำะห์ปญ 2. ออกแบบกำรทำงำน (Design) 3. ลงมือสร้ำง (Construct) 4. ทดสอบ (Test) 21 Lab 7 : Basic Program • Lab 7.1 : โปรแกรมระบบตัดเกรดที่มีความสามารถ ต่อไปนี้ ต้องใช้ตวั แปร ชนิดไหน ชื่ออะไร ทาหน้ าที่ อะไรบ้าง • ผูใ้ ช้สำมำรถกรอกคะแนนของนักศึกษำเป็ นเลขจำนวนเต็มไป เรือ่ ยๆ จนกว่ำผูใ้ ช้จะกรอกคะแนน 999 โปรแกรมจึงหยุดกำร ทำงำน • ใน 1 รอบ รับอินพุตเป็ น [คะแนน] 1 ครัง้ • นับและแสดงผลรวมจำนวนนักศึกษำ แยกตำมอักษรเกรด เช่น A มี 2 คน, B มี 3 คน เป็ นต้น 22 Lab 7 : Basic Program • Lab 7.1 : โปรแกรมระบบตัดเกรดที่มีความสามารถ ต่อไปนี้ ต้องใช้ตวั แปร ชนิดไหน ชื่ออะไร ทาหน้ าที่ อะไรบ้าง • คำนวณและแสดงคะแนนเฉลีย่ ของนักศึกษำทัง้ ชัน้ • คะแนนเฉลีย่ = คะแนนรวมทัง้ หมด / จำนวนนักศึกษำ • คำนวณและแสดง GPA ของนักศึกษำทัง้ ชัน้ • GPA = เกรดรวมทัง้ หมด / จำนวนนักศึกษำ คะแนน คะแนน คะแนน คะแนน คะแนน 0-49 50-59 60-69 70-79 80-100 -> -> -> -> -> เกรด เกรด เกรด เกรด เกรด F (GPA = 0) D (GPA = 1) C (GPA = 2) B (GPA = 3) A (GPA = 4) 23 Lab 7 : Basic Program • ตัวอย่ำง กำรทำงำนของระบบตัดเกรดตำม Lab 7.1 24 Lab 7 : Basic Program • Lab 7.2 : ศึกษาการทางานของระบบตัดเกรด และเขียน Flowchart แสดงการทางาน • Lab 7.3 : การทดสอบระบบตัดเกรด ให้นักศึกษาสร้างชุดของกรณี การ ทดสอบ (Test Case) 4 กรณี ต่อไปนี้ และบันทึกผลลัพธ์ที่ได้จากการ ทางานของโปรแกรมที่นศ.สร้าง ตามกรณี ทดสอบนัน้ • ตัวอย่ำงกรณีทดสอบสำหรับระบบตัดเกรด ได้แก่ (60, 74, 88, 65, 42, 81, 999) • ผลการทางาน คือ A = 2, B = 1, C = 2, D = 0, F = 1, Average score: 68.33, Average GPA: 2.5 • • • • 7.3.1 ชุดกรณี ทดสอบที่ทกุ เกรดมีจานวนนักศึกษาอย่างน้ อย 1 คน 7.3.2 ชุดกรณี ทดสอบที่มีขอบล่างของคะแนนสาหรับทุกเกรด 7.3.3 ชุดกรณี ทดสอบที่มีคะแนนติดลบ และ คะแนนเกิน 100 7.3.4 ชุดกรณี ทดสอบที่มีคะแนนเป็ นข้อมูลชนิดอื่นที่ไม่ใช่ตวั เลข • Lab 7.4 : เขียนโปรแกรมระบบตัดเกรด 25