Week 7 Basic Program 1 (Application) Outline • Pseudocode รหัสจำลอง / คำอธิบำยระดับสูง • แบบฝึ กหัด • กำรประกำศตัวแปร (int และ string) • เงือ่ นไข if-else, if-else if-else •

Download Report

Transcript 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