Chapter 2 - elfhs.ssru.ac.th ·...

20
การเขียนโปรแกรมเชิงโครงสร้าง Chapter 2

Transcript of Chapter 2 - elfhs.ssru.ac.th ·...

Page 1: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง

Chapter 2

Page 2: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

รูปแบบของแนวคิดในการเขียนโปรแกรม

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming)

1

2

Page 3: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

การก าหนดขั้นตอนให้เครื่องคอมพิวเตอร์ท างานโดยมีโครงสร้างการควบคุมพื้นฐาน 3 หลักการ คือ

• การท างานแบบตามล าดับ (Sequence)

• การเลือกกระท าตามเงื่อนไข (Decision)

• การท าซ้ า (Loop)

ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง

Page 4: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง

ต าราหลายๆ เล่มอาจกล่าวว่า decision แยกเป็น if กับ case หรือ loop นั้น ยังแยก

เป็น while และ until ซึ่งแตกต่างกัน หรืออาจเป็นการจัดการค าสั่งต่างๆให้มีรูปแบบและ

มาตรฐานที่สามารถเขียนโปรแกรมได้ง่าย ตรวจสอบได้ง่าย ทั้งสะดวกในการปรับปรุง

โปรแกรมในอนาคต มีโครงสร้างการควบคุม 3 รูปแบบ ได้แก่

Page 5: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง

1.1) โครงสร้างแบบล าดับขั้นตอน (Sequence)

ประกอบด้วยค ำสั่งหรือชุดค ำสั่งที่ไม่มีเงื่อนไข ไม่มีกำร

ตัดสินใจมีทำงเข้ำทำงเดียวและมีทำงออกทำงเดียว

ด ำเนินกำรแบบเรียงล ำดับต่อเนื่อง โดยแต่ละ ขั้นตอนมี

กำรด ำเนินกำรเพียงครั้งเดียว มีรูปแบบผังงำนดังภำพ

Page 6: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

ตัวอย่าง โปรแกรมค ำนวณหำค่ำเฉลี่ยคะแนนวิชำเทคโนโลยีสำรสนเทศของนักเรียนชั้นมัธยมศึกษำปีท่ี 6 จ ำนวน 5 คน และแสดงผลกำรค ำนวณที่ได้

วิธีท า

1. สิ่งที่โจทย์ต้องการ (Output) คือค านวณหาคะแนนเฉลีย่วิชาเทคโนโลยีสารสนเทศของนักเรียน จ านวน 5 คน แสดงผลการค านวณที่ได้

2. แสดงผลลัพธ์ คือ แสดงผลการค านวณเฉลี่ยคะแนนวิชาเทคโนโลยีสารสนเทศของนักเรียนชั้นมัธยมศึกษาปีที่ 6 ที่ได้

3. ข้อมูลน าเข้า คือคะแนนวิชาเทคโนโลยีสารสนเทศ ของนักเรียนแต่ละคนจ านวน 5 คน

Page 7: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)วิธีท า

4. ตัวแปรจ านวน 5 ตัวแปร ตั้งแต่ score1 …… score5 และค่าเฉลีย่ ซึ่งก าหนดดังนี้

- score1 แทนคะแนนของนักเรียนคนที ่1 - score2 แทนคะแนนของนักเรียนคนที ่2- score3 แทนคะแนนของนักเรียนคนที ่3- score4 แทนคะแนนของนักเรียนคนที ่4- score5 แทนคะแนนของนักเรียนคนที ่5

5. ขั้นตอนการประมวลผล- รับข้อมูลคะแนนของนักเรียนตั้งแต่ คนที่ 1 – คนที่ 5- ค านวณหาค่าเฉลี่ยคะแนนโดยน าคะแนนของนักเรียนทั้ง 5 คนมาบวกกัน และหารด้วยจ านวนนักเรียนทั้งหมดคือ 5 - แสดงผลการค านวณค่าเฉลีย่คะแนนวิชาเทคโนโลยีสารสนเทศของนักเรียนชั้นมัธยมศึกษาปีที่ 6

6. จบการท างาน

Page 8: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

Page 9: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

1.2) โครงสรา้งแบบมีทางเลือกในการตัดสินใจเลือก

ทางใดทางหนึ่ง (Decision)

โปรแกรมมีการตรวจสอบเงื่อนไข (Condition)

ว่าเป็นค่าจริงหรือค่าเท็จแล้วด าเนินการ ตามค าสั่งที่

เงื่อนไขก าหนดต่อไป โดยมีรูปแบบผังงานดังภาพ

Page 10: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ โดยถ้าคะแนน 50 ขึ้นไป จะแสดงข้อความว่า "นักเรียนสอบผ่าน"

วิธีท า

1. สิ่งที่โจทย์ต้องการ คือการตรวจสอบคะแนนว่ามากกว่า 50 หรือไม่ แล้วแสดงผลการตรวจสอบคะแนนน้ัน2. แสดงผลลัพธ์ คือแสดงว่า "นักเรียนสอบผ่าน“3. ข้อมูลน าเข้า คือ คะแนนที่จะใชต้รวจสอบ4. ตัวแปรที่ใช้มีจ านวน 1 ตัวแปร คือ คะแนนที่รับเข้ามาตรวจสอบ แทนด้วย score

