2014/12/07


                 Програмчлалын хэл

 Програмчлалын хэл гэдэг нь тооцоолох электрон Машин (цаашид машин гэж явна) буюу компьютер дээр хийгддэгтооцон бодох үйлдлийг илэрхийлэх чадвар бүхий, машин уншихад (ойлгох) зориулсан зохиомол хэлийг гэнэ. Програмчлалын хэлийг ашиглан машины үйлдлийг хийх, алгоритмыг нарийвчлан гаргах, хүний харилцааны нэг хэлбэрийг тодорхойлох програм зохиож болно.
Ихэнхи програмчлалын хэл өөрийн гэсэн синтакс болон семантикстай байдаг. Учир нь компьютерт маш нарийн тодорхойлсон заавар шаардлагатай байдаг. Нэг хэсэг хэлийг баримтаар тодорхойлдог (жишээ нь, ISO Стандарт) байхад, үлдсэн нь хэрэгжүүлэлтэд тулгуурласан (Перл гэх мэт) байна.
Анхны програмчлалын хэлийг компьютер бий болохоос өмнө автоматжуулсан нэхмэлийн машин, төгөлдөр хуур тоглуулагч зэрэг төхөөрөмжийг удирдахад зориулан зохион ашигладаг байжээ. Үүнээс хойш хэдэн мянган өөрийн гэсэн онцлогтой програмчлалын хэлнүүд компьютерын салбарт зохиогдсон бөгөөд одоо жил бүр нэмж зохиогдсоор л байна.
Тооцоолол хийдэггүй хэлнүүд болох markup language-ийн HTML болон formal grammar-ийн BNF-ийг програмчлалын хэл биш гэж ерөнхийдөө үздэг. Зарим үед програмчлалын хэлийг эдгээр тооцоолол хийдэггүй хэлний (суурь) дотор буюу хамтатган бичих боломжтой байдаг.

Програмчлал:

Компьютерийн програмчлал буюу програмчлал нь програмчлалын хэлээр компьютер программыг бичих, шалгах, сахих процесс юм. Энэ нь програмын хэл ашиглан алгоритм зохиох арга юм.

