Сайн байцгаана уу, оюутан залуус аа! Өнөөдөр бид компьютерийн програмчлалын удирдлагын бүтцийн талаар суралцах болно. Хяналтын бүтэц нь компьютерийн программын замын тэмдэгтэй адил юм. Тэд аль замаар явах, цаашид юу хийхийг зааж өгдөг. Та гэртээ эсвэл сургуульдаа дүрэм журмыг дагаж мөрддөгтэй адил компьютер програм ажиллуулахдаа удирдлагын бүтцийг дагадаг.
Удирдлагын бүтэц гэдэг нь программыг гүйцэтгэхдээ янз бүрийн алхмуудын хооронд хэрхэн сонгохыг компьютерт зааж өгдөг заавруудын багц юм. Энэ нь компьютер ижил дарааллаар ажиллах эсвэл өөр зүйл хийх шийдвэр гаргах эсэхийг шийддэг.
Та жор дагаж байна гэж төсөөлөөд үз дээ. Жор нь алхам бүрийг хэлж өгдөг: эхлээд гурил, усыг холино; дараа нь өндөг нэмнэ; дараа нь хутгана; эцэст нь хольцыг жигнэх хэрэгтэй. Компьютерт удирдлагын бүтэц ижил төстэй байдлаар ажилладаг. Тэд компьютерт дараа нь ямар заавар ирэх, сонголт байгаа үед ямар шийдвэр гаргахыг мэдэхэд тусалдаг.
Өнөөдөр та гурван үндсэн төрлийн хяналтын бүтэцтэй танилцах болно. Тэдгээр нь:
Дараалсан удирдлагын бүтэц нь компьютерт зааврыг тогтмол дарааллаар дагаж мөрдөхийг хэлдэг. Дэс дараалсан хяналтад шийдвэр гаргадаггүй. Та энгийн зааврыг дагаж мөрддөг шиг алхам бүр дараалан тохиолддог.
Жишээлбэл, өдөр тутмынхаа өглөөний дэглэмийн талаар бодоорой:
Үйл ажиллагаа бүр тодорхой дарааллаар ар араасаа явагддаг. Програмчлалд үүнийг дараалсан гүйцэтгэл гэж нэрлэдэг. Компьютер эхний заавар, дараа нь хоёр дахь, дараа нь гурав дахь зааврыг уншина.
Хэрэв бид сэндвич хийх энгийн псевдо програмын талаар бодох юм бол энэ нь дараах байдалтай харагдаж болно.
Алхам 1: Хоёр зүсмэл талх ав.
Алхам 2: Цөцгийн тосыг нэг зүсмэл дээр тараана.
Алхам 3: Цөцгийн тос дээр бяслаг тавь.
Алхам 4: Хоёр зүсмэлийг хамтад нь тавь. Сэндвичээ сайхан идээрэй!
Таны хийсэн сэндвичтэй адил компьютер зааврыг нэг нэгээр нь гүйцэтгэдэг.
Сонголтыг хянах бүтэц нь компьютерт сонголт хийх боломжийг олгодог. Тэд замын салаа эсвэл “Адал явдалаа өөрөө сонго” ном шиг ажилладаг. Компьютер ямар нэг нөхцөл эсвэл дүрмийг хардаг бөгөөд дараа нь ямар замаар явахаа шийддэг.
Жишээлбэл, өглөө юу өмсөхөө сонгох талаар бодож үзээрэй. Та: "Хэрэв бороотой бол би борооны цув, нартай бол подволк өмсөнө" гэж шийдэж магадгүй. Энэ бол цаг агаарт бэлтгэхэд тань туслах шийдвэр юм. Програмчлалд компьютер шийдвэр гаргахдаа if , else if , else хэллэгүүдийг ашигладаг.
Энгийн хэлээр кодтой төстэй энгийн жишээ дараах байдалтай байна.
Хэрэв бороо орж байвал "Шүхэр аваарай" гэж хэвлэ .
Үгүй бол "Шүхэр хэрэггүй" гэж хэвлэ.
Энэ нь: хэрэв нөхцөл (бороо) үнэн бол үйлдлийг хий (шүхэр ав). Үгүй бол өөр үйлдлийг хий.
Өөр жишээ татъя. Та тоглоом тоглож байна гэж төсөөлөөд үз дээ, "Хэрэв та 10 оноо авбал ялах болно!" гэсэн дүрэм байдаг. Энэ дүрэм нь сонгон шалгаруулалтын хяналтын бүтэцтэй адил юм. Тоглоом нь таны оноо 10-тай тэнцэж байгаа эсэхийг шалгана. Хэрэв тийм бол таныг ялагч гэж зарлана. Үгүй бол үргэлжлүүлэн тоглодог.
Сонгон шалгаруулалтын бүтэц нь цөөн хэдэн хариулттай шийдвэр гаргахад компьютерт тусалдаг. Тэд компьютерт "Хэрэв үнэн бол үүнийг хий, үгүй бол өөр зүйл хий" гэж хэлдэг.
Давталтын удирдлагын бүтэц нь компьютерт ямар нэг зүйлийг дахин дахин хийхийг хэлдэг. Үүнийг давталт эсвэл давтагдах үйлдэл гэж нэрлэдэг. Даалгаврыг олон удаа давтах шаардлагатай үед давталт ашигладаг.
Сагсанд байгаа алимны тоог хэзээ тоолох талаар бодож үзээрэй. Та 1, 2, 3, 4, 5 гэх мэтийг тоолж болно. Та нэг тооноос эхэлж, төгсгөлд нь хүртлээ тоолно. Энэ нь компьютер хэрхэн гогцоо ашигладагтай төстэй юм.
Програмчлалд нийтлэг хоёр төрлийн гогцоо байдаг:
Ямар нэг зүйлийг хэдэн удаа давтахыг хүсч байгаагаа мэдэх үед for давталт ашиглагддаг. Жишээлбэл, хэрэв та дууны нэг мөрийг 5 удаа дуулахыг хүсвэл for циклийг ашиглаж болно.
Учир нь (1-ээс 5 хүртэл тоолох) "Төрсөн өдрийн мэнд хүргэе!" гэсэн мөрийг дуулах хэрэгтэй.
Компьютер дээр "Төрсөн өдрийн мэнд хүргэе!" таван удаа, учир нь энэ нь алхамыг 5 удаа давтдаг.
Нөхцөл үнэн байх үед компьютер ямар нэг зүйлийг давтсаар байх үед while давталтыг ашигладаг. Жишээлбэл, хэрэв та бөмбөлөг үлээж байгаа бол бөмбөлөг хангалттай том болтол үлээж болно. Дүрэм нь: "Бөмбөлөг том биш ч гэсэн агаарт хий."
Энэ нь: Бөмбөлөг жижиг байхад (бөмбөлөг жижиг) үргэлжлүүлэн үлээлгээрэй. Бөмбөлөг хангалттай том болмогц гогцоог зогсоо.
Гогцооны санааг ашиглах өөр нэг энгийн жишээ энд байна: Та алгаа таших дуртай гэж төсөөлөөд үз дээ. Та 10 удаа алгадах хүртлээ алгаа ташихаар шийднэ. Та ингэж хэлж болно: "Ташилт"-ыг 10 удаа давтана . Хөтөлбөрт компьютер алгадах бүрийг тоолж, 10 алгадахад хүрэхэд зогсох болно.
Хяналтын бүтэц нь програмчлалд маш чухал байдаг. Тэд хөтөлбөрт байгаа ажлуудыг зөв зохион байгуулахад тусалдаг. Тэдгээргүйгээр компьютер хэрхэн шийдвэр гаргах, үйлдлийг давтах талаар мэдэхгүй байх байсан.
Хяналтын бүтэц яагаад чухал байдаг зарим шалтгаанууд энд байна:
Програмчлалд удирдлагын бүтцийг тусгадаг өдөр тутмын амьдралаас зарим жишээг авч үзье.
Дараалсан хяналтын жишээ:
Та сургуульдаа бэлдэж байна гэж төсөөлөөд үз дээ. Эхлээд та сэр. Дараа нь та нүүрээ угаана. Дараа нь та хувцсаа өмс. Эцэст нь та өглөөний цайгаа ууна. Энэ бол таны ар араасаа хийдэг үйлдлийн дараалал юм. Компьютерийн програмчлалд заавар бүрийг нөхцөлгүйгээр дагаж мөрдөх үед дараалсан хяналтыг ашигладаг.
Сонголтыг хянах жишээ:
Хувцсаа сонгохдоо гаргасан шийдвэрээ анхаарч үзээрэй. Хэрэв цаг агаар хүйтэн бол та дулаан цамц өмсдөг. Хэрэв цаг агаар халуун байвал та подволк өмсдөг. Энэхүү шийдвэр гаргах үйл явц нь компьютер "if" хэллэгийг хэрхэн ашигладагтай төстэй юм. Компьютер цаг агаарыг (нөхцөл байдал) шалгаж, дараа нь тохирох хувцасны сонголтыг (үйлдэл) сонгоно.
Давталтын хяналтын жишээ:
Тоглоомоо хаях гэх мэт ажил хийж байхдаа өөрийгөө төсөөл. Танд авах олон тоглоом байж болно. Тоглоом бүрийн талаар нэг нэгээр нь бодохын оронд та зүгээр л ижил үйлдлийг давтана: тоглоомоо аваад тоглоомын хайрцагт хийж, бүгдийг нь авах хүртэл дараагийн тоглоом руу шилжинэ. Энэ бол програмчлалын гогцоо шиг давтагдах үйлдэл юм.
Заримдаа хяналтын бүтцийг бие биенийхээ дотор байрлуулж болно. Үүнийг үүрлэсэн хяналтын бүтэц гэж нэрлэдэг. Энэ нь нэг шийдвэр эсвэл гогцоо нөгөө дотор байх үед тохиолддог. Хэд хэдэн алхамаар сонголтоо хийдэг тоглоомыг төсөөл. Жишээлбэл, та эхлээд зүүн эсвэл баруун тийш явах эсэхээ шийдэж болно. Хэрэв та зүүнийг сонговол "Чи толгод руу авирах уу эсвэл тойрон алхах уу?" Гэсэн өөр сонголттой тулгарч магадгүй юм. Сонголт бүр нь жижиг шийдвэр бөгөөд тэдгээр нь ар араасаа үүрлэсэн байдаг.
Кодлохдоо үүрлэх нь компьютерт илүү төвөгтэй ажлуудыг гүйцэтгэх боломжийг олгодог. Энгийн тоглоом эсвэл програм ч гэсэн хэд хэдэн давхар шийдвэр, гогцоотой байж болно. Эдгээр давхаргууд хамтран ажиллах үед програм илүү ухаалаг шийдвэр гаргаж, илүү сонирхолтой зүйлсийг хийж чадна.
Жишээлбэл, зугаалга төлөвлөхөд тань туслах хөтөлбөрийг төсөөлөөд үз дээ. Энэ нь эхлээд "Цаг агаар сайхан байна уу?" Хэрэв тийм гэж хариулвал хөтөлбөр "Таны хоол хангалттай юу?" Хэрэв та дахин тийм гэж хариулвал "Гайхалтай! Зугаа цэнгэл хийх цаг боллоо!" Хэрэв ямар нэг хариулт үгүй бол өөр төлөвлөгөө санал болгоно. Энэхүү үүрлэсэн шийдвэр гаргалт нь компьютерт таны сонголтыг илүү сайн ойлгоход тусална.
Компьютерийн програм ажиллах үед таны өгсөн зааврыг тодорхой дарааллаар гүйцэтгэдэг. Компьютерийн дэлгэцэн дээр мэндчилгээ үзүүлдэг энгийн программыг бодоцгооё. Хөтөлбөр нь дараахь зүйлийг хийж болно.
Алхам 1: Хөтөлбөрийг эхлүүлнэ үү.
Алхам 2: Өдрийн цагийг шалгана уу.
Алхам 3: Хэрэв цаг өглөө болвол "Өглөөний мэнд!"
Алхам 4: Хэрэв цаг үдээс хойш болвол "Өдрийн мэнд!"
Алхам 5: Хэрэв цаг орой болвол "Оройн мэнд!"
Алхам 6: Хөтөлбөрийг дуусга.
Энэ хөтөлбөрт тодорхой дараалал байдаг. Дэлгэц дээр юу харуулах вэ гэдэг шийдвэр бас бий. Шийдвэр гаргахын тулд компьютер сонголтын хяналтын бүтцийг ( if-else хэллэг) ашигладаг.
Дараа нь та зоос цуглуулах шаардлагатай энгийн компьютер тоглоом тоглож байна гэж төсөөлөөд үз дээ. Програм нь таныг нэг зоос цуглуулах бүрийг шалгахын тулд гогцоо ашиглаж болно. Энэ нь таны зоосыг цуглуулж байхдаа тоолох болно. Бүх зоосыг цуглуулсны дараа тоглоом дуусна. Энд гогцоо нь тоолох процессыг давтдаг давталтын хяналтын бүтэц юм.
Хяналтын бүтцийг зөвхөн сургуулийн дасгал эсвэл жижиг хөтөлбөрт ашигладаггүй. Тэдгээрийг бидний өдөр тутам хардаг бодит ертөнцийн олон хэрэглүүрүүдэд ашигладаг. Энд зарим сонирхолтой жишээ байна:
Эдгээр жишээнүүд нь хяналтын бүтэц хаа сайгүй байгааг харуулж байна! Эдгээр нь орчин үеийн төхөөрөмж, программуудыг аль болох жигд ажиллуулахад тусалдаг бөгөөд бидний амьдралыг илүү хялбар, хөгжилтэй болгодог.
Энгийн псевдокодын жишээг бичье. Псевдокод нь кодтой төстэй энгийн үгсийг ашиглан програмыг төлөвлөх арга юм.
Жишээ нь: Зууш хийх энгийн шийдвэр гаргагч
Та алим эсвэл гадил жимсний зууш идэх эсэхээ шийдмээр байна гэж төсөөлөөд үз дээ. Та дүрмийг дараах байдлаар бичиж болно.
Хэрэв та өлсөж, чихэрлэг зүйл хүсч байвал алим сонго.
Хэрэв та өлсөж, зөөлөн зүйл хүсч байвал гадил жимсийг сонгоорой.
Үгүй бол суугаад юу хүсч байгаагаа бодоорой.
Энэхүү псевдокод нь компьютерт: Та чихэрлэг зүйл хүсч байгаа эсэхийг эхлээд шалгаарай. Хэрэв энэ үнэн бол алим сонго. Хэрэв үгүй бол гадил жимсний гэх мэт өөр зүйл байгаа эсэхийг шалгаарай. Хэрэв сонголтуудын аль нь ч таарахгүй бол түр зуур шийдээрэй.
Энэ нь хяналтын бүтцийг газрын зураг болгон бодоход тустай байж болох юм. Энгийн эрдэнэсийн газрын зургийг зур. Газрын зураг дээр дарааллаар нь бичсэн алхмуудыг тэмдэглэсэн зам байна. Замын салаа цэг дээр ирэхэд газрын зураг нь эрдэнэсийн санд тулгуурлан аль замаар явахыг зааж өгдөг. Заримдаа газрын зураг танд эрдэнэс рүү хүрэх хүртлээ нэг замаар хэд хэдэн удаа явахыг зааж өгдөг. Эдгээр бүх заавар нь зөв замыг олоход тусална.
Үүний нэгэн адил компьютер нь газрын зургийг дагахдаа дараалсан алхмуудыг, салаа хэсэгт зөв замыг сонгохын тулд сонгох, зорилгодоо хүрэх хүртэл даалгавруудыг давтах үйлдлийг ашигладаг. Удирдлагын бүтцийг ашигласнаар бид компьютерт өөрийн "эрдэнэс"-д хэрхэн хүрэхийг хэлж чадна - зөв үр дүн.
Өнөөдөр сурсан чухал санаануудаа тоймлон үзье: