17
ผู้เรียบเรียง นายพัฒพงษ์ อมรวงศ์ ผู้ตรวจ นายภุชงค์ จันทร์เปล่ง นายวิวัฒน์ สุวนันทวงศ์ นายสุทิน โรจน์ประเสริฐ บรรณาธิการ นายวิเชียร วิสุงเร ช่วงชั้นที่ 3 (วิทยาการค�านวณ) หนังสือเรียน รายวิชาพื้นฐานวิทยาศาสตร์ เทคโนโลยี (วิทยาการคำานวณ) ชั้นมัธยมศึกษาปีท่ ๑ ตามมาตรฐานการเรียนรู้และตัวชี้วัด กลุ่มสาระการเรียนรู้วิทยาศาสตร์ (ฉบับปรับปรุง พ.ศ.๒๕๖๐) ตามหลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช ๒๕๕๑

(วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

ผเรยบเรยงนายพฒพงษ อมรวงศ

ผตรวจนายภชงค จนทรเปลง

นายววฒน สวนนทวงศนายสทน โรจนประเสรฐ

บรรณาธการนายวเชยร วสงเร

ชวงชนท 3

(วทยาการค�านวณ)

หนงสอเรยน รายวชาพนฐานวทยาศาสตร เทคโนโลย (วทยาการคำานวณ) ชนมธยมศกษาปท ๑

ตามมาตรฐานการเรยนรและตวชวด กลมสาระการเรยนรวทยาศาสตร (ฉบบปรบปรง พ.ศ.๒๕๖๐)

ตามหลกสตรแกนกลางการศกษาขนพนฐาน พทธศกราช ๒๕๕๑

Page 2: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

หนงสอเรยนรายวชาพนฐานวทยาศาสตร  เทคโนโลย (วทยาการคำานวณ)

ชน ม.๑ น มเนอหาครอบคลมตงแต การออกแบบอลกอรทม การออกแบบโปรแกรม

อยางงาย การรวบรวมและประมวลผลขอมล การนำาเสนอขอมลและสารสนเทศ และ

การใชเทคโนโลยสารสนเทศอยางปลอดภย มสาระการเรยนรทางเทคโนโลยตรง

ตามผลการเรยนร  คอ “เขาใจและใชแนวคดเชงคำานวณในการแกปญหาทพบในชวต

จรงอยางเปนขนตอนและเปนระบบ ใชเทคโนโลยสารสนเทศและการสอสารในการ

เรยนร การทำางาน และการแกปญหาไดอยางมประสทธภาพ รเทาทนและมจรยธรรม” 

ซงทงหมดนเปนพนฐานทสำาคญในพฒนาโปรแกรม การนำาเสนอขอมลและสารสนเทศ  

และความปลอดภยในการใชเทคโนโลยสารสนเทศ

ในการจดทำาหนงสอรายวชาพนฐานวทยาศาสตร เทคโนโลย (วทยาการคำานวณ)

ชน ม.๑ น  ผเขยนไดเนนเนอหาในเชงการฝกปฏบตในการออกแบบโปรแกรมอยางงาย 

ดวยภาษาไพทอนดวย โดยออกแบบขนตอนการใหเนอหาจากงายไปยากใหผเรยนปฏบต

ตาม และมภาพประกอบเพอเสรมการเรยนร ผเรยนจงสามารถใชหนงสอนเปนคมอ

การเรยนไดทงการเรยนรดวยตนเอง และฝกปฏบตในชนเรยน แตละบทมกจกรรมและ

การประเมนผลการเรยนรใหผเรยนไดฝกทกษะและทบทวนความร อนจะทำาใหผเรยนม 

ความร ความเขาใจ และมทกษะการเขยนโปรแกรมภาษาไพทอนเพมขน 

ผเขยนหวงเปนอยางยงวา หนงสอเลมนจะเปนแนวทางใหผเรยนไดพฒนา

ศกยภาพในการออกแบบอลกอรทม การออกแบบโปรแกรมภาษาไพทอน สามารถ

รวบรวมและนำาเสนอขอมล และใชเทคโนโลยสารสนเทศอยางปลอดภยตอไป

พฒพงษ อมรวงศ

[email protected]

หนงสอเรยน รายวชาพนฐานวทยาศาสตร เทคโนโลย (วทยาการคำานวณ) ชนมธยมศกษาปท ๑

ตามมาตรฐานการเรยนรและตวชวด กลมสาระการเรยนรวทยาศาสตร (ฉบบปรบปรง พ.ศ.๒๕๖๐)

ตามหลกสตรแกนกลางการศกษาขนพนฐาน พทธศกราช ๒๕๕๑

เทคโนโลย (วทยาการคำานวณ) ชน ม.๑ พฒพงษ อมรวงศ

ราคา ๙๐ บาทสงวนลขสทธ © พ.ศ. ๒๕๖๒ โดย พฒพงษ อมรวงศ หามการลอกเลยนไมวาสวนหนงสวนใดของหนงสอเลมน นอกจากจะไดรบอนญาต

พมพครงท ๑ พ.ศ. ๒๕๖๒

จำานวน ๓,๐๐๐ เลม

ขอมลทางบรรณานกรมของหอสมดแหงชาต พฒพงษ อมรวงศ เทคโนโลย (วทยาการคำานวณ) ชน ม.๑ -- ปทมธาน: มเดย อนเทลลเจนซ เทคโนโลย, ๒๕๖๒. ๑๔๐ หนา. 1. เทคโนโลยสารสนเทศ (การใชโปรแกรมคอมพวเตอร) I. ชอเรอง

ISBN 978-616-7319-77-3

จดพมพและจดจำาหนายโดย

บรษท มเดย อนเทลลเจนซ เทคโนโลย จำากด

Media Intelligence Technology Co.,Ltd.

๔๙/๘๓ หม ๗ ต.คลองสอง อ.คลองหลวง จ.ปทมธาน ๑๒๑๒๐

โทรศพท ๐-๒๕๑๖-๕๖๙๐-๑ โทรสาร ๐-๒๕๑๖-๕๖๙๒

www.mitmedia.com e-mail : [email protected]

ออกแบบ : KanomDesign Studio

พมพท : บรษท เยลโลการพมพ (1988) จำากด

ค�าน�า

Page 3: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

สารบญ

หนวยท 1 การออกแบบอลกอรทม 1 1.1 ความรพนฐานเกยวกบอลกอรทม 2 กจกรรม 1-1 เขยนอลกอรทมทางกลบบานหลงเลกเรยน 8 1.2 การออกแบบอลกอรทมโดยใชผงงาน (Flowchart) 8 กจกรรม 1-2 การเขยนผงงานการเดนกลบบาน 13 1.3 การออกแบบอลกอรทมโดยใชรหสเทยม (Pseudo-code) 14 กจกรรม 1-3 การเขยนรหสเทยมของการหาพนทสามเหลยม 16 1.4 การออกแบบอลกอรทมเพอแกปญหาทางคณตศาสตร วทยาศาสตรอยางงาย 18 กจกรรม 1-4 การเขยนรหสเทยมค�านวณหาพนทแผนหญา 23 สรป 23 การวดและประเมนผลการเรยนร หนวยท 1 26

หนวยท 2 การออกแบบโปรแกรมอยางงาย 27 2.1 ประเภทของตวแปลภาษา 28 2.2 คณลกษณะของภาษาไพทอน 29 2.3 การดาวนโหลดและตดตงชดพฒนาโปรแกรมภาษาไพทอน 30 2.4 การใชงานแบบโตตอบ 35 2.5 การสรางโปรแกรม และบนทกโปรแกรม 37 2.6 การทดสอบโปรแกรม และการแกไขทผด 43 กจกรรม 2-1 การสรางโปรแกรมนามบตร 46 2.7 การออกแบบและเขยนโปรแกรมทมการใชตวแปร 46 กจกรรม 2-2 การสรางโปรแกรมเพอก�าหนดขอมลแบบจ�านวนเตม 50 กจกรรม 2-3 การเพมขอความประกอบการแสดงคาของตวแปร 51 กจกรรม 2-4 การเพมขอความประกอบการแสดงคาของตวแปร 52

2.8 การออกแบบและเขยนโปรแกรมทมการใชเงอนไข 53 กจกรรม 2-5 การเขยนผงงานและโปรแกรมเพอก�าหนดคาของตวแปร 57

กจกรรม 2-6 การเขยนผงงานและโปรแกรมเพอก�าหนดคาของตวแปร 58 กจกรรม 2-7 สรางโปรแกรมเพอปอนคา 61 กจกรรม 2-8 เขยนผงงานและสรางโปรแกรมเพอปอนคา 62 กจกรรม 2-9 เขยนผงงานและสรางโปรแกรม mygrade.py 62 2.9 การออกแบบและเขยนโปรแกรมทมการวนซำา 65 กจกรรม 2-10 สรางโปรแกรม count10.py 68 กจกรรม 2-11 ออกแบบโปรแกรมส�าหรบวนซ�าพมพขอความ 68 กจกรรม 2-12 โปรแกรม forCount.py 71 กจกรรม 2-13 โปรแกรม forDown.py 72 2.10 การออกแบบและเขยนโปรแกรม เพอแกปญหาทางคณตศาสตร วทยาศาสตรอยางงาย 72 กจกรรม 2-14 โปรแกรมค�านวณหาพนทสเหลยมคางหม 76 กจกรรม 2-15 โปรแกรมค�านวณหาความเรวในการวงของนกเรยน 76 กจกรรม 2-16 โปรแกรมค�านวณดชนมวลกาย 77 สรป 78 การวดและประเมนผลการเรยนร หนวยท 2 80

หนวยท 3 การรวบรวมและประมวลผลขอมล 81 3.1 ขอมล และประเภทของขอมล 82 กจกรรม 3-1 ขอมลและประเภทของขอมล 83 3.2 การรวบรวมขอมลปฐมภม 83 กจกรรม 3-2 การรวบรวมขอมล 86 3.3 การประมวลผลขอมล 86 กจกรรม 3-3 การประมวลผลขอมล 87 3.4 ขนตอนการประมวลผลขอมล 87 กจกรรม 3-4 การสบคนขอมล 88 3.5 การใชโปรแกรมประมวลผลขอมลอยางงาย 89 กจกรรม 3-5 การค�านวณหาคาเฉลย 95 กจกรรม 3-6 การหาคา BMI ทศนยม 2 ต�าแหนง 98 กจกรรม 3-7 การหาค�านวณหาคาดชนมวลกายของนกเรยน 99

Page 4: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

มาตรฐานการเรยนร

1. บอกความรพนฐานเกยวกบอลกอรทมได

2. ออกแบบอลกอรทมโดยใชผงงานได

3. ออกแบบอลกอรทมโดยใชรหสเทยมได

4. ออกแบบอลกอรทมเพอแกปญหาทางคณตศาสตร วทยาศาสตรอยางงายได

ตวชวดและสาระแกนกลาง

1. ความรพนฐานเกยวกบอลกอรทม

2. การออกแบบอลกอรทมโดยใชผงงาน (Flowchart)

3. การออกแบบอลกอรทมโดยใชรหสเทยม (Pseudo-code)4. การออกแบบอลกอรทมเพอแกปญหาทางคณตศาสตร วทยาศาสตรอยางงาย

การออกแบบอลกอรทม

หนวยท 1 สรป 99 การวดและประเมนผลการเรยนร หนวยท 3 101

หนวยท 4 การน�าเสนอขอมลและสารสนเทศ 102 4.1 ลกษณะของการน�าเสนอขอมลและสารสนเทศ 103 กจกรรม4-1การน�าเสนอขอมลในรปขอความกงตาราง 104 4.2 การน�าเสนอโดยใชตาราง 104 กจกรรม4-2การน�าเสนอขอมลในรปตาราง 105 4.3 การน�าเสนอขอมลโดยใชแผนภม 105 กจกรรม4-3การน�าเสนอขอมลเปนแผนภมรปภาพ 106 กจกรรม4-4การน�าเสนอขอมลในรปแผนภมแทง 109 กจกรรม4-5การน�าเสนอขอมลในรปแผนภมเสน 111 4.4 การสรางกราฟผลการทดลอง และวเคราะหแนวโนม 112 กจกรรม4-6การสรางงานน�าเสนอขอมลดวยแผนภม 126 สรป 126 การวดและประเมนผลการเรยนร หนวยท 4 128

หนวยท 5 การใชเทคโนโลยสารสนเทศอยางปลอดภย 129 5.1 การใชเทคโนโลยสารสนเทศอยางปลอดภย 130 กจกรรม5-1คนหาเวบไซตทมเครองหมายSecuredsite 132 5.2 การจดการอตลกษณ 133 กจกรรม5-2การหามใชรหสผานเดยวกบทกบญช 134 5.3 การพจารณาความเหมาะสมของเนอหา 134 กจกรรม5-3เวบไซตทไมเหมาะสม 135 5.4 ขอตกลง ขอก�าหนดในการใชสอ หรอแหลงขอมลตางๆ 135 กจกรรม5-4คนหาเวบไซตทมสญลกษณขอตกลงของครเอทฟคอมมอนส 138 สรป 138 การวดและประเมนผลการเรยนร หนวยท 5 139

บรรณานกรม 140

Page 5: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

1.1.1 ความหมายของอลกอรทมอลกอรทม หมายถง ชดขนตอนการท�างานตามล�าดบทคอมพวเตอร และอปกรณ

อจฉรยะอนๆ (เชน สมารทโฟน) สามารถท�าได เพอท�าการค�านวณ ประมวลผลขอมล และ

ท�างานทตองใชเหตผลอยางอตโนมต (Association for Computing Machinery, 2017)

โดยทวไปแลว อลกอรทม หมายถง ล�าดบขนตอนทถกออกแบบไวอยางชดเจนในการ

แกปญหาใดปญหาหนง หรอขนตอนวธการท�างานของงานใดงานหนงใหส�าเรจ ปญหาทตองแก

อาจเปนปญหาในเรองตางๆ หรอการท�างานในชวตจรง เชน ขนตอนการปรงอาหาร ขนตอนการ

เดนทางไปเทยวตางจงหวด ขนตอนการแกปญหาทางคณตศาสตรดวยคอมพวเตอร ฯลฯ

ค�าวา “อลกอรทม” มาจากชอของ al-Kwarizmi นกคณตศาสตรชาวเปอรเซยใน

ศตวรรษท 8 ในภาพท 1.3 ซงเขยนหนงสอเกยวกบพชคณตของการค�านวณเชงตวเลข จนไดรบ

การยกยองใหเปน “บดาแหงพชคณต” และเปนผรเรมใชตวเลขแบบฮนด-อารบค 1, 2, 3, …

ซงท�าใหการค�านวณงายกวาการใชตวเลขแบบโรมน I, II, III, …

ภาพท1.3MuhammadibnMusaal-Khwarizmi(WobbeVegter,April2005)

1.1 ความรพนฐานเกยวกบอลกอรทม

ค�าวา “อลกอรทม (Algorithm)” หลายคนอาจจะไมเคยรจก แตบางคนทใชอนเทอรเนต

ส�าหรบคนหาขอมลหรอภาพดวยกเกล อาจเคยเหนขาวการปรบปรงอลกอรทมของกเกลดงภาพ

ท 1.1

ภาพท1.1การปรบปรงอลกอรทมของกเกล

หรอคนทใชเฟซบคกอาจเคยเหนการปรบปรงอลกอรทมดงภาพท 1.2

ภาพท1.2การปรบปรงอลกอรทมของเฟซบค

ในหนวยท 1 นนกเรยนจะไดศกษาเกยวกบอลกอรทมหมายถงอะไร มความส�าคญ และ

มประโยชนอยางไรในชวตจรงของเรา การออกแบบและปรบปรงอลกอรทมท�าไดอยางไร

ลองพจารณาศกษาดในบทน

2 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 3

Page 6: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

ภาพท1.5การคดเชงค�านวณ(Computationalthinking)

1.1.3 การคดเชงค�านวณการคดเชงค�านวณ เปนกระบวนการคดทตองใชทกษะและเทคนคเพอแกปญหาในเชง

นามธรรม

การคดเชงค�านวณ ประกอบดวย

1) การแบงยอยปญหา (Decomposition) เมอมปญหา สามารถวเคราะหหรอ

แบงปญหาออกเปนปญหายอยๆ ได แลวท�าการแกปญหาทละปญหายอย

2) การมองรปแบบของปญหา (Pattern recognition) สามารถรจ�ารปแบบ (Pattern)

ของปญหา หรอสถานการณทเกดขนซ�าๆ กนได เพอหาวธแกปญหาทคลายกน

3) การมองภาพรวม หรอแนวคดเชงนามธรรม (Abstraction) เปนการประเมน

ความส�าคญในรายละเอยดของปญหา แยกแยะสวนทเปนสาระส�าคญออกจากสวนทไมใชสาระ

ส�าคญ

4) การออกแบบอลกอรทม (Algorithm design) เปนสวนทส�าคญทสด นนคอ

การออกแบบล�าดบการท�างานทสามารถก�าหนดขนตอนวธการแกปญหา คดหาวธการท�างานให

เรวและสนทสดจนไดผลลพธตามทก�าหนด

1.1.4 คณสมบตของอลกอรทมในการออกแบบอลกอรทมไมวาจะเปนอลกอรทมทใชกบชวตจรงหรออลกอรทมทใชกบ

คอมพวเตอรจะตองมคณสมบตดงตอไปน

1.1.2 ความส�าคญของอลกอรทมในชวตประจ�าวน ทกคนตองเคยพบกบปญหาตางๆ ไมวาจะเปนปญหาดานการเงน

การงาน การเรยน หรอแมแตการเลนเกม เมอพบกบปญหา แตละคนมวธทจะจดการ หรอ

คดอลกอรทมหรอขนตอนในการแกปญหาเหลานนแตกตางกนไป ซงแตละวธการอาจใหผลลพธ

ทเหมอนกน หรอแตกตางกนบาง ทงนขนอยกบความร ความสามารถ และประสบการณของ

บคคลผนน

การน�าคอมพวเตอรมาชวยในการแกปญหา กตองมขนตอนเชนกน คอ วเคราะหปญหา

แลวออกแบบขนตอนการท�างาน หรออลกอรทมกอน เมอตรวจสอบความถกตองของอลกอรทม

ดแลว จงจะน�าอลกอรทมไปออกแบบและเขยนโปรแกรมสงการใหคอมพวเตอรท�างานตามท

ตองการตอไป ดงภาพท 1.4

ภาพท1.4ขนตอนการแกปญหาดวยคอมพวเตอร

ถาการออกแบบอลกอรทมท�าไดไมด หรอไมสามารถท�าได การออกแบบโปรแกรม

กท�าไดไมด หรอไมสามารถท�าไดเชนกน แตถาออกแบบอลกอรทมด การออกแบบและเขยน

โปรแกรมกท�าไดอยางรวดเรวและงายขน ดงนน นกคอมพวเตอร จะตองหาวธการทจะใหไดมา

ซงอลกอรทมทดและมประสทธภาพมากทสด นนคอ สามารถแกปญหาไดในเวลาอนรวดเรวทสด

และใชทรพยากรนอยทสด

การออกแบบอลกอรทมจงถกจดใหเปนสวนส�าคญอกสวนหนงทนกคอมพวเตอรจะตอง

สามารถท�าได โดยนกคอมพวเตอรทดจะตองมวธการคดเชงค�านวณ (Computational thinking)

ซงประกอบดวยแนวคดแบบตางๆ ดงภาพท 1.5

4 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 5

Page 7: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

การเขยนอลกอรทม

เมอท�าการวเคราะหปญหาเสรจแลว เขยนเปนอลกอรทมแบบบรรยาย และแบบขนตอน

ไดดงน

อลกอรทมแบบบรรยาย ใสคะแนนสอบทง 7 วชา ค�านวนคาคะแนนเฉลยโดยการบวก

คะแนนทง 7 วชา แลวหารดวย 7 ถาคาคะแนนเฉลยต�ากวา 50 แสดงขอความ “สอบไมผาน”

แตถาคาคะแนนเฉลยมากกวา หรอเทากบ 50 แสดงขอความ “สอบผาน”

อลกอรทมแบบขนตอน

ขนตอนท 1 ใสคะแนนสอบทง 7 วชา

ขนตอนท 2 บวกคะแนนทง 7 วชา

ขนตอนท 3 ค�านวนคาคะแนนเฉลย โดยหารดวย 7

ขนตอนท 4 ถาคาคะแนนเฉลยต�ากวา 50 แสดงขอความ “สอบไมผาน”

ขนตอนท 5 ถาคาคะแนนเฉลยมากกวา หรอเทากบ 50 แสดงขอความ “สอบผาน”

ส�าหรบตวอยางของอลกอรทมแบบผงงาน และแบบรหสเทยม โปรดดในหวขอท

เกยวของตอไป

1.1.6 ประโยชนของอลกอรทมประโยชนของอลกอรทม มดงน

1) ท�าใหการท�างาน หรอการแกปญหาชดเจนขน เพราะทกอยางจะถกแยกแยะกจกรรม

จดเรยงเปนขนตอน มวธการ และทางเลอกไว

2) ชวยในการแกปญหา

3) ท�าใหการท�างานส�าเรจอยางรวดเรว

4) อลกอรทมทออกแบบไวดแลว สามารถน�าไปใชไดอก หรออาจน�าไปใชกบงานอนได

1.1.7 ตวอยางของการใชอลกอรทมในปจจบนการควบคมไฟจราจร

การแปลงเลขฐานสบ เปนเลขฐานสองในคอมพวเตอร

การเขารหส และการถอดรหสขอมล

การหาเสนทางทดทสด

การเรยงล�าดบขอมล

การตดตอสอสาร

การบบอดขอมล

ฯลฯ

1) มการท�างานทชดเจน และท�าไดจรง ไมคลมเครอ เชน รบคาตวเลข 2 คา ไมใชรบ

อะไรกได

2) มล�าดบขนตอนการท�างานทชดเจน จนจบการท�างาน ไมใชท�างานจนไมมการหยด

3) ดงาย หรอตรวจสอบแกไขได

4) มความถกตอง ทงการท�างาน และผลลพธ

5) ท�างานไดครบทกเงอนไข

6) มประสทธภาพ คอ ใชเวลา และหนวยความจ�าทเหมาะสม

1.1.5 ลกษณะของอลกอรทมอลกอรทมเขยนไดหลายรปแบบดงตอไปน

1) แบบบรรยาย (Narrative description)

2) แบบขนตอน (Step by step)

3) แบบผงงาน (Flowchart)

4) แบบรหสเทยม (Pseudo-code)

5) แบบโปรแกรม (Program)

การเขยนอลกอรทมแบบบรรยายและแบบขนตอนเหมาะส�าหรบใชกบการท�างานทวไป

แบบทนยมใชกบคอมพวเตอรคอ ผงงาน และรหสเทยม เนองจากดงายกวา และไมขนอยกบ

ภาษาคอมพวเตอร สวนแบบโปรแกรมขนอยกบภาษาทใช

ตวอยางท 1 การเขยนอลกอรทมแบบบรรยาย และแบบขนตอน

ปญหา ตองการหาคะแนนเฉลยของการสอบ 7 วชา ถาคะแนนเฉลยต�ากวา 50 สอบไม

ผาน แตถาคะแนนเฉลยตงแต 50 ขนไป สอบผาน

การวเคราะหปญหา

จากปญหา สามารถวเคราะหปญหาไดโดยแบงการท�างานออกเปน 3 สวนตามลกษณะ

การท�างานของคอมพวเตอร คอ สวนน�าเขาขอมล (Data input) สวนประมวลผล (Processing)

และสวนแสดงผลขอมล (Data output) โดยก�าหนดรายละเอยดของขอมลเขา วธการประมวลผล

และการแสดงผล ดงตอไปน

ขอมลเขา : คะแนนสอบ 7 วชา

การประมวลผล : การหาคาเฉลย คอการรวมคะแนนสอบทง 7 วชา แลวหารดวยจ�านวนวชา

การแสดงผล : แสดงตามเงอนไข ดงน ถาคาคะแนนเฉลยต�ากวา 50 แสดงขอความ

“สอบไมผาน” แตถาคาคะแนนเฉลย มากกวา หรอเทากบ 50 แสดงขอความ “สอบผาน”

6 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 7

Page 8: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

1.2.2 เครองมอทใชในการเขยนผงงานการเขยนผงงานอาจเขยนดวยมอหรอใชเครองมอชวยดงตอไปน

1) บรรทดแบบส�าหรบเขยนผงงาน (Flowchart template ruler) การเขยนผงงาน

ดวยมอใชส�าหรบการรางแบบ หรอออกแบบตามวธคดแบบคราวๆ อาจไดผงงานทไมสวย แตถา

ใชบรรทดแบบส�าหรบเขยนผงงานดงภาพท 1.6 ชวยกจะท�าใหเขยนไดเรว และสวยขน

ภาพท1.6บรรทดแบบส�าหรบเขยนผงงาน

ตารางท 1.2 สญลกษณทเกยวกบขอมลเขา/ออกกจกรรม 1-1 เขยนอลกอรทมทางกลบบานหลงเลกเรยน

ในการเดนทางกลบบานของนกเรยนหลงเลกเรยน ตองท�าอยางไรบางจงจะถงบาน

ใหเขยนเปนอลกอรทมแบบขนตอนตามทสามารถท�าไดจรง

1.2 การออกแบบอลกอรทมโดยใชผงงาน (Flowchart)

การเขยนผงงานเปนการออกแบบอลกอรทมทใช รปภาพสญลกษณแทนขนตอน

การท�างานตางๆ ในแตละขน และใชเสนหวลกศรเชอมตอ เพอแสดงเสนทางการท�างาน

1.2.1 สญลกษณทใชเขยนผงงาน และความหมายสญลกษณทใชในการเขยนผงงาน ตามมาตรฐาน ISO (International Organization for

Standardization) บางสวนทควรทราบ มดงตารางท 1.1 และตารางท 1.2

ตารางท 1.1 สญลกษณทใชในการเขยนผงงาน (บางสวน)

8 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 9

Page 9: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

5) ใชค�าอธบายการท�างานในแตละขนตอนดวยขอความทสน กะทดรด ชดเจน

และเขาใจไดงาย ถาตองการเขยนหมายเหตเพมเตมใหใชสญลกษณของหมายเหต ดงตวอยางใน

ภาพท 1.8

6) ใชสญลกษณจดตอในหนาเดยวกน แทนการโยงเสนยาวๆ หรอเสนทตดกน

7) ถาไมสามารถเขยนในหนาเดยวได ใหใชสญลกษณจดตอระหวางหนา

8) ทดสอบความถกตองของการท�างานกอน จงน�าไปใชเขยนโปรแกรมตอไป

9) เขยนใหครบทกฟงกชนทใช และก�าหนดขนตอนและรายละเอยดใหชดเจน

เพอทจะไดตรวจสอบการท�างานของโปรแกรมไดถกตอง เชน คาทรบเขาตองมหนวยเปนอะไร

สตรทใชในการค�านวณเปนอยางไร ผลลพธทไดมอะไรบาง และจะแสดงทจอ หรอพมพเปน

เอกสาร

10) ก�าหนดชอผงงาน เพอใหทราบวาเปนอลกอรทมส�าหรบท�าอะไร

1.2.4 โครงสรางของผงงานในการออกแบบอลกอรทมโดยใชผงงาน สามารถเขยนโดยใชโครงสรางหลก 3 แบบ

ซงอาจเขยนแบบใดแบบหนง หรอผสมกนหลายแบบได ดงตอไปน

1) โครงสรางแบบตามล�าดบ (Sequence) เปนการแสดงขนตอนการท�างาน

ตามล�าดบ ตวอยางดงภาพท 1.8

ภาพท1.8โครงสรางแบบตามล�าดบ

2) ซอฟตแวร หรอโปรแกรมส�าหรบเขยนผงงาน (Flowchart software) ในปจจบน

มโปรแกรมส�าหรบเขยนผงงานจ�านวนมาก ทงแบบไมเสยคาใชจาย เชน draw.io ซงเปนแบบ

ออนไลนและแบบทตองซอมาตดตงส�าหรบมออาชพ เชน ไมโครซอฟตวสโอ (Microsoft

visio) หรอถามโปรแกรมไมโครซอฟตเวรดหรอเอกเซลอยแลว กสามารถใชเขยนผงงานได

เชนกน โดยเลอกรปราง (Shapes) ตามขนตอนดงภาพท 1.7

ภาพท1.7การเลอกรปรางส�าหรบเขยนผงงาน

1.2.3 หลกการเขยนผงงานทดหลกการเขยนผงงานทด ควรท�าดงตอไปน

1) ใชสญลกษณตรงตามทก�าหนดไว มขนาด และระยะหางทเหมาะสม

2) มจดเรมตน (Start) และจดสนสด (End) เพยงชดเดยว

3) ใชเสนหวลกศรแสดงทศทางการไหลของขอมล หรอล�าดบการท�างาน จากบนลง

ลาง และซายไปขวา ยกเวนการยอนกลบหรอวนซ�า

4) เสนลกศรตองตอเชอมกบสญลกษณ โดยตอเขาทางเดยว และออกทางเดยวตรง

กลางสญลกษณ ยกเวนสญลกษณการตดสนใจทเขาทางเดยว แตออกไดหลายทาง (ดตวอยางใน

ภาพท 1.9)

10 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 11

Page 10: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

หมายเหต

ในการเขยนเงอนไขเครองหมาย≥หมายถง“มากกวาหรอเทากบ”

ในการเขยนทางเลอกค�าวา“จรง”อาจเขยนดวยTrueหรอTหรออาจใชYesหรอYกได

สวนค�าวา“เทจ”อาจเขยนดวยFalseหรอFหรออาจใชNoหรอNกได

3) โครงสรางแบบวนซ�า (Iteration) เปนการแสดงขนตอนการท�างานแบบวน

ซ�า ซงจะมการทดสอบเงอนไข ถาเงอนไขเปนจรงใหวนซ�าการท�างานอก ถาเปนเทจใหหยดการ

วนซ�า ตวอยางดงภาพท 1.10

ภาพท1.10โครงสรางแบบวนซ�า

1.2.5 ประโยชนของผงงานการเขยนผงงานมประโยชนดงน

1) ชวยจดล�าดบขนตอนการท�างานของโปรแกรม และสามารถน�าไปเขยนโปรแกรม

ไดงายขน

2) ชวยในการตรวจสอบ และแกไขโปรแกรมไดงาย เมอเกดขอผดพลาด

3) ชวยใหการดดแปลง แกไข ท�าไดอยางสะดวกและรวดเรว

4) ชวยใหผอนสามารถศกษาการท�างานของโปรแกรมไดอยางสะดวก และรวดเรว

มากขน

ผงงานตวอยางตามภาพท 1.8 เปนการท�างานแบบตามล�าดบส�าหรบงานการค�านวณ

ทวไป โดยเรมตน (ใชสญลกษณเรมตน หรอ Start) จากรบคาขอมล (ใชสญลกษณการปอนขอมล)

โดยคาข อมลเปนตวเลขไมเกน 100 ล�าดบตอไปคอ ท�าการค�านวณตามสตรทก�าหนด

(ใชสญลกษณการประมวลผล) ล�าดบสดทายคอ แสดงผลลพธทได (ใชสญลกษณขอมลออก)

แลวสนสดการท�างานท จบ หรอ End (ใชสญลกษณสนสด หรอ End)

หมายเหต

ในการเขยนผงงานส�าหรบการท�างานทวๆ ไป เชน การก�าหนดคา ใหใชสญลกษณการ

ประมวลผล

2) โครงสรางแบบทางเลอก (Selection) เปนการแสดงขนตอนการท�างานตาม

เงอนไขใหเลอกท�า ซงจะมการทดสอบเงอนไขเพอแยกแยะการเลอกท�างานใหเปนไปตามกรณ

ทตองการ ถาเงอนไขเปนจรงจะใหท�าอะไร และถาเงอนไขเปนเทจจะใหท�าอะไร ตวอยาง

ดงภาพท 1.9

ภาพท1.9โครงสรางแบบทางเลอกตามเงอนไขกรณ

ผงงานตวอยางตามภาพท 1.9 แสดงการท�างานแบบทางเลอก (ใชสญลกษณ

การตดสนใจ หรอ Decision) ตอจากการรบคาคะแนน โดยเปรยบเทยบคะแนนวา มากกวา หรอ

เทากบ 50 จรงหรอไม ถาเปนจรง ใหแสดงขอความ “สอบผาน” แลวจบการท�างาน แตถาเปน

เทจ ใหแสดงขอความ “สอบไมผาน” แลวจบการท�างาน

12 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 13

Page 11: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

หมายเหต

ตวแปร ใชส�าหรบเกบคาขอมลทใชในการประมวลผล ส�าหรบรายละเอยดใหดในหวขอ

ทเกยวของตอไปในบทท 2

ตารางท 1.3 ค�าสงทใชในการเขยนรหสเทยม (ตอ)

การท�างาน ค�าสง ตวอยาง

การวนซ�า (Iteration)

WHILE … ENDWHILE a , 1 WHILE a < 4 DISPLAY a a , a + 1 ENDWHILE

หมายเหต

ตวแปร หมายถงทเกบคาขอมล โดยใชชอแทน เชน ตวแปรชอ count

ในการค�านวณ ใชเครองหมายทางคณตศาสตรดงตารางท 1.4

ตารางท 1.4 เครองหมายทางคณตศาสตร (Arithmetic operators)

การค�านวณ เครองหมาย ตวอยาง

การบวก การลบ การคณ การหาร

+ - * /

a , b + c z , x - y area , x * y average , sum / n

1.3.2 หลกการเขยนรหสเทยมทดหลกการเขยนรหสเทยมทด ควรท�าดงตอไปน

1.3.2.1 ก�าหนดชออลกอรทม เพอใหทราบวาเปนอลกอรทมส�าหรบท�าอะไร

1.3.2.2 เรมจากค�า BEGIN, START หรอ เรมตน

1.3.2.3 สนสดดวยค�า END, STOP หรอ จบ หรอหยด

1.3.2.4 ค�าสงตางๆ อยระหวาง BEGIN และ END โดยจดใหเยองกนไป

1.3.2.5 ใชค�าสงเดยวในแตละบรรทด

1.3.2.6 ค�าสงหลกใชตวพมพใหญ

1.3.2.7 ใช Comment หรอหมายเหตเพอใหเขาใจงายขน โดยใชเครองหมาย # น�าหนา

ตามดวยขอความอะไรกไดเพอเปนหมายเหต ไมใชค�าสงใหท�างาน โดยอาจเขยนตอทายบรรทด

ค�าสง หรอคนระหวางแตละค�าสง หรอกลมค�าสงกได

กจกรรม 1-2 การเขยนผงงานการเดนกลบบาน

จากอลกอรทมแบบขนตอนของการเดนทางกลบบานของกจกรรม 1-1 ใหนกเรยนเขยน

ผงงานของการเดนทางกลบบาน โดยเลอกใชสญลกษณการท�างานใหถกตอง

1.3 การออกแบบอลกอรทมโดยใชรหสเทยม (Pseudo-code)

การเขยนรหสเทยม เปนการเขยนขนตอนการท�างานโดยใชรหสเทยม หรอค�าสงเทยมท

ไมใชค�าสงของภาษาคอมพวเตอร แทนการท�างานในแตละขน (โดยไมตองใชสญลกษณเหมอน

ผงงาน) โดยทวไปเขยนเปนภาษาองกฤษ อาจใชภาษาไทยกไดขนอยกบความสะดวกของผเขยน

และกจกรรมทจะท�า

1.3.1 ค�าสงทใชในการเขยนรหสเทยมค�าสงทใชจะเปนค�าสงพนฐานในการท�างานของคอมพวเตอร เขยนดวยตวพมพใหญ ดง

ตวอยางในตารางท 1.3

ตารางท 1.3 ค�าสงทใชในการเขยนรหสเทยม

การท�างาน ค�าสง ตวอยาง

การก�าหนดคา ใหกบตวแปร

SET SET count TO 0 หรอ count , 0

การน�าขอมลเขา (Input)

GET INPUT

GET user_name INPUT side

การน�าขอมลออก (Output)

DISPLAY PRINT

DISPLAY counter PRINT area

การค�านวณ (Compute)

COMPUTE CALCULATE

COMPUTE area = width * length หรอ area , width * length

การเพมคา (Add one)

INCREMENT INCREMENT counter

การท�างานตามเงอนไข (Selection)

IF … THEN … ELSE … ENDIF

IF score >50 THEN PRINT “Pass” ELSE PRINT “Fail” ENDIF

14 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 15

Page 12: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

2) โครงสรางแบบทางเลอก เปนการแสดงขนตอนการท�างานตามเงอนไขใหเลอกท�า ซง

จะมการทดสอบเงอนไขเพอแยกแยะการเลอกท�างานใหเปนไปตามกรณทตองการ ถาเงอนไขเปน

จรงจะใหท�าอะไร และถาเงอนไขเปนเทจจะใหท�าอะไร ดงตวอยาง

Algorithm_2: Check_OTSTART NormalMax , 10 GET HoursWorked # Decision Making

IF HoursWorked > NormalMax THEN DISPLAY “Overtime” ELSE DISPLAY “Regular time”ENDIFSTOP

จากตวอยาง เปนอลกอรทมของการตรวจสอบชวโมงการท�างานวามการท�างานเกนเวลา

หรอไม โดยก�าหนดใหอตราชวโมงการท�างานปกต (NormalMax) ไมเกน 10 ชวโมง ล�าดบตอไป

คอ รบคาชวโมงทท�างานจรง (HoursWorked) จากนนท�าการทดสอบเงอนไข ถาชวโมงทท�างาน

จรง มากกวา อตราชวโมงการท�างานปกต ใหแสดงขอความ “เวลาเกน” แลวจบการตรวจสอบ

แตถาไมใช ใหแสดงขอความ “เวลาปกต” แลวจบการตรวจสอบ

3) โครงสรางแบบวนซ�า เปนการแสดงขนตอนการท�างานแบบวนซ�า ซงจะมการทดสอบ

เงอนไข ถาเงอนไขเปนจรงใหวนซ�าการท�างานอก ถาเปนเทจใหหยดการวนซ�า ดงตวอยาง

Algorithm_3: IterationSTART a , 1WHILE a < 4 DISPLAY a a , a + 1ENDWHILE STOP

1.3.3 โครงสรางของรหสเทยมในการออกแบบอลกอรทมโดยใชรหสเทยม สามารถเขยนโดยใชโครงสรางหลก 3 แบบ

ซงอาจเขยนแบบใดแบบหนง หรอผสมกนหลายแบบได ดงตอไปน

1) โครงสรางแบบตามล�าดบ เปนการแสดงขนตอนการท�างานตามล�าดบ ดงตวอยาง

Algorithm_1: Area_of_Rectangle

BEGIN

GET R_Width

GET R_Length

# Area Calculation

R_Area , R_Width * R_Length

DISPLAY R_Area

END

จากตวอยาง เปนอลกอรทมของการหาพนทสเหลยมผนผา (Rectangle) โดยท�างาน

ตามล�าดบดงตอไปน (เขยนอลกอรทมเปนภาษาไหย)

เรมตน

รบคา ความกวาง

รบคา ความยาว

# ค�านวณหาพนท

พนท , กวาง * ยาว

แสดง คาพนท

จบ

จากตวอยางดเหมอนจะเขยนงาย แตการทจะเขยนอลกอรทมนไดจะตองวเคราะหกอน

วา ในการหาพนทสเหลยมผนผาหาไดอยางไร ใชสตรอะไร ใชตวแปรอะไรบาง จะตองก�าหนดคา

หรอปอนคาอะไรบาง และจะแสดงคาของอะไรบาง ทส�าคญทสดคอ การเขยนล�าดบการท�างาน

ใหถกตอง เชน ถาแสดงคาของพนทกอนกไมถกตอง หรอค�านวณตามสตรกอน แตยงไมไดปอน

คา เปนตน

16 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 17

Page 13: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

ตวอยาง สนามหนาบานหลงหนง กวาง 4 เมตร ยาว 8 เมตร ตองการปหญาในสนาม

โดยหญาหนงผนมความกวาง 50 เซนตเมตร ยาว 100 เซนตเมตร ดงภาพท 1.11 จะใชหญา

ทงหมดกผน

ภาพท1.11แผนหญาทใชในการปสนาม

การวเคราะหงาน

1) สงทตองการ

โปรแกรมค�านวณหาจ�านวนแผนหญา

2) ขอมลทตองน�าเขา

2.1 ขอมลเกยวกบขนาดของสนามทจะปหญา ความกวาง ความยาว

2.2 ขอมลเกยวกบแผนหญา ความกวาง ความยาว

3) ตวแปรทใช ก�าหนดชอตวแปรทใชเกบคาตางๆ และแบบของขอมลไดดงตารางท 1.5

โดยใชตวยอน�าหนาดงน

F หมายถง สนาม (Field)

G หมายถง หญา (Grass)

N หมายถง จ�านวน (Number)

จากตวอยาง เปนอลกอรทมของการวนซ�าดวยค�าสง WHILE … ENDWHILE เพอแสดงคา

ของตวแปร a ไดผลลพธออกมาเปน 1, 2 และ 3 ตามล�าดบ เหมอนกบการท�างานของผงงานตาม

ภาพท 1.10

จากตวอยางเหนไดวา การเขยนรหสเทยมแสดงใหเหนขนตอนการท�างานไดโดยงาย

คลายกบโปรแกรมคอมพวเตอร ดงนนจงสามารถน�าอลกอรทมไปพฒนาโปรแกรมตอไปได

กจกรรม 1-3 การเขยนรหสเทยมของการหาพนทสามเหลยม

ใหนกเรยนเขยนรหสเทยมของการหาพนทของสามเหลยม (Triangle)

1.4 การออกแบบอลกอรทมเพอแกปญหาทางคณตศาสตร วทยาศาสตรอยางงาย

ในการออกแบบอลกอรทมเพอแกปญหาทางคณตศาสตร วทยาศาสตร สวนใหญจะ

เปนการค�านวณหาคาตางๆ ตามสตร สงแรกทจะตองท�ากอนคอ การวเคราะหปญหา หรอ

วเคราะหงานทจะท�า