Page 11: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ โดยถ้าคะแนน 50 ขึ้นไป จะแสดงข้อความว่า "นักเรียนสอบผ่าน"

วิธีท า5. ขั้นตอนการประมวลผล

- รับข้อมูลคะแนนแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ คือ score- ตรวจสอบค่าคะแนน 50 ขึ้นไปหรือไม่- แสดงผล กรณีที่ได้คะแนน 50 คะแนนขึ้นไป แสดงข้อความว่า "นักเรียนสอบผ่าน" แต่ถ้าได้น้อยกว่า 50

คะแนน ให้จบการท างาน6. จบการท างาน

Page 12: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

Page 13: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

1.3) โครงสร้างแบบท าซ้ า (Iteration) เป็นกำรท ำงำนแบบวนซ้ ำหลำย ๆ รอบ และหลุดจำกเงื่อนไข ก็ต่อเมื่อเงื่อนไขตรงกับที่ก ำหนดไว้

Page 14: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

Page 15: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)

Page 16: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming)

แนวคิดเชิงวัตถุ ตั้งอยู่บนพื้นฐำนกำรแจกแจงรำยละเอียดของปัญหำ ผู้เขียนโปรแกรมต้องพยำยำมแยกประเภทของวัตถุให้ได้ ต้องมีจินตนำกำรพอสมควร ซึ่งจะมองวัตถุหนึ่ง ๆ เป็นแหล่งรวมของข้อมูล และกระบวนกำรไว้ด้วยกัน โดยจะมี คลำส (Class) เป็นตัวก ำหนดคุณสมบัติของวัตถุ และคลาสสามารถสืบทอดคุณสมบัติ (Inheritance) ที่เรียกว่า Subclass ได้ มีกำรน ำกลับมำใช้ใหม่ (Reusable) ท ำให้ลดขั้นตอนกำรพัฒนำโปรแกรมลงได้ โดยเฉพำะโปรแกรมขนำดใหญ่ที่มีควำมซับซ้อนสูง

Page 17: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming)

ตัวอย่าง กำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่ 1*12=12 จนกระทั่ง 12*12 = 144 สำมำรถอธิบำยได้ดังนี้

1. เริ่มท างาน2. ก าหนดค่าตัวแปร count = 13. เริ่มต้นค านวณตั้งแต่ครั้งแรกจนครบเงื่อนไข โดยเริ่มตรวจสอบว่า count <= 12 จริงให้ท า

result = count * 12พิมพ์ result

count = count + 1แล้วเริ่มต้นตรวจสอบใหม่ ท าเช่นนี้ จนกว่าเงื่อนไขจะเป็นเทจ็ จบค าสั่งการวนลูป4. จบการท างาน

Page 18: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ

การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) นั้นจะแยกส่วนของข้อมูลจาก

ฟังก์ชัน อย่างชัดเจน ซึ่งการแยกข้อมูลจากฟังกช์ันนั้นมักจะมผีลใหเ้กิดความสับสน และค่อนข้างยาก

ในการปรับปรุง แก้ไขโดยเฉพาะกับโปรแกรมขนาดใหญ่

การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) จะเขียนโปรแกรมโดยอ้างอิงโมเดล

วัตถุในโลกที่มีอยู่จริงในการแกป้ัญหา เช่น รถยนต์ บัญชีธนาคาร หรือสุนัข แปลงให้อยู่ในรูปแบบ

โค้ดภาษา ซึ่งบางส่วนอาจจะไม่ถูกเรียกใช้งานก็ได้

การเขียนโปรแกรมเชิงโครงสร้างเน้นการแปลงสิ่งที่มีอยู่จริงให้อยู่ในกฎเกณฑ์ของโปรแกรมภาษา แต่

การเขียนโปรแกรมเชิงวัตถุนั้นเน้นการแปลงให้โปรแกรมภาษาอยู่ในรูปแบบของ สิ่งที่มีอยู่จริง

Page 19: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ

ตัวอย่าง ในการเขียนโปรแกรมเชิงโครงสร้าง รถยนต์คัน

หนึ่งจะถูกแสดงโดยกลุ่มของฟังก์ชัน เช่น สตาร์ท เบรก จอด

เร่งเครื่อง เป็นต้น และก็จะมีกลุ่มของตัวแปรที่แยกกันอยู่เปน็

สี จ านวนประตูรถ วันที่ผลิต รุ่น เป็นต้น จากนั้นเรากส็ร้างตัว

แปรและก าหนดค่าเริ่มต้นให้มัน แล้วก็ไปเรียกใชฟ้ังก์ชันต่างๆ

ที่เกี่ยวข้อง กับตัวแปรที่เราก าหนดขึ้น เรากจ็ะได้รถยนต์คัน

หนึ่งแล้ว

Page 20: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่

ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ

เราสามารถสร้างวัตถุได้ง่ายๆเหมือนกับที่เราสร้างตัวแปรทั่วไป

ในโปรแกรมเชิงวัตถุ นั้นจะระบุวัตถุที่จะใชแ้ละเรียกใช้งานฟังก์ชัน

ของมันในเวลาใดๆ ก็ได้

Behaviors values of data Object

การเขียนโปรแกรมเชิงวัตถุ คือ การรวมตัวระหว่างตัวแปร

สถานะ และพฤติกรรมจะได้ ผลลัพธ์เป็นวัตถุ (object)