﻿WEBVTT

00:00:00.066 --> 00:00:37.910
[เสียงดนตรี]

00:00:37.995 --> 00:00:38.727
(คุณครูโชติช่วง) สวัสดีครับ

00:00:38.751 --> 00:00:40.194
หลังจากพวกเราได้เรียนรู้

00:00:40.307 --> 00:00:41.863
วิธีการแก้ปัญหาด้วยคอมพิวเตอร์

00:00:42.825 --> 00:00:45.200
ก็ควรมีการระบุข้อมูลเข้า ข้อมูลออก

00:00:45.739 --> 00:00:46.523
สำหรับคลิปนี้

00:00:46.657 --> 00:00:48.380
เราจะได้นำหลักการคิดเชิงคำนวณ

00:00:48.419 --> 00:00:49.964
มาออกแบบขั้นตอนวิธีกันนะครับ

00:00:50.596 --> 00:00:51.932
การออกแบบขั้นตอนวิธี

00:00:51.972 --> 00:00:54.176
จะต้องมีการออกแบบเงื่อนไขที่ถูกต้องและชัดเจน

00:00:54.549 --> 00:00:55.744
อาจเป็นเงื่อนไขอย่างง่าย

00:00:55.804 --> 00:00:57.559
หรือเงื่อนไขที่ซับซ้อนก็ได้นะครับ

00:00:57.992 --> 00:00:58.872
เรามาดูกันเลยครับ

00:01:00.312 --> 00:01:01.998
ตัวอย่างของการสร้างเงื่อนไขอย่างง่าย

00:01:02.725 --> 00:01:04.195
จะใช้การเปรียบเทียบมากกว่า

00:01:04.522 --> 00:01:05.950
น้อยกว่า หรือไม่เท่ากับ

00:01:06.509 --> 00:01:08.923
เช่น อายุน้อยกว่า 10 ปี

00:01:09.148 --> 00:01:10.687
ไม่ต้องเสียค่าเข้าชมสวนสัตว์

00:01:11.360 --> 00:01:12.304
ซึ่งจากตัวอย่างนี้

00:01:12.857 --> 00:01:14.545
เราจะใช้เงื่อนไขอายุน้อยกว่า 10 ปี

00:01:14.812 --> 00:01:16.247
ในการตรวจสอบว่าเป็นจริงหรือไม่

00:01:21.005 --> 00:01:22.790
เรามาดูตัวอย่างอีกสถานการณ์กันนะครับ

00:01:23.329 --> 00:01:25.400
นั่นก็คือการตัดสินใจรดน้ำต้นไม้

00:01:25.553 --> 00:01:27.093
ของระบบรดน้ำต้นไม้อัตโนมัติ

00:01:28.586 --> 00:01:30.710
ซึ่งระบบจะต้องอ่านค่าความชื้นของดิน

00:01:30.895 --> 00:01:32.371
และเปรียบเทียบกับค่าที่กำหนดไว้

00:01:33.085 --> 00:01:34.925
หากค่าความชื้นต่ำกว่าค่าที่กำหนด

00:01:35.485 --> 00:01:37.004
ให้ระบบส่งสัญญาณเปิดน้ำ

00:01:40.479 --> 00:01:41.957
หากมีค่าความชื้นเกินกว่า

00:01:41.981 --> 00:01:43.251
หรือเท่ากับค่าที่กำหนดไว้

00:01:43.485 --> 00:01:45.152
ระบบจะส่งสัญญาณปิดน้ำ

00:01:48.785 --> 00:01:49.809
จากสถานการณ์ดังกล่าว

00:01:50.108 --> 00:01:51.965
เราสามารถเขียนขั้นตอนวิธีได้ดังนี้ครับ

00:01:52.579 --> 00:01:54.332
1. อ่านค่าความชื้นของดิน

00:01:54.979 --> 00:01:57.254
2. ให้ H แทนค่าความชื้นดังกล่าว

00:01:57.902 --> 00:02:00.242
3. ถ้า H น้อยกว่า 0.1 แล้ว

00:02:00.888 --> 00:02:01.910
ส่งสัญญาณเปิดน้ำ

00:02:04.230 --> 00:02:06.535
ถ้าเงื่อนไขไม่เป็นจริงส่งสัญญาณปิดน้ำ

00:02:10.475 --> 00:02:11.554
จากขั้นตอนวิธีดังกล่าว

00:02:11.853 --> 00:02:13.158
เป็นการทำงานเพียงครั้งเดียว

00:02:13.598 --> 00:02:15.135
ดังนั้น เพื่อให้ระบบรดน้ำ

00:02:15.182 --> 00:02:16.358
สามารถทำงานได้อย่างต่อเนื่อง

00:02:16.995 --> 00:02:18.048
เราสามารถเพิ่มการทำงาน

00:02:18.072 --> 00:02:19.415
ในขั้นตอนวิธีได้ดังนี้ครับ

00:02:24.693 --> 00:02:27.257
ซึ่งเมื่อเราเพิ่มขั้นตอนการทำซ้ำทุก ๆ 1 วินาที

00:02:27.695 --> 00:02:29.854
ระบบรดน้ำจะมีการอ่านค่าความชื้น

00:02:29.924 --> 00:02:32.271
และตัดสินใจทำงานทุก ๆ 1 วินาทีนั่นเองครับ

00:02:34.145 --> 00:02:36.479
นอกจากนี้เราสามารถนำขั้นตอนวิธี

00:02:36.504 --> 00:02:38.152
มาเขียนในรูปแบบของผังงานได้ดังนี้

00:02:38.400 --> 00:02:46.825
[เสียงดนตรี]

00:02:46.881 --> 00:02:47.998
(คุณครูโชติช่วง) จากตัวอย่างที่ผ่านมาแล้ว

00:02:48.279 --> 00:02:50.459
เราจะพบว่าเงื่อนไขที่ใช้เป็นเงื่อนไขอย่างง่าย

00:02:50.931 --> 00:02:53.820
นั่นก็คือเปรียบเทียบค่าความชื้นกับค่าที่กำหนด

00:02:54.873 --> 00:02:56.852
แต่ถ้าเราต้องการเงื่อนไขที่ซับซ้อนมากขึ้น

00:02:57.230 --> 00:02:59.880
เช่น ต้องการเปรียบเทียบทั้งค่าความชื้น

00:02:59.980 --> 00:03:01.236
และอุณหภูมิกับค่าที่กำหนด

00:03:02.091 --> 00:03:04.140
เพื่อให้ระบบสามารถทำงานได้แม่นยำมากขึ้น

00:03:04.718 --> 00:03:07.144
เราจะมีวิธีการสร้างเงื่อนไขที่ซับซ้อนนี้อย่างไร

00:03:07.577 --> 00:03:08.256
เรามาดูกันครับ

00:03:10.794 --> 00:03:11.679
เราลองมาพิจารณา

00:03:11.704 --> 00:03:13.348
ตารางค่าความจริงต่อไปนี้กันนะครับ

00:03:14.227 --> 00:03:15.511
หากมีเงื่อนไข A และ B

00:03:15.627 --> 00:03:16.839
ซึ่งมีค่าความจริงดังนี้

00:03:20.020 --> 00:03:22.614
เราจะพบว่าค่าความจริงของตัวดำเนินการและ

00:03:23.092 --> 00:03:24.144
จะเป็นจริงกรณีเดียว

00:03:24.205 --> 00:03:26.478
คือ เมื่อทั้ง A และ B เป็นจริง

00:03:28.684 --> 00:03:30.350
ค่าความจริงของตัวดำเนินการหรือ

00:03:30.927 --> 00:03:32.168
จะเป็นเท็จกรณีเดียว

00:03:32.762 --> 00:03:33.991
คือเมื่อทั้ง A และ B เป็นเท็จ

00:03:35.929 --> 00:03:37.577
และตัวดำเนินการพิเศษของ A

00:03:37.838 --> 00:03:39.140
จะมีค่าตรงข้ามกับ A

00:03:39.654 --> 00:03:40.898
ดังแสดงในตารางนี้นะครับ

00:03:46.378 --> 00:03:47.227
เมื่อเราทราบแล้วว่า

00:03:47.492 --> 00:03:49.206
เราสามารถสร้างเงื่อนไขที่ซับซ้อน

00:03:49.472 --> 00:03:51.142
โดยใช้ตัวดำเนินการและเข้ามาช่วย

00:03:51.803 --> 00:03:53.888
ในการตรวจสอบค่าความชื้นและอุณหภูมิ

00:03:54.311 --> 00:03:55.866
เพื่อเปรียบเทียบกับค่าคงที่ที่กำหนด

00:03:56.381 --> 00:03:59.568
เช่น ถ้าระบบอ่านค่าความชื้นได้ 0.08

00:04:00.295 --> 00:04:02.232
และอ่านค่าอุณหภูมิได้ 35 องศา

00:04:03.226 --> 00:04:04.676
เราจะพบว่าเงื่อนไขทั้ง 2

00:04:04.887 --> 00:04:06.404
มีค่าความจริงเป็นจริงและจริง

00:04:07.043 --> 00:04:09.435
ดังนั้น ระบบจะส่งสัญญาณเปิดน้ำนั่นเองครับ

00:04:14.006 --> 00:04:17.178
เอ๊ะ ถ้าหากว่าระบบอ่านค่าความชื้นได้ 0.08

00:04:17.368 --> 00:04:19.184
และอ่านค่าอุณหภูมิได้ 28 องศา

00:04:19.534 --> 00:04:21.516
นักเรียนคิดว่าระบบจะทำงานอย่างไรครับ

00:04:22.297 --> 00:04:29.154
[เสียงนาฬิกานับถอยหลัง]

00:04:29.889 --> 00:04:30.723
(คุณครูโชติช่วง) เรามาพิจารณา

00:04:30.748 --> 00:04:31.842
อีกสถานการณ์กันนะครับ

00:04:32.857 --> 00:04:34.516
ครูตรวจข้อสอบของนักเรียน 5 คน

00:04:34.855 --> 00:04:36.247
และติดประกาศคะแนนไว้หน้าห้อง

00:04:37.208 --> 00:04:38.688
หากเราต้องการเขียนขั้นตอนวิธี

00:04:38.788 --> 00:04:40.597
เพื่อหาคะแนนสูงสุดของนักเรียนกลุ่มนี้

00:04:41.291 --> 00:04:42.245
นักเรียนจะทำอย่างไรครับ

00:04:47.326 --> 00:04:49.144
ขั้นตอนวิธีของสถานการณ์นี้คือ

00:04:49.433 --> 00:04:51.972
เราจะกำหนดตัวแปร Max แทนค่าสูงสุดที่พบ

00:04:52.966 --> 00:04:55.477
โดยเริ่มต้นให้ Max มีค่าเป็นข้อมูลตัวแรกที่พบ

00:04:58.600 --> 00:05:00.789
พิจารณาข้อมูลตัวถัดไปทีละจำนวน

00:05:01.625 --> 00:05:03.686
เราจะเรียกข้อมูลตัวที่กำลังพิจารณาว่า X

00:05:04.731 --> 00:05:06.052
เปรียบเทียบค่า X กับค่า Max

00:05:07.197 --> 00:05:08.089
ถ้า X มากกว่า Max

00:05:08.884 --> 00:05:10.095
แล้วให้ Max มีค่าเท่ากับ X

00:05:11.361 --> 00:05:13.284
จากนั้นทำซ้ำจนครบทุกตัว

00:05:16.150 --> 00:05:17.888
จะพบว่า Max คือคะแนนสูงสุด

00:05:20.116 --> 00:05:22.143
ซึ่งเราสามารถเขียนขั้นตอนวิธีได้ดังนี้ครับ

00:05:26.595 --> 00:05:27.122
เอาล่ะครับ

00:05:27.145 --> 00:05:29.259
หลังจากนักเรียนได้เรียนรู้เรื่องขั้นตอนวิธี

00:05:29.791 --> 00:05:31.997
ครูก็อยากให้นักเรียนลองทำกิจกรรมหาค่าต่ำสุด

00:05:32.046 --> 00:05:33.378
ในหนังสือเรียนกันดูนะครับ

00:05:33.861 --> 00:05:35.708
แล้วพบกันใหม่ในคลิปถัดไป สวัสดีครับ

00:05:35.733 --> 00:05:55.891
[เสียงดนตรี]