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

Post on 27-Oct-2019

3 views 0 download

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

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

Chapter 2

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

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

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

1

2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

วิธีท า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

วิธีท า

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

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

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

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

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

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

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

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

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

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

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

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

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

การเขียนโปรแกรมเชิงวัตถุ (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. จบการท างาน

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

หนึ่งแล้ว

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

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

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

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

Behaviors values of data Object

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

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