More Related Content More from Turuu Tsogt (13) 7salaalsan3. Салаалалсан буюу нөхцөл шалгах алгоритм
Хэрэв дараагийн удаа ямар алхамаа биелүүлэх
вэ гэдэг нь оролтын өгөгдлүүдээс хамаарч
байвал салаалсан алгоритм юм. Өөрөөр хэлбэл
алгоритмын алхмуудын биелэгдэх дараалал нь
оролтын өгөгдлөөс хамаардаг бол уг
алгоритмыг салаалсан бүтэцтэй алгоритм
гэнэ.
4. Салаалалсан буюу нөхцөл шалгах алгоритм
0 1
Энэ тохиолдолд бороо хэмээх оролтын өгөгдөл нь орож байна
гэж өгөгдвөл Шүхэр, эсрэг тохиолдол малгай гэсэн сонголтыг
хийж байна.
5. Салаалалсан буюу нөхцөл шалгах алгоритм
Дээрх алгоритмаас дүгнэлт хийвэл зарим үйлдэл
биелэгдэх эсэх нь ямар нэгэн нөхцлөөс хамаардаг байна.
Салаалсан алгоритмын үйлдэл бүр биелэгдэх албагүй.
Салаалсан алгоритм нөхцөл шалгах блокийг агуулна
Нөхцөл шалгаж байгаа үйлдэл нь харьцуулах үйлдлүүд
байна гэсэн дүгнэлтэнд хүр ч болно.
6. Харьцуулах үйлдлүүд
<(их) ,
<=( их буюу тэнцүү) ,
>(бага) ,
>=(бага буюу тэнцүү) ,
== тэнцүү ,
!= тэнцүү биш
зэрэг үйлдлүүдийг авч үздэг. Эдгээр Үйлдлийг ашигласан
илэрхийллийг логик илэрхийлэл гэнэ. Харьцуулах үйлдэл нь
нөхцөл шалгах болон нөхцөлт давталтын операторуудад
хэрэглэнэ.Үнэн худлыг шалгаж буй энэ төрлийг Алгоритмд
BOOLEN төрөл гэж нэрлэнэ.
7. Салаалсан алгоритмын бүтэц
Алгоритмын салаалсан бүтцийн хувьд
Гүйцэд бус
Нийлмэл гүйцэд бус
Гүйцэт
Нийлмэл гүйцэд
Давхар салаалсан
Гэж ангилаж болно
8. Нөцөл биелэж байвал аль эсвэл биелээгүй үед үйлдэл хийгдэж байх ба эсрэг
талд нь үйлдэл байхгүй байвал гүйцэд бус хэлбэр болно.
0 1
Нөхцөл
Үйлдэл 1
Үгээр тайлбарлах юм бол:
• Хэрвээ нөхцөл үнэн бол үйлдэл1-г хийнэ эсрэг тодохиолд ямар нэг
үйлдэл байхгүй ба алгоритмийн дараагийн үйлдлийг хийнэ
9. Гүйцэд бус нийлмэл хэлбэр
Нөцөл биелэж байвал аль эсвэл биелээгүй үед үйлдэлүүд хийгдэж байх ба
эсрэг талд нь үйлдэл байхгүй байвал гүйцэд бус нийлмэл хэлбэр болно.
0 1
Нөхцөл
Үйлдэл 1
Үйлдэл 2
Үгээр тайлбарлах юм бол:
• Хэрвээ нөхцөл үнэн бол үйлдэл1, үйлдэл 2-г хийнэ эсрэг тодохиолд
ямар нэг үйлдэл байхгүй ба алгоритмийн дараагийн үйлдлийг хийнэ
10. Гүйцэт хэлбэр
Нөхцөл шалгах үйлдэл нь үнэн тохиолдолд хийх үйлдэлтэй байх ба мөн
эсэрэг тохиолдолд хийх үйлдэлтэй байвал гүйцэт хэлбэр болно.
0 1
Нөхцөл
Үйлдэл 1
Үйлдэл 2
Үгээр тайлбарлах юм бол:
Хэрэв нөхцөл ( үнэн биелж) байвал Үйлдэл1-ийг хий,
үгүй бол (нөхцөл худал байвал) зөвхөн Үйлдэл2-ыг хий”
гэсэн өгүүлбэр байна.
11. Нийлмэл гүйцэт хэлбэр
Нөхцөл шалгах үйлдэл нь үнэн тохиолдолд хийх хоёр ба түүнээс дээш
үйлдэлтэй байх ба эсэрэг тохиолдолд мөн хоёр ба түүнээс дээш
үйлдэлтэй байвал нийлмэл гүйцэт хэлбэр болно.
0 1
Нөхцөл
Үйлдэл 1
Үйлдэл 2
Үйлдэл 3
Үйлдэл 4
Үгээр тайлбарлах юм бол:
• Хэрвээ нөхцөл үнэн бол үйлдэл1, үйлдэл2 –г хий
• Эсрэг тохиололд үйлдэл3, үйлдэл4 – г хий
12. Давхар нөхцөл шалгах хэлбэр
Нөхцөл шалгах үйлдэл ийн дараагийн хийгдэх үйлдэл нь нөхцөл шалгах
үйлдэл байвал давхар нөхцөл шалгах хэлбр гэнэ
0 1
Нөхцөл 1
0 1
Үйлдэл 3
Нөхцөл3
0 1
Нөхцөл 2
Үйлдэл 4 Үйлдэл 2
Үйлдэл 1
13. Жишээ нь 1: гүйцэд салаалсан
a болон b хувьсагчийн ал нь их утгатай вэ?
Бодолтын тайлбар
• А болон В хувьсыгчийн утгыг гарнаас авах ба А
хувьсагчийн утаг В хувьсагчийн утгаас их нь үнэн бол А
их гэж гаргах ба эсрэг тохиолдолд В их гэж гаргаж байна
0 1
14. Логик үйлдлүүд
Логик үйлдлүүд болох үгүйсгэл , ба , буюу нь Алгоритм дараах тэмдэгтээр
илэрхийлэгдэнэ.
not – логик үгүйсгэл /ПХ !/
and - логик ба /ПХ && /
or-логик буюу /ПХ ||/
xor
Эдгээр үйлдлүүд нь нөхцөлүүдийг холбон нийлмэл логик нөхцөл болдог.
Логик үйлдлүүд нь ихэнхдээ нөхцөл шалгах оператор болон нөхцөлт
давталтын операторуудтай хэрэглэгдэнэ. ! нь унар , &&, || нь бинар
үйлдлүүд юм.
Логик холбоосын үнэн хүснэгтийг харуулбал: (1-үнэн , 0 худал), Алгоритмд
логик илэрхйиллийн утга 0 – оос ялгаатай бол үнэн , 0 –тэй тэнцүү бол
худлаа гэж үздэг.
16. And, or, xor
A логик B логик А and B А or В A xor B
1 1 1 1 0
1 0 0 1 1
0 1 0 1 1
0 0 0 0 0
17. Жишээ нь 1: логик үйлдэл ашиглан нөцөл
шалгах
a хувьсагчийн утга b болсон с хувьсагчийн утгатай
тэнцүү бол тэнцүү гэж гарга, эсрэг тохиолдод
тэнцүү биш гэж гарга
Бодолтын тайлбар
• А болон В,С хувьсыгчийн утгыг гарнаас авах ба А
хувьсагчийн утаг В хувьсагчийн утгатай тэнцүү, А
хувьсагчийн утга С хувьсагчийн утгай тэнцүү гэдэг
нь үнэн бол “тэнцүү” гэж гаргах ба эсрэг
тохиолдолд буюу дээрх хоёр нөхцлийн аль нэг нь
худлаа байвал “тэнцүү биш” гэж гаргаж байна
0 1