1.4.1 หลกเกณฑในการวเคราะหงานการวเคราะหงานส�าหรบการออกแบบอลกอรทมทใชท�าโปรแกรมเพอใหไดผลด ควร

พจารณาดงตอไปน

1) สงทตองการ เชน ตองการใหค�านวณหรอประมวลผลหาอะไร หรอตองการใหแสดง

ขอมลอะไรบาง

2) ขอมลทตองน�าเขา หรอขอมลทใชในการประมวลผล มอะไรบาง และควรจะม

ลกษณะ หรอรปแบบอยางไร เชน เปนเลขจ�านวนเตม

3) ตวแปรทใชในโปรแกรม ใชชอตวแปรและแบบขอมลทเหมาะสม ส�าหรบเกบขอมล

ในการประมวลผล โดยเปนไปตามหลกของภาษาทใชเขยนโปรแกรม

4) รปแบบผลลพธทตองการ ควรจะมลกษณะอยางไร มรายละเอยดมากนอยเพยงใด

งานบางอยางอาจมการก�าหนดลกษณะผลลพธเปนรายงานมาใหอยางชดเจน แตถาไมไดก�าหนด

ให ผเขยนโปรแกรมกตองพจารณาก�าหนดรปแบบผลลพธอยางละเอยดรอบคอบ และเหมาะสม

กบงานทตองการ

5) ขนตอนหรอวธการประมวลผล ตองการประมวลผลอยางไรบาง เพอใหการท�างาน

ตามล�าดบ หรอตามเงอนไขอยางถกตองตามความตองการ ซงกคอ การออกแบบอลกอรทม

18 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 19

Page 14: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

5.1) อลกอรทมของการหาพนทของสนาม

การค�านวณหาพนท ถาเปนพนทรปสเหลยมผนผา ใชสตร พนท = กวาง x ยาว

เมอใชตวแปรทก�าหนดไว สามารถเขยนอลกอรทมสวนการค�านวณไดดงน

F_area , F_width * F_length

ถาพนทเปนรปอนกตองใชสตรตางกนไป

สามารถก�าหนดขนตอนออกมาเปนอลกอรทมแบบผงงานไดดงภาพท 1.12

ภาพท1.12อลกอรทมของการค�านวณหาพนท

จากอลกอรทมแบบผงงานตามภาพท 1.12 สามารถเขยนเปนอลกอรทมแบบรหสเทยม

ไดดงน

ตารางท 1.5 ชอตวแปรทใชเกบคาตางๆ และแบบของขอมล

ชอตวแปร ใชเกบคา แบบขอมล

F_area พนทของสนาม ตวเลข

F_width ความกวางของสนาม ตวเลข

F_length ความยาวของสนาม ตวเลข

G_area พนทของแผนหญา ตวเลข

G_width ความกวางของหญา ตวเลข

G_length ความยาวของหญา ตวเลข

N_grass จ�านวนแผนหญา ตวเลข

4) รปแบบผลลพธทตองการ

ตองการใหโปรแกรมแสดงผลอะไรออกมาบาง เชน จ�านวนแผนหญา หรอขอมลทงหมด

5) ขนตอน หรอวธการประมวลผล

จากปญหา สามารถแยกแยะและเขยนเปนตาราง ตามลกษณะการประมวลผลของ

คอมพวเตอร คอ ขอมลเขาหรอขอมลทใช การประมวลผล และขอมลออกหรอผลลพธ ตามล�าดบ

การท�างานไดดงตารางท 1.6

ตารางท 1.6 ขนตอนการประมวลผล

ขอมลเขา/ขอมลทใช การประมวลผล ขอมลออก

ความกวางของสนาม ความยาวของสนาม

ค�านวณหาพนทของสนาม พนทของสนาม

ความกวางของแผนหญา ความยาวของแผนหญา

ค�านวณหาพนทของแผนหญา พนทของแผนหญา

พนทของสนาม พนทของแผนหญา

ค�านวณหาจ�านวนแผนหญา จ�านวนแผนหญา

จากตารางท 1.6 อาจท�าการออกแบบอลกอรทมรวมทงหมด หรอแยกเปน 3 อลกอรทม

คอ อลกอรทมของการหาพนทของสนาม อลกอรทมของการหาพนทของแผนหญา และอลกอร

ทมของการหาจ�านวนแผนหญา

20 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 21

Page 15: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

ภาพท1.13อลกอรทมของโปรแกรมค�านวณหาจ�านวนแผนหญา

เมอออกแบบอลกอรทมของโปรแกรมเสรจแลว ท�าการตรวจสอบวาถกตอง ตรงตาม

ล�าดบขนตอน และมขนตอนครบตามทตองการหรอไม จากนนกน�าไปเขยนโปรแกรมตอไป

กจกรรม 1-4 การเขยนรหสเทยมค�านวณหาพนทแผนหญา

ใหนกเรยนเขยนรหสเทยมของการค�านวณหาจ�านวนแผนหญาจากผงงานตามภาพท 1.1

สรป

อลกอรทม หมายถง ชดขนตอนการท�างานตามล�าดบทคอมพวเตอร และอปกรณ

อจฉรยะอนๆ สามารถท�าได เพอท�าการค�านวณ ประมวลผลขอมล และท�างานทตองใชเหตผล

อยางอตโนมต

Algorithm_A1: Area_of_Field

BEGIN

GET F_Width

GET F_Length

# Area Calculation

F_Area , F_Width * F_Length

DISPLAY “Field Area = ”, F_Area

END

หมายเหต

ขอความทจะแสดงอยในอญประกาศ(เครองหมายค�าพด)และใชจลภาค(Comma)

คนระหวางขอความกบตวแปร

5.2) อลกอรทมของการหาพนทแผนหญาการค�านวณหาพนท เนองจากแผนหญาเปนรปสเหลยมผนผา

ใชสตร พนท = กวาง x ยาว

สามารถก�าหนดขนตอนออกมาเปนอลกอรทมแบบผงงานไดเชนเดยวกนกบภาพท 1.12

แตใชตวแปรและคาขอมลตางกนเมอเขยนโปรแกรม คอ

เมอใชตวแปรทก�าหนดไว จะได

G_area , G_width * G_length

5.3) อลกอรทมของการหาจ�านวนแผนหญาการค�านวณหาจ�านวนแผนหญา หาไดจาก

จ�านวนแผนหญา = พนทสนาม / พนทแผนหญา

เมอใชตวแปรทก�าหนดไว จะได

N_grass , F_area / G_area

เมอไดอลกอรทมยอยครบแลว สามารถน�ามาจดรวมกนแลวออกแบบใหเปนอลกอรทม

ของโปรแกรมค�านวณหาจ�านวนแผนหญาได ดงภาพท 1.13

22 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 23

Page 16: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

2. มจดเรมตน (Start) และจดสนสด (End) เพยงชดเดยว

3. ใชเสนหวลกศรแสดงทศทางการไหลของขอมล

4. เสนลกศรตองตอเชอมกบสญลกษณ โดยตอเขาทางเดยว และออกทางเดยวตรง

กลางสญลกษณ ยกเวนสญลกษณการตดสนใจทเขาทางเดยว แตออกไดหลายทาง

5. ใชค�าอธบายการท�างานในแตละขนตอนดวยขอความทสน กะทดรด ชดเจน

6. ใชสญลกษณจดตอในหนาเดยวกน แทนการโยงเสนยาว ๆ หรอเสนทตดกน

7. ถาไมสามารถเขยนในหนาเดยวได ใหใชสญลกษณจดตอระหวางหนา

8. ทดสอบความถกตองของการท�างานกอน จงน�าไปใชเขยนโปรแกรมตอไป

9. เขยนใหครบทกฟงกชนทใช และก�าหนดขนตอนและรายละเอยดใหชดเจน

10. ก�าหนดชอผงงานก�ากบไว

โครงสรางของผงงาน ม 3 แบบดงตอไปน

1. โครงสรางแบบตามล�าดบ (Sequence) เปนการแสดงขนตอนการท�างานตามล�าดบ

2. โครงสรางแบบทางเลอก (Selection) เปนการแสดงขนตอนการท�างานตาม

เงอนไขใหเลอกท�า ซงจะมการทดสอบเงอนไขเพอแยกแยะการเลอกท�างานใหเปนไปตามกรณท

ตองการ ถาเงอนไขเปนจรงจะใหท�าอะไร และถาเงอนไขเปนเทจจะใหท�าอะไร

3. โครงสรางแบบวนซ�า (Iteration) เปนการแสดงขนตอนการท�างานแบบวนซ�า ซง

จะมการทดสอบเงอนไข ถาเงอนไขเปนจรงใหวนซ�าการท�างานอก ถาเปนเทจใหหยดการวนซ�า

ประโยชนของผงงาน

1. ชวยจดล�าดบขนตอนการท�างานของโปรแกรม และสามารถน�าไปเขยนโปรแกรม

ไดอยางถกตอง

2. ชวยในการตรวจสอบ และแกไขโปรแกรมไดงาย เมอเกดขอผดพลาด

3. ชวยใหการดดแปลง แกไข ท�าไดอยางสะดวกและรวดเรว

4. ชวยใหผอนสามารถศกษาการท�างานของโปรแกรมไดอยางสะดวก และรวดเรวมากขน

การเขยนรหสเทยม เปนการเขยนขนตอนการท�างานโดยใชรหสเทยม หรอค�าสงเทยมท

ไมใชค�าสงของภาษาคอมพวเตอร แทนการท�างานในแตละขน (โดยไมตองใชสญลกษณเหมอนผง

งาน) โดยทวไปเขยนเปนภาษาองกฤษ

ค�าสงเทยมทใชจะเปนค�าสงพนฐานในการท�างานของคอมพวเตอร ดงตอไปน

1. การน�าขอมลเขา เชน GET, INPUT

2. การน�าขอมลออก เชน DISPLAY, PRINT

3. การค�านวณ เชน COMPUTE

ขนตอนการแกปญหาดวยคอมพวเตอร มดงน

1) วเคราะหปญหา

2) ออกแบบอลกอรทม

3) ตรวจสอบความถกตองของอลกอรทม

4) น�าอลกอรทมไปออกแบบและเขยนโปรแกรม

การคดเชงค�านวณ เปนกระบวนการคดทตองใชทกษะและเทคนคเพอแกปญหาในเชง

นามธรรม ประกอบดวย การแบงยอยปญหา การรจ�ารปแบบของปญหา การมองภาพรวม หรอ

แนวคดเชงนามธรรม และการออกแบบอลกอรทม

คณสมบตของอลกอรทม

1) มการท�างานทชดเจน และท�าไดจรง ไมคลมเครอ

2) มล�าดบขนตอนการท�างานทชดเจน จนจบการท�างาน

3) ดงาย หรอตรวจสอบแกไขได

4) มความถกตอง ทงการท�างาน และผลลพธ

5) ท�างานไดครบทกเงอนไข

6) มประสทธภาพ คอ ใชเวลา และหนวยความจ�าทเหมาะสม

อลกอรทมเขยนไดหลายรปแบบ ดงตอไปน

1) แบบบรรยาย (Narrative description)

2) แบบขนตอน (Step by step)

3) แบบผงงาน (Flowchart)

4) แบบรหสเทยม (Pseudo-code)

5) แบบโปรแกรม (Program)

ประโยชนของอลกอรทม มดงน

1) ท�าใหการท�างาน หรอการแกปญหาชดเจนขน

2) ชวยในการแกปญหา

3) ท�าใหการท�างานส�าเรจอยางรวดเรว

4) อลกอรทมทออกแบบไวดแลว สามารถน�าไปใชไดอก หรออาจน�าไปใชกบงานอนได

การเขยนผงงาน เปนการออกแบบอลกอรทมทใชรปภาพสญลกษณ แทนขนตอนการ

ท�างานตางๆ ในแตละขน และใชเสนหวลกศรเชอมตอ เพอแสดงเสนทางการท�างาน

หลกการเขยนผงงานทด ควรท�าดงตอไปน

1. ใชสญลกษณตรงตามทก�าหนดไว มขนาด และระยะหางทเหมาะสม

24 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑ หนวยท 1 การออกแบบอลกอรทม 25

Page 17: (วิทยาการค านวณ)academic.obec.go.th/textbook/web/images/book/1555578002...1.3 การออกแบบอ ลกอร ท มโดยใช รห สเท

4. การก�าหนดคา เชน SET

5. การเพมคา เชน INCREMENT

6. การทดสอบเงอนไข เชน IF … THEN … ELSE

7. การวนซ�า เชน WHILE … ENDWHILE

หลกการเขยนรหสเทยมทด ควรท�าดงตอไปน

1. ก�าหนดชออลกอรทม

2. เรมจากค�า BEGIN, START หรอ เรมตน

3. สนสดดวยค�า END, STOP หรอ จบ หรอหยด

4. ค�าสงตาง ๆ อยระหวาง BEGIN และ END โดยจดใหเยองกนไป

5. ใชค�าสงเดยวในแตละบรรทด

6. ค�าสงหลกใชตวพมพใหญ

7. ใช # เพอเขยน Comment หรอหมายเหตเพอใหเขาใจงายขน

โครงสรางของรหสเทยม ม 3 แบบ เชนเดยวกบโครงสรางของผงงาน คอ โครงสรางแบบ

ตามล�าดบ แบบทางเลอก และแบบวนซ�า

การวดและประเมนผลการเรยนร หนวยท 1

ค�าชแจง ตอบค�าถามตอไปนใหถกตอง

1. อลกอรทม หมายถงอะไร

2. คณสมบตของอลกอรทม มอะไรบาง

3. ประโยชนของอลกอรทม มอะไรบาง

4. หลกการเขยนผงงานทด ควรท�าอยางไรบาง

5. ผงงานมประโยชนอยางไรบาง

6. เขยนผงงานของการหาอายเฉลยของนกเรยน 10 คน

7. หลกการเขยนรหสเทยม ควรท�าอยางไรบาง

8. ยกตวอยางค�าสงเทยมมา 5 ค�าสง

9. เขยนอลกอรทมของการบวกเลข 1 ถง 10 โดยใชรหสเทยม

10. ผงงาน และรหสเทยม เหมอนกนหรอตางกนอยางไร อธบายพอสงเขป

26 เทคโนโลย (วทยาการค�านวณ) ชน ม.๑