chapter 2 - elfhs.ssru.ac.th ·...
TRANSCRIPT
![Page 1: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/1.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง
Chapter 2
![Page 2: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/2.jpg)
รูปแบบของแนวคิดในการเขียนโปรแกรม
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming)
1
2
![Page 3: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/3.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
การก าหนดขั้นตอนให้เครื่องคอมพิวเตอร์ท างานโดยมีโครงสร้างการควบคุมพื้นฐาน 3 หลักการ คือ
• การท างานแบบตามล าดับ (Sequence)
• การเลือกกระท าตามเงื่อนไข (Decision)
• การท าซ้ า (Loop)
ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง
![Page 4: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/4.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง
ต าราหลายๆ เล่มอาจกล่าวว่า decision แยกเป็น if กับ case หรือ loop นั้น ยังแยก
เป็น while และ until ซึ่งแตกต่างกัน หรืออาจเป็นการจัดการค าสั่งต่างๆให้มีรูปแบบและ
มาตรฐานที่สามารถเขียนโปรแกรมได้ง่าย ตรวจสอบได้ง่าย ทั้งสะดวกในการปรับปรุง
โปรแกรมในอนาคต มีโครงสร้างการควบคุม 3 รูปแบบ ได้แก่
![Page 5: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/5.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
ความหมายของการเขียนโปรแกรมเชิงโครงสร้าง
1.1) โครงสร้างแบบล าดับขั้นตอน (Sequence)
ประกอบด้วยค ำสั่งหรือชุดค ำสั่งที่ไม่มีเงื่อนไข ไม่มีกำร
ตัดสินใจมีทำงเข้ำทำงเดียวและมีทำงออกทำงเดียว
ด ำเนินกำรแบบเรียงล ำดับต่อเนื่อง โดยแต่ละ ขั้นตอนมี
กำรด ำเนินกำรเพียงครั้งเดียว มีรูปแบบผังงำนดังภำพ
![Page 6: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/6.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
ตัวอย่าง โปรแกรมค ำนวณหำค่ำเฉลี่ยคะแนนวิชำเทคโนโลยีสำรสนเทศของนักเรียนชั้นมัธยมศึกษำปีท่ี 6 จ ำนวน 5 คน และแสดงผลกำรค ำนวณที่ได้
วิธีท า
1. สิ่งที่โจทย์ต้องการ (Output) คือค านวณหาคะแนนเฉลีย่วิชาเทคโนโลยีสารสนเทศของนักเรียน จ านวน 5 คน แสดงผลการค านวณที่ได้
2. แสดงผลลัพธ์ คือ แสดงผลการค านวณเฉลี่ยคะแนนวิชาเทคโนโลยีสารสนเทศของนักเรียนชั้นมัธยมศึกษาปีที่ 6 ที่ได้
3. ข้อมูลน าเข้า คือคะแนนวิชาเทคโนโลยีสารสนเทศ ของนักเรียนแต่ละคนจ านวน 5 คน
![Page 7: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/7.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (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 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/8.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
![Page 9: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/9.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
1.2) โครงสรา้งแบบมีทางเลือกในการตัดสินใจเลือก
ทางใดทางหนึ่ง (Decision)
โปรแกรมมีการตรวจสอบเงื่อนไข (Condition)
ว่าเป็นค่าจริงหรือค่าเท็จแล้วด าเนินการ ตามค าสั่งที่
เงื่อนไขก าหนดต่อไป โดยมีรูปแบบผังงานดังภาพ
![Page 10: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/10.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ โดยถ้าคะแนน 50 ขึ้นไป จะแสดงข้อความว่า "นักเรียนสอบผ่าน"
วิธีท า
1. สิ่งที่โจทย์ต้องการ คือการตรวจสอบคะแนนว่ามากกว่า 50 หรือไม่ แล้วแสดงผลการตรวจสอบคะแนนน้ัน2. แสดงผลลัพธ์ คือแสดงว่า "นักเรียนสอบผ่าน“3. ข้อมูลน าเข้า คือ คะแนนที่จะใชต้รวจสอบ4. ตัวแปรที่ใช้มีจ านวน 1 ตัวแปร คือ คะแนนที่รับเข้ามาตรวจสอบ แทนด้วย score
![Page 11: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/11.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ โดยถ้าคะแนน 50 ขึ้นไป จะแสดงข้อความว่า "นักเรียนสอบผ่าน"
วิธีท า5. ขั้นตอนการประมวลผล
- รับข้อมูลคะแนนแสดงผลการสอบทางหน้าจอคอมพิวเตอร์ คือ score- ตรวจสอบค่าคะแนน 50 ขึ้นไปหรือไม่- แสดงผล กรณีที่ได้คะแนน 50 คะแนนขึ้นไป แสดงข้อความว่า "นักเรียนสอบผ่าน" แต่ถ้าได้น้อยกว่า 50
คะแนน ให้จบการท างาน6. จบการท างาน
![Page 12: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/12.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
![Page 13: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/13.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
1.3) โครงสร้างแบบท าซ้ า (Iteration) เป็นกำรท ำงำนแบบวนซ้ ำหลำย ๆ รอบ และหลุดจำกเงื่อนไข ก็ต่อเมื่อเงื่อนไขตรงกับที่ก ำหนดไว้
![Page 14: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/14.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
![Page 15: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/15.jpg)
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
![Page 16: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/16.jpg)
การเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming)
แนวคิดเชิงวัตถุ ตั้งอยู่บนพื้นฐำนกำรแจกแจงรำยละเอียดของปัญหำ ผู้เขียนโปรแกรมต้องพยำยำมแยกประเภทของวัตถุให้ได้ ต้องมีจินตนำกำรพอสมควร ซึ่งจะมองวัตถุหนึ่ง ๆ เป็นแหล่งรวมของข้อมูล และกระบวนกำรไว้ด้วยกัน โดยจะมี คลำส (Class) เป็นตัวก ำหนดคุณสมบัติของวัตถุ และคลาสสามารถสืบทอดคุณสมบัติ (Inheritance) ที่เรียกว่า Subclass ได้ มีกำรน ำกลับมำใช้ใหม่ (Reusable) ท ำให้ลดขั้นตอนกำรพัฒนำโปรแกรมลงได้ โดยเฉพำะโปรแกรมขนำดใหญ่ที่มีควำมซับซ้อนสูง
![Page 17: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/17.jpg)
การเขียนโปรแกรมเชิงวัตถุ (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 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/18.jpg)
ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) นั้นจะแยกส่วนของข้อมูลจาก
ฟังก์ชัน อย่างชัดเจน ซึ่งการแยกข้อมูลจากฟังกช์ันนั้นมักจะมผีลใหเ้กิดความสับสน และค่อนข้างยาก
ในการปรับปรุง แก้ไขโดยเฉพาะกับโปรแกรมขนาดใหญ่
การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) จะเขียนโปรแกรมโดยอ้างอิงโมเดล
วัตถุในโลกที่มีอยู่จริงในการแกป้ัญหา เช่น รถยนต์ บัญชีธนาคาร หรือสุนัข แปลงให้อยู่ในรูปแบบ
โค้ดภาษา ซึ่งบางส่วนอาจจะไม่ถูกเรียกใช้งานก็ได้
การเขียนโปรแกรมเชิงโครงสร้างเน้นการแปลงสิ่งที่มีอยู่จริงให้อยู่ในกฎเกณฑ์ของโปรแกรมภาษา แต่
การเขียนโปรแกรมเชิงวัตถุนั้นเน้นการแปลงให้โปรแกรมภาษาอยู่ในรูปแบบของ สิ่งที่มีอยู่จริง
![Page 19: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/19.jpg)
ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ
ตัวอย่าง ในการเขียนโปรแกรมเชิงโครงสร้าง รถยนต์คัน
หนึ่งจะถูกแสดงโดยกลุ่มของฟังก์ชัน เช่น สตาร์ท เบรก จอด
เร่งเครื่อง เป็นต้น และก็จะมีกลุ่มของตัวแปรที่แยกกันอยู่เปน็
สี จ านวนประตูรถ วันที่ผลิต รุ่น เป็นต้น จากนั้นเรากส็ร้างตัว
แปรและก าหนดค่าเริ่มต้นให้มัน แล้วก็ไปเรียกใชฟ้ังก์ชันต่างๆ
ที่เกี่ยวข้อง กับตัวแปรที่เราก าหนดขึ้น เรากจ็ะได้รถยนต์คัน
หนึ่งแล้ว
![Page 20: Chapter 2 - elfhs.ssru.ac.th · ตัวอย่างกำรหำผลคูณสูตรคูณแม่ 12 โดยต้องกำรผลคูณ ตั้งแต่](https://reader030.vdocuments.site/reader030/viewer/2022040714/5e1ab80286767346754a6cf6/html5/thumbnails/20.jpg)
ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ
เราสามารถสร้างวัตถุได้ง่ายๆเหมือนกับที่เราสร้างตัวแปรทั่วไป
ในโปรแกรมเชิงวัตถุ นั้นจะระบุวัตถุที่จะใชแ้ละเรียกใช้งานฟังก์ชัน
ของมันในเวลาใดๆ ก็ได้
Behaviors values of data Object
การเขียนโปรแกรมเชิงวัตถุ คือ การรวมตัวระหว่างตัวแปร
สถานะ และพฤติกรรมจะได้ ผลลัพธ์เป็นวัตถุ (object)