Зохиосон алгоритмыг гүйцэтгэгч нь компьютер. Тэгвэл үг ба график дүрслэлийн аргаар илэрхийлсэн алгоритмыг компьютер “ойлгохгүй”. Учир нь компьютер аливаа мэдээллийг дүрслэх өөрийн гэсэн хэлтэй. Түүгээр нь илэрхийлсэн мэдээллийг л “ойлгоно”. Ийм компьютерын хэл дээр зохиогдсон алгоритмыг програм, харин програм зохиох процессыг програмчлал хэмээн нэрийддэг.
Ийм кодын “хоёр талд” хэрэглэгч, компьютер хоёр “сууж” байх бөгөөд компьютер уг кодыг логик элементүүдийн дараалал мэтээр шууд “уншиж” байхад хэрэглэгч бол уг кодыг мэдээлэл болгон тайлж уншина. Эсрэгээр мөн мэдээллээ кодлон “бичнэ”. Үүнийг програмчлал гээд байгаа.
Програмчлалын үндэс
Компьютер програмчлал буюу програмчлал нь програмчлалын хэлээр компьютер программыг бичих, шалгах, сахих процесс юм. Алгоритмыг дүрслэх хэд хэдэн арга байдаг. Эдгээрийн нэг нь програмын хэл ашиглан алгоритм зохиох арга буюу програмчлал юм. Зохиосон алгоритмыг гүйцэтгэгч нь компьютер. Тэгвэл үг ба график дүрслэлийн аргаар илэрхийлсэн алгоритмыг компьютер “ойлгохгүй”. Учир нь компьютер аливаа мэдээллийг дүрслэх өөрийн гэсэн хэлтэй. Түүгээр нь илэрхийлсэн мэдээллийг л “ойлгоно”. Ийм компьютерын хэл дээр зохиогдсон алгоритмыг програм, харин програм зохиох процессыг програмчлал хэмээн нэрийддэг. Компьютерын хэл гэж ямар юм байх вэ? Орчин үеийн компьютер бол нарийн бүтэцтэй дижитал электрон төхөөрөмж гэдгийг бид мэднэ. Түүний мэдээлэл боловсруулах үйл ажиллагаа дотор талын логик элементүүдэд (схемүүдэд) өгөгдсөн хүчдэлээр зохицуулагдана. Логик элемент нь “асаалттай”, “унтраалттай” (эсвэл “үнэн”, “худал”) гэсэн хоёр тогтвортой логик төлвийн аль нэгд оршдог. Ихэвчлэн +5В хүчдэл өгөгдсөн байвал асаалттай төлөв (гүйдэл байна), харин 0-1В хүчдэл өгөгдсөн байвал унтраалттай төлөв (гүйдэл байхгүй) гэнэ. Харин хүн эдгээр төлөвийг тоогоор илэрхийлж загварчилна. Тухайлбал “асаалттай” төлвийг 1, “унтраалттай” төлвийг 0-ээр кодлодог. Тиймээс энэ хоёр цифрийн тодорхой дараалал ө.х. олон тооны логик элементийн комбинациар ямар ч мэдээллийг кодлож (дүрсэлж) болно. Ингэж ч кодлодог. Үүнийг компьютерын хэл гээд байгаа юм. Түүнээс гадна энэ хэл дээр мэдээллийг гүйцэт зөв кодлохын тулд компьютерын логик элементийн тоо асар их (хэдэн тэрбум) байх ёстой болдог. Тийм ч байдаг. Хэдэн үндсэн цифрийг ашиглан дурын тоог илэрхийлэх аргачлалыг тооллын систем гэдэг. 0 ба 1 гэсэн хоёрхон цифрийг ашигласан тооллын системийг 2-тын тоолол (BIN-Binary) хэмээн нэрийднэ. Тэгэхээр компьютерын техникт бол 2-тын тооллын системийг ашигладаг ажээ. Энэ тооллын системд, 0 ба 1-ийн дурын дараалал ямар нэгэн 2-тын тоо болно. Ө.х. компьютерын хэл дээрх мэдээлэл гэдэг нь дандаа 2-тын тоонуудаар кодлогдсон байх нь. Ийм кодын “хоёр талд” хэрэглэгч, компьютер хоёр “сууж” байх бөгөөд компьютер уг кодыг логик элементүүдийн дараалал мэтээр шууд “уншиж” байхад хэрэглэгч бол уг кодыг мэдээлэл болгон тайлж уншина. Эсрэгээр мөн мэдээллээ кодлон “бичнэ”. Үүнийг програмчлал гээд байгаа.
Алгоритмын үндсэн алхмууд
Алхмын нэрАлхмын үүрэг
Бодолтын утга олгох алхамХэмжигдхүүний утгыг өөрчлөнө.
Логик алхамЯмар нэгэн нөхцлөөс хамааран алгоритм биелэх замыг сонгоно.
Оруулах алхамӨгөгдөл, завсрын хэмжигдхүүнүүдийн утгыг оруулна.
Гаргах алхамӨгөгдөл, завсрын хэмжигдхүүнүүдийн утга болон үр дүнг гаргана.
Эхлэл төгсгөлийн алхамЭхлэл төгсгөл болон мэдээллийг боловсруулах процессийг зогсоохыг заана.
ХолбоосХарьцангуй хол орших алхмуудын шилжилтийг заахад хэрэглэнэ.
ТайлбарЯмар нэгэн алхмын гүйцэтгэх үүргийг дэлгэрэнгүй тайлбарлахад хэрэглэнэ.
Мэдээллийг оруулах алхам :Бодолтын утга олгох алхам :Мэдээллийг бичиж гаргах алхам :Салаалуулах алхам :Мэдээллийг боловсруулахын тулд түүнийг компьютерийн санах ойд урьдчилан бичсэн байх шаардлагатай. Иймээс алгоритмд хувьсагчдын анхны утгуудыг машинд оруулах алхам зайлшгүй байх ба үүнийг компьютерийн гарын тусламжтайгаар хийдэг. компьютерт оруулж байгаа мэдээллийн санах ойд хадгалагдах хаягыг мэдээллийг оруулах алхамдаа зааж өгнө. Энэ алхам биелэгдэхэд хувьсагчийн утга нь хэрэгтэй болно.компьютерийн нэг үндсэн үүрэг нь мэдээллийг хувирган боловсруулах явдал юм. Алгоритмд тодорхой нэр томъёогоор хэмжигдхүүний утгыг бодож гаргах алхам зайлшгүй гардаг. Энэ алхмыг бодолтын утга олгох алхам гэнэ. Энэ алхам нь утгыг бодож олох гэж байга илэрхийлэл, гарах утгыг хадгалах хаяг гэсэн 2 хэсэгтэй байна. Ямар нэгэн хэмжигдхүүнд утга олгоход хуучин утга нь устдаг гэдгийг анхаарах хэрэгтэй.Алгоритм ба программаар олсон үр дүнг компьютераас хүнд мэдээлэх нь зайлшгүй юм. Өөрөөр хэлбэл бодлогын хариуг компьютераас бичиж гаргах хэрэгтэй юм. Мэдээллийг гаргах үйлдэл нь олон хэлбэртэй байна. Бид нар мэдээллийг компьютерийн дэлгэцэн дээр бичиж гаргах хэлбэрийг хэрэглэнэ. Энэ алхамд утгыг нь бичиж гаргах гэж буй хэмжигдхүүнүүдийн хаягийг зааж өгнө.Алгоритмын нэгэн алхмаас өөр алхамд шилжин тэр алхмаас бодолтыг үргэлжлүүлэх боломжийг хангасан үйлдлийг удирдлага шилжүүлэх үйлдэл гэнэ. Энэ үйлдлийг хэрэглэснээр хэсэг алхмыг алгасах, ямар нэгэн алхамд буцаж ирэх зэргээр алхмуудын биелэх дарааллыг алгоритм зохиогч удирдаж чадна. Алгоритмчлах явцад тодорхой нөхцөл шалган уг нөхцөл биелэгдэж байгаа эсэхээс хамааруулан бодолтыг ялгаатай замаар үргэлжлүүлэх шаардлага гардаг. Энэ шаардлагыг хангасан алхмыг нөхцөлт удирдлага шилжүүлэх буюу салаалуулах алхам гэнэ. Нөхцөлт удирдлага шилжүүлэх алхам нь шалгах нөхцөл, нөхцөл биелэгдэх болон биелэгдэхгүй байх 2 тохиолдлын тус бүрт нь бодолтыг үргэлжлүүлэх зам гэсэн 3 элементтэй байна.
Алгоритмыг дүрслэх
Алгоритмыг дараахь 3 хэлбэрээр дүрсэлж болно.

  • Хүмүүсийн харилцааны ердийн хэл - Алгоритмыг хүмүүсийн харилцааны ердийн хэлээр дүрслэнэ гэдэг нь алгоритмын алхам бүрийг үг ба өгүүлбэрээр бичнэ гэсэн үг юм.
  • Блок-схем - Блок-схем бол алгоритмын бүтцийг нүдэнд харагдахуйц байдлаар харуулан алгоритмыг графикаар дүрслэх хэлбэр юм. Блок-схемд алгоритмын алхам бүрийг геометрийн нөхцөлт дүрсээр тэмдэглэх бөгөөд уг дүрс дотор тухайн алхмын товч утгыг томъёогоор бичнэ.
  • Программчлалын хэл - Алгоритмыг программчлалын хэлээр дүрслэхэд программчлалын ямар нэгэн хэл сонгон авч тухайн хэлнийхээ үгзүй, өгүүлбэрзүйн дүрмүүдийг баримтлан алгоритмыг тэр хэлээрээ бичнэ. Алгоритмыг ийм байдлаар дүрслэхэд программчлалын хэлний тухай мэдлэг алгоритм зохиогчид зайлшгүй шаардагдана. Иймээс алгоритмыг программчлалын хэлээр дүрслэхийн өмнө урьдчилан программчлалын хэл судлан, эзэмшсэн байх хэрэгтэй юм.
