บทท่ี 2 การแก้ปญั หา จุดประสงคข์ องบทเรยี น เมอ่ื เรียนจบบทน้แี ล้ว นักเรียนจะสามารถ - อธบิ ายขั้นตอนการแกป้ ัญหา - วางแผนการแกป้ ญั หาโดยใชร้ หัสลาลองและผังงาน - แกป้ ญั หาตามข้นั ตอนการแกป้ ัญหา
ในโลกยุคดิจิทัลการดาเนินชีวิตต้องมีอุปกรณ์เทคโนโลยี สารสนเทศเพื่อการสื่อสารตลอดเวลา โดยมีระบบการทางานที่ ซับซ้อนอยู่เบื้องหลัง เช่น สมาร์ตโฟน การโอนเงินผ่านมือถือ ฯลฯ ซึ่งภายในมีโปรแกรมควบคุมการทางานของอุปกรณ์ที่ชาญฉลาด เหล่านลี้ ้วนอาศัยการเขียนโปรแกรมเพ่อื แกป้ ัญหาทัง้ ส้นิ
นักเรียนทราบหรือไม่ว่าทุกคนสามารถเขียนโปรแกรมได้ เน่ืองจากพ้ืนฐานการเขียนโปรแกรม คือ การคิดแก้ปัญหาอย่างเป็น ขัน้ ตอนและเป็นระบบ ซ่ึงในท่ีนี้จะกล่าวถึงขั้นและเคร่ืองมือ สาหรับ การแก้ปัญหาทัง้ ปัญหาในชีวติ ประจาวนั และปญั หาทใ่ี ชก้ ารคานวณ เป็นพนื้ ฐานเพ่อื นาไปสู่การเขยี นโปรแกรม
2.1 ขั้นตอนการแก้ปัญหา การแก้ปญั หาเป็นกจิ กรรมพนื้ ฐานในการดารงชวี ติ มนษุ ย์ บางปัญหาสามารถหาคาตอบไดท้ ันที ในขณะท่บี างปญั หาตอ้ งใช้ เวลาในการคน้ หาคาตอบ ซึง่ คาตอบนน้ั ต้องพสิ จู นไ์ ดว้ า่ เป็นคาตอบ ที่ถกู ต้อง นา่ เชอื่ ถอื และนาไปอ้างอิงต่อได้ ดงั น้ันการแก้ปญั หาของแต่ละบุคคลมีขนั้ ตอน วิธกี าร เวลา ทีแ่ ตกตา่ งกนั ความร้แู ละประสบการณจ์ ะสง่ ผลต่อความสามารถใน การแกป้ ญั หานัน้ ๆ
การแก้ปญั หา ประกอบดว้ ย 4 ข้ันตอน วเิ คราะหแ์ ละกาหนดรายละเอยี ดของปญั หา การวางแผนการแก้ปัญหา การดาเนินการแกป้ ญั หา การตรวจสอบและประเมินผล
วเิ คราะหแ์ ละกาหนด การวางแผนการแกป้ ญั หา รายละเอียดของปัญหา เป็นการคิดคน้ กระบวนการ เปน็ การทาความเขา้ ใจเกี่ยวกบั ตา่ ง ๆ ท่ีเปน็ ข้นั ตอน ตัง้ แตเ่ ริ่มตน้ รายละเอยี ด เงือ่ นไข ขอ้ กาหนด จนได้ผลลัพธ์ทีต่ ้องการ ซึง่ ตอ้ ง รวมถงึ ขอ้ จากัดต่าง ๆ ข้อมูลที่ อาศยั ประสบการณแ์ ละความรู้ จาเป็นตอ่ การแกป้ ญั หา ตรวจสอบ วธิ กี ารแกป้ ัญหามีหลายวิธีอาจ วา่ เพยี งพอหรอื ไม่ จะหาข้อมลู ให้ เลอื กใช้รหัสลาลอง หรอื ผงั งาน ครบถ้วนไดอ้ ย่างไร ขอ้ มลู ผลลัพธท์ ่ี โดยวิธีการแกป้ ัญหา ทเ่ี รียกวา่ ได้คอื อะไร และจะตรวจสอบความ ข้นั ตอนวิธหี รืออลั กอริทมึ ซึ่งเปน็ ถกู ต้องของผลลัพธ์ทไ่ี ดอ้ ยา่ งไร ลาดับข้ันตอนในการแกป้ ัญหาหรือ การทางานทช่ี ัดเจน
การดาเนนิ การแกป้ ัญหา การตรวจสอบและประเมนิ ผล เปน็ การนากระบวนการทีไ่ ด้ ข้นั ตอนนจ้ี ะทาควบคไู่ ปกบั วางแผนไว้มาปฏบิ ัติ หรือพัฒนา ขน้ั ตอนการดาเนินการแกป้ ัญหา โปรแกรมเพ่อื แกป้ ัญหา โดยอาจใช้ โดยการตรวจสอบผลลพั ธท์ ่ไี ด้ ภาษาโปรแกรมช่วยในการ หากผลลัพธย์ ังไมถ่ ูกตอ้ งหรอื มีส่วน ดาเนนิ การ ท่ีต้องแกไ้ ข ตอ้ งย้อนกลบั ไปทาซ้า ต้งั แต่ข้นั ตอนแรกจนกว่าจะได้ ผลลพั ธ์ทถ่ี กู ตอ้ ง
2.2 การเขยี นรหสั ลาลองและผงั งาน เม่อื เราทาความเขา้ ใจกับปัญหาและความตอ้ งการ แลว้ ส่งิ ต่อไปคือการคดิ อย่างมเี หตผุ ล เพือ่ หาแนวทางใน การแกป้ ัญหา ซง่ึ การถา่ ยทอดความคิดจะตอ้ งมีจุดเรมิ่ ตน้ จุดสิ้นสดุ และลาดบั ก่อนหลังทชี่ ัดเจน อาจอยใู่ นรูปของ ขอ้ ความท่เี รียงกันเปน็ ลาดบั เรยี กว่า รหสั ลาลอง (pseudo code) หรอื อยใู่ นรปู ของผังงาน (flowchart)
2.2.1 รหัสลาลอง การเขียนรหัสลาลอง เป็นการใช้คาบรรยายอธบิ ายขัน้ ตอนอยา่ ง ชดั เจนในการแกป้ ญั หา หรือการทางานของโปรแกรมซง่ึ อยใู่ นรปู ของ การเขยี น จะขน้ึ อยู่กบั ประสบการณ์ และความถนดั ของผเู้ ขยี น โดยอาจ เขียนเป็นภาษาพูด ทาให้เขียนงา่ ยไมต่ ้องกังวลในรปู แบบ ตัวอยา่ ง รหัสลาลองการคานวณหาพน้ื ทส่ี ามเหลีย่ ม เรม่ิ ตน้ 1. รับคา่ ความยาวฐาน 2. รับค่าความสงู 3. คานวณพ้นื ทส่ี ามเหล่ยี ม (พ้ืนท่ี คอื 1 x ความยาวฐาน x ความสูง 2 4. แสดงผลลพั ธ์พืน้ ท่ี จบ
ชวนคดิ
เฉลยชวนคดิ
2.2.2 ผงั งาน ประกอบไปดว้ ยสญั ลักษณ์ ขอ้ ความ และเส้นเชื่อมโยง ทาให้เห็นคาสง่ั ที่ ตอ้ งปฏิบัติ ลักษณะการทางาน และลาดับในการปฏบิ ตั งิ าน ผงั งานเปน็ เครอื่ งมอื หนงึ่ ท่ีใชใ้ นการวางแผนหรอื ออกแบบการแกป้ ญั หา เพื่อให้สามารถนาไปปฏบิ ตั ิตาม หรือเขียนโปรแกรมเพ่ือให้สัง่ ใหเ้ คร่อื งคอมพิวเตอร์ ทางานได้ง่าย สถาบนั มาตรฐานแห่งชาตอิ เมริกา (ANSI) ได้กาหนดสัญลกั ษณท์ ี่เปน็ มาตรฐานในการเขยี นผงั งานไว้ จะขอกลา่ วถงึ 5 สญั ลกั ษณพ์ ืน้ ฐาน
สญั ลกั ษณ์ ชือ่ เรยี ก ความหมาย เร่มิ ต้น และ จบ จดุ เรมิ่ ตน้ และจดุ สนิ้ สดุ ของ ผงั งาน การนาข้อมูลเขา้ - ออก จุดที่จะนาขอ้ มลู เขา้ จาก แบบทัว่ ไป ภายนอกหรอื vอกสู่ภายนอก โดยไม่ระบุชนิดของอุปกรณ์ การปฏิบัติงาน จดุ ที่มีการปฏิบัตงิ านอยา่ งใด การตดั สนิ ใจ อย่างหนึง่ จุดทจ่ี ะต้องเลอื กปฏบิ ัตอิ ยา่ ง ใดอยา่ งหนึง่ ทิศทาง ทิศทางขน้ั ตอนการ ดาเนินงานซง่ึ จะปฏิบัติ ต่อเน่ืองกนั ตามหวั ลกู ศรชี้
เกร็ดนา่ รู้ สัญลกั ษณ์เชื่อมต่อผังงานที่อยู่ คนละหน้ากระดาษ ในการเขยี นผังงานสาหรบั โปรแกรมทีม่ คี วามซับซอ้ นและ ตอ้ งการเชือ่ มต่อผังงานในหนา้ เดียวกัน สามารถใชส้ ัญลักษณ์ แล้วมีหมายเลขกากบั ภายใน หรือ ถ้ามีการเขยี นหลายหน้า สามารถ ใชส้ ัญลกั ษณ์ เพอ่ื เชือ่ มต่อผงั งานทอี่ ยู่คนละหนา้ กระดาษ โดยมี หมายเลขกากับภายในสัญลกั ษณ์
ตัวอย่าง ผงั งานการคานวณหาพ้นื ทีส่ ามเหลย่ี ม บางครั้งรหสั ลาลองหรอื ผังงานจะมี ข้อมูลทยี่ าวเกินไป จนทาใหเ้ กิดความ สบั สน หรือมีขอ้ มลู ซ้ากนั ดงั นั้นเพ่ือให้ง่ายและกระชบั สามารถ แทนช่อื ขอ้ มลู ดว้ ยตัวแปร ซึ่งตวั แปรจะมี ค่าไดเ้ พยี งคา่ เดียวเท่าน้นั แตค่ า่ ของตัว แปรสามารถเปลีย่ นแปลงไดข้ นึ้ อย่กู ับการ ดาเนินการกบั ตวั แปรน้นั ๆ
2.3 การกาหนดคา่ ให้ตัวแปร การกาหนดคา่ อย่างใดอย่างหนง่ึ ใหก้ ับตัวแปร ทาได้ 3 วิธี คอื การรบั คา่ จากภายนอก การกาหนดค่าจากคา่ คงทีห่ รือตวั แปรอน่ื การกาหนดค่าจากการคานวณ สญั ลักษณท์ ี่นยิ มใช้ในการกาหนดคา่ ตวั แปร คือ ใชเ้ พ่อื นาค่าทางขวา ของ ไปกาหนดให้กับตวั แปรทางด้านซ้ายของ เช่น
ตวั อย่าง รหัสลาลองและผังงานที่มกี ารใชต้ ัวแปร
ตวั อยา่ ง รหัสลาลองและผงั งานทมี่ ี การทางานแบบมีเงอ่ื นไข สถานการณ์ หลงั รับประทานขา้ ว ถา้ นักเรียนมเี งนิ เหลอื จะซอ้ื ขนม
ตวั อย่าง รหัสลาลองและผังงานที่มี การทางานแบบวนซ้า สถานการณ์ นักเรียนรว่ มวิง่ แขง่ ใน งานกีฬาของหมูบ่ า้ น ซงึ่ หาก ไม่ครบ 5 กโิ ลเมตรจะไม่ หยุดวิ่ง
2.4 ภาษาโปรแกรม นบั แตอ่ ดีตการสั่งงานคอมพวิ เตอรน์ น้ั ต้องเปน็ ภาษเครอื่ งท่ี ประกอบด้วย 0 และ 1 ซึง่ เปน็ อุปสรรค คอื ความยากต่อการ เขยี นโปรแกรม จนมาถึงปจั จบุ นั ภาษาคอมพวิ เตอรม์ คี วามคลา้ ย กบั ภาษาอังกฤษ ทาใหก้ ารเขียนโปรแกรมขนาดใหญ่ทาได้ รวดเร็ว มคี วามผดิ พลาดนอ้ ยลง แต่เน่ืองจากคอมพวิ เตอร์ยัง ตอ้ งทางานตามคาสั่งภาษาเครอื่ ง เมื่อเขียนโปรแกรมแล้วจึงต้อง มีการแปลให้เป็นภาษาเครือ่ งกอ่ น
ตัวแปรภาษาโปรแกรมมี 2 ประเภท 1. คอมไพเลอร์ (compiler) จะแปลโปรแกรมท้งั โปรแกรมใหถ้ ูกต้อง จงึ จะไดผ้ ลลพั ธเ์ ป็นโปรแกรมภาษาเครอื่ งท่ี นาไปใชส้ ัง่ งานคอมพิวเตอรไ์ ด้ ภาษาทต่ี อ้ งแปลดว้ ยคอมไพเลอร์ เชน่ C, C++, Java 2. อินเทอรพ์ รเี ตอร์ (interpreter) จะแปลคาส่งั ใน โปรแกรมทีละคาส่ังให้เปน็ ภาษาเครื่อง ส่งใหค้ อมพวิ เตอรท์ างาน ทนั ทโี ดยไม่ต้องรอใหแ้ ปลเสร็จทั้งโปรแกรม เชน่ Python, Logo
สรปุ ท้ายบท ปญั หาทน่ี กั เรยี นพบในชีวติ ประจาวัน บางปัญหาสามารถหาคาตอบ ได้ทนั ที ขณะท่ีบางปญั หาต้องการเวลาในการหาคาตอบ การแก้ปัญหา ของบคุ คลมีข้ันตอนและใช้เวลาทีแ่ ตกตา่ งกัน ซ่ึงความรแู้ ละ ประสบการณ์จะส่งผลต่อความสามารถในการแกป้ ญั หา การปฏิบัติตามข้ันตอนจะทาให้การแกป้ ญั หามปี ระสทิ ธิภาพ ซง่ึ จะต้องทาความเข้าใจกับปญั หาแล้วให้วางแผนเพื่อออกแบบอลั กอริทมึ ในการหาคาตอบ เครือ่ งมือในการออกแบบอาจใหร้ หัสลาลอง หรือผังงาน หลังจากนน้ั ดาเนินการเขียนโปรแกรม สุดทา้ ย ตรวจสอบผลลัพธว์ ่าถูกตอ้ งหรอื ไม่
แบบทดสอบ หนว่ ยที่ 2 เรอื่ ง การแกป้ ัญหา : ผังงานแบบไม่มที างเลอื ก คาส่ัง ให้นักเรียนเขยี นผงั งานแบบไม่มที างเลือก มาคนละ 1 ผงั งาน ต้องไม่ให้ซา้ กับท่คี รูยกตัวอยา่ ง โดยนกั เรียนสามารถค้นหาข้อมลู ผงั งานแบบไมม่ ีทางเลือกไดจ้ ากอินเทอรเ์ นต็ แล้วเขยี นผังงาน ดงั กลา่ วลงในสมุด เม่ือนกั เรียนคนใดเขยี นผงั งานเรียบร้อยแล้ว ให้นามาส่งครูทห่ี นา้ ชั้นเรยี น เพือ่ นาไปตรวจและใหค้ ะแนน 5 คะแนน
แบบทดสอบ หนว่ ยที่ 2 เร่อื ง การแก้ปัญหา : ผังงานแบบมีทางเลือก คาสัง่ ให้นกั เรียนเขียนผังงานแบบมีทางเลอื ก มาคนละ 1 ผังงาน ตอ้ งไมใ่ หซ้ า้ กบั ที่ครูยกตัวอยา่ ง โดยนกั เรยี นสามารถคน้ หาข้อมลู ผงั งานแบบมีทางเลือกได้จากอินเทอรเ์ น็ต แล้วเขียนผังงาน ดังกล่าวลงในสมดุ เมื่อนกั เรยี นคนใดเขยี นผังงานเรยี บร้อยแลว้ ใหน้ ามาสง่ ครูทีห่ นา้ ช้ันเรยี น เพ่อื นาไปตรวจและใหค้ ะแนน 5 คะแนน
แล้วพบกนั ใหม่ หนว่ ยท่ี 3 การโปรแกรมดว้ ยภาษาไพทอน
Search
Read the Text Version
- 1 - 28
Pages: