មេរៀនទី 3៖ ការបែងចែកតាមលក្ខខណ្ឌ (If-Then-Else) និងការរកឃើញការប៉ះទង្គិច
Theory & practice
🧠 មេរៀនទី 3៖ ការគិតបែបតក្កវិជ្ជា — ប្រសិនបើ បន្ទាប់មក និងបើមិនដូច្នោះទេ
🎯 គោលបំណងនៃការសិក្សា
បន្ទាប់ពីមេរៀននេះ អ្នកនឹងអាច៖
- យល់អំពីលក្ខខណ្ឌពិត និងមិនពិតក្នុងការសរសេរកម្មវិធី។
- បែងចែកភាពខុសគ្នារវាង
if ... thenនិងif ... then ... else។ - ប្រើឧបករណ៍ចាប់សញ្ញាដើម្បីឱ្យតួអង្គ ឬរ៉ូបូតអាចសម្រេចចិត្តបាន។
- ផ្សំលក្ខខណ្ឌជាមួយរង្វិលជុំដើម្បីបង្កើតកម្មវិធីឆ្លាតវៃ។
1. រ៉ូបូតឆ្លាតវៃចេះសម្រេចចិត្ត
រ៉ូបូតឆ្លាតវៃមិនមែនគ្រាន់តែផ្លាស់ទីទៅទិសតែមួយទេ។ វាត្រូវសង្កេតមើលបរិស្ថានជុំវិញ ហើយជ្រើសរើសសកម្មភាពត្រឹមត្រូវ។
ឧទាហរណ៍៖
- ប្រសិនបើ មានឧបសគ្គនៅខាងមុខ បន្ទាប់មក រ៉ូបូតឈប់។
- ប្រសិនបើ ងងឹត បន្ទាប់មក បើកភ្លើង។
- ប្រសិនបើ ចុចគ្រាប់ចុចព្រួញស្តាំ បន្ទាប់មក តួអង្គផ្លាស់ទីទៅស្តាំ។
- បើមិនដូច្នោះទេ — គ្មានឧបសគ្គ — រ៉ូបូតបន្តទៅមុខ។
របៀបគិតបែបនេះហៅថា ការគិតតាមលក្ខខណ្ឌ។
2. លក្ខខណ្ឌពិត និងមិនពិត
លក្ខខណ្ឌមានលទ្ធផលតែពីរប៉ុណ្ណោះ៖
| លទ្ធផល | អត្ថន័យ |
|---|---|
True (ពិត) | ដំណើរការប្លុកខាងក្នុង |
False (មិនពិត) | រំលងវា ឬដំណើរការមែក else |
លក្ខខណ្ឌដែលប្រើញឹកញាប់ក្នុង PictoBlox៖
touching [Wall]?
key [right arrow] pressed?
distance less than 15 cm?
Score greater than 10?
color red is touching blue?ប្លុកលក្ខខណ្ឌជាធម្មតាមានរាងប្រាំមួយជ្រុង ហើយដាក់ចូលក្នុងរន្ធនៃប្លុក if បាន។
3. ប្លុក if ... then
ប្លុកនេះដំណើរការសកម្មភាពតែនៅពេលលក្ខខណ្ឌពិតប៉ុណ្ណោះ។
if <touching [Wall]?> then
play sound [Alarm]
move -10 stepsប្រសិនបើតួអង្គមិនប៉ះជញ្ជាំង ប្លុកខាងក្នុងត្រូវបានរំលង។
ឧទាហរណ៍៖ ការបញ្ជាដោយក្ដារចុច
when green flag clicked
forever
if <key [right arrow] pressed?> then
change x by 5រង្វិលជុំ forever ធ្វើឱ្យកម្មវិធីពិនិត្យក្ដារចុចបានច្រើនដងក្នុងមួយវិនាទី។
4. ប្លុក if ... then ... else
ប្លុកនេះអនុញ្ញាតឱ្យកម្មវិធីជ្រើសរើសសកម្មភាពមួយក្នុងចំណោមពីរ។
if <touching [Wall]?> then
play sound [Alarm]
move -10 steps
turn right 90 degrees
else
move 5 stepsរបៀបដែលកម្មវិធីដំណើរការ៖
- 1ពិនិត្យថាតើតួអង្គប៉ះជញ្ជាំងឬទេ។
- 2ប្រសិនបើប៉ះ តួអង្គព្រមាន ថយក្រោយ និងបត់។
- 3ប្រសិនបើមិនប៉ះ តួអង្គបន្តទៅមុខ។
| លក្ខខណ្ឌ | សកម្មភាព |
|---|---|
| ប៉ះជញ្ជាំង | ព្រមាន ថយក្រោយ និងបត់ |
| មិនប៉ះជញ្ជាំង | បន្តទៅមុខ |
5. ផ្សំលក្ខខណ្ឌជាមួយឧបករណ៍ចាប់សញ្ញា
រ៉ូបូតអាចប្រើឧបករណ៍ចាប់សញ្ញាអ៊ុលត្រាសោនដើម្បីវាស់ចម្ងាយទៅឧបសគ្គ។
when green flag clicked
forever
set [Distance] to [ultrasonic sensor value]
if <Distance less than 15> then
stop motors
play sound [Alarm]
reverse for 1 second
turn right 90 degrees
else
drive forward at speed 5ក្នុងកម្មវិធីនេះ៖
Distance < 15គឺជាលក្ខខណ្ឌ។- នៅពេលឧបសគ្គនៅជិតជាង 15 cm រ៉ូបូតនឹងគេចវា។
- នៅពេលផ្លូវខាងមុខទំនេរ រ៉ូបូតបន្តផ្លាស់ទី។
6. ផ្សំលក្ខខណ្ឌច្រើន
ពេលខ្លះរ៉ូបូតត្រូវពិនិត្យរឿងច្រើនក្នុងពេលតែមួយ។
លក្ខខណ្ឌ and (និង)
លក្ខខណ្ឌទាំងពីរត្រូវតែពិត។
if <Distance less than 15 and Speed greater than 0> then
stop motorsលក្ខខណ្ឌ or (ឬ)
លក្ខខណ្ឌមួយក្នុងចំណោមពីរពិតគឺគ្រប់គ្រាន់។
if <touching edge or touching color red> then
turn aroundលក្ខខណ្ឌ not (មិន)
បញ្ច្រាសលទ្ធផលនៃលក្ខខណ្ឌ។
if <not touching [Wall]> then
keep moving7. អនុវត្ត៖ តួអង្គស្វែងរកផ្លូវ
ភារកិច្ច
សរសេរកម្មវិធីឱ្យតួអង្គ៖
- 1បន្តទៅមុខ។
- 2ពិនិត្យថាតើវាប៉ះជញ្ជាំងឬទេ។
- 3ប្រសិនបើប៉ះជញ្ជាំង ថយក្រោយ ហើយប្ដូរទិស។
- 4ប្រសិនបើមិនប៉ះ បន្តទៅមុខ។
កម្មវិធីដែលណែនាំ
when green flag clicked
set [Speed] to [5]
forever
if <touching [Wall]?> then
play sound [Alarm]
move -10 steps
turn right 90 degrees
wait 0.2 seconds
else
move [Speed] stepsសាកល្បងប្ដូរការបត់ពី 90 degrees ទៅ 45 degrees។ តើផ្លូវរបស់តួអង្គផ្លាស់ប្ដូរយ៉ាងដូចម្ដេច?
8. កំហុសដែលជួបញឹកញាប់
មិនដាក់លក្ខខណ្ឌក្នុងរង្វិលជុំ
ប្រសិនបើពិនិត្យតែម្ដង រ៉ូបូតនឹងឈប់សង្កេតបរិស្ថានជុំវិញ។
ត្រូវប្រើ៖
forever
if <condition> then
do the actionច្រឡំសញ្ញាប្រៀបធៀប
Distance less than 15មានន័យថាឧបសគ្គនៅជិត។
Distance greater than 15មានន័យថាមានកន្លែងទំនេរនៅខាងមុខ។
រ៉ូបូតវិលជុំនៅនឹងកន្លែង
ក្រោយពេលជួបឧបសគ្គ រ៉ូបូតគួរថយចេញមុនពេលបត់៖
stop motors
reverse
turn right🧩 បញ្ហាប្រឈម
បង្កើតរ៉ូបូតដែលមានការឆ្លើយតបបីកម្រិត៖
if <Distance less than 10> then
stop and reverse
else
if <Distance less than 25> then
slow down
else
drive normallyរ៉ូបូតនឹង៖
- ឈប់នៅពេលឧបសគ្គនៅជិតពេក។
- បន្ថយល្បឿននៅពេលវាខិតជិតឧបសគ្គ។
- បើកធម្មតានៅពេលផ្លូវខាងមុខទំនេរ។
✅ ចងចាំ
- លក្ខខណ្ឌគឺ
TrueឬFalse។ if ... thenដំណើរការសកម្មភាពនៅពេលលក្ខខណ្ឌពិត។if ... then ... elseជ្រើសរើសរវាងសកម្មភាពពីរ។- រង្វិលជុំធ្វើឱ្យរ៉ូបូតពិនិត្យលក្ខខណ្ឌជាបន្តបន្ទាប់។
- ឧបករណ៍ចាប់សញ្ញាផ្ដល់ព័ត៌មានដល់រ៉ូបូតដើម្បីសម្រេចចិត្ត។
- រ៉ូបូតគួរឈប់ ឬថយក្រោយមុនពេលប្ដូរទិស។
សំណួររហ័ស
- 1តើលក្ខខណ្ឌអាចមានលទ្ធផលអ្វីខ្លះ?
- 2តើ
if ... thenខុសពីif ... then ... elseយ៉ាងដូចម្ដេច? - 3ហេតុអ្វីការពិនិត្យឧបករណ៍ចាប់សញ្ញាត្រូវតែនៅក្នុងរង្វិលជុំ?
- 4តើរ៉ូបូតគួរធ្វើអ្វីនៅពេលឧបសគ្គនៅជិតជាងចម្ងាយសុវត្ថិភាព?