Алгоритмын чанарууд
Дискрет чанар:
Алгоритм нь өгөгдөл эсвэл өмнөх алхмуудын хэмжигдхүүнүүдээр тодорхой дүрмийн дагуу шинэ хэмжигдхүүнүүдийг олох тусгаар тусгаар алхмуудад хуваагдсан байна. Энэ чанарыг алгоритмын дискрет чанар гэнэ.
Тодорхой чанар:
Алгоритмын аливаа алхмын үйлдлийг гүйцэтгэгч нэгэн утгатайгаар ойлгохын зэрэгцээгээр гүйцэтгэж чаддаг байна. Энэ нь алгоритмын тодорхой байх чанар юм.
Төгсгөлөг чанар:
Алгоритм нь төгсгөлөг тооны алхамтай байна.
Үр дүнтэй чанар:
Алгоритмын аливаа алхам болон алгоритмыг бүхэлд нь биелүүлэхэд тодорхой үр дүн гардаг байх ёстой. Үүнийг алгоритмын үр дүнтэй байх чанар гэнэ.
Нийтлэг чанар:
Алгоритм нь зөвхөн тухайн өгөгдөлд төдийгүй уг өгөгдөлтэй ижил төрлийн бүх өгөгдөлд хүчинтэй байна. Энэ чанарыг алгоритмын нийтлэг чанар гэнэ.

2014/12/04

Алгоритм зохиох аргачлал
Алгоритм зохионо гэдэг нь тухайн бодлогыг бодох үйл ажиллагааг гүйцэтгэгчийг үйлдлүүдээр нарийвчлан задалж, уг үйлдлүүдийг ямар дэс дарааллаар гүйцэтгэхийг тодорхойлж өгнө гэсэн үг юм. Бодлогын алгоритмыг зохиоход алгоритмыг алхам алхмаар боловсруулах аргыг ихэвчлэн хэрэглэдэг. Энэ аргын үндсэн санаа нь бодлогыг сайтар задлан шинжилсний эцэст таньж мэдсэн түүний өвөрмөц шинж чанарыг үндэслэн эхлээд бодлогын алгоритм ямар ямар хэсгүүдээс тогтохыг харуулсан бүдүүвч алгоритм зохиож цаашаа түүнийгээ шат дараалан гүйцэтгэгчийн үйлдлүүдээр нарийвчлан задлах явдал юм.
Бодлогын хариуг гаргахын тулд бодлогыг өгөгдөл ба бодолтын явцад гарах завсрын хэмжигдхүүнүүд дээр хийх үйлдлүүдийн агуулга болон дэс дарааллыг тодорхойлж байгаа зааврыг алгоритм гэнэ. Алгоритмаар заасан бодлогыг бодох үйл ажиллагааг биелүүлэгчийг алгоритмыг гүйцэтгэгч гэнэ. Аливаа алгоритмыг тодорхой гүйцэтгэгчид зориулж зохионо. Алгоритмыг гүйцэтгэгч нь хүн эсвэл компьютер байна.