Tuesday, March 20, 2012

Shell sort (Шеллийн эрэмбэлэх арга)

(Нэг уншигчийн маань хүсэлтээр үүнийг постлолоо)
 Энэ арга нь оруулан эрэмбэлэх аргын сайжруулсан хэлбэр бөгөөд элементийн эцсийн байрлалд орох шилжилтийг хурдасгасан арга юм. Анх Donald Shell боловсруулсан. Олон юм нуршаад ч яахав, ганц бичлэг share-лээд өгье.

Sunday, March 18, 2012

Typer 1.1

Typer 1.1 шинэ хувилбарыг та бүхэнд хүргэж байна. (Өмнө Typer 1.0 буюу анхны хувилбарыг хүргэж байсан.)
Шинэ хувилбарт дараах нэмэлт, өөрчлөлт шинэчлэлтүүд хийгдлээ. 
- Хэрэглэгч өөрөө Text файл сонгож бичих (Бичсэн файлууд жагсаалтанд хадгалагдах ба дараа уг жагсаалтнаас сонгож бичих боломжтой)
- Гарын авалга - Quick Access Toolbar-ийн Асуултын тэмдэгтэй товч эсвэл F1
- Бүх үзэгдэл(үйлдэл)-үүдийг ажиллахад хялбар, хурдан болгох үүднээс товчны хослол болон дан ганц товчны даралтаар хийгддэг болгосон бөгөөд уг хослолуудыг харах лавлагаа. Quick Access Toolbar-ийн Дурангийн зурагтай товч эсвэл Alt + F1
- Алдаа тооцож хадгалах, Бичсэн түүх формд харуулах.
- Бичих текстэнд санамсаргүй 1-ээс олон хоосон зай орсон тохиолдолд шахаж, зөв бүтэцтэй болгох г.м.

Татах

Өмнөх Typer 1.0 нь 2 долоо хоног ашиглах эрхтэй байсан бол Typer 1.1-ийг хязгааргүй үнэгүй ашиглах боломжтой.



 

Хурдан шивэх

Арван хуруугаараа хурдан шивэх

Хурдан шивэх татах

Хурдан шивэж сурах


Монголоор шивэх

Казахаар шивэх

Қазақша жазып үйрену

Қазақ әріппен жазу

Тез жазу

Тез жазып үйрену 


  Сэтгэгдэл үлдээх

Sunday, February 26, 2012

Хурдан шивэх

Сар шинийн мэнд хүргэе!
Энэ жил ч сайхан амарлаа шүү. Цагаан сарын амралтаар зүгээр суухаар гээд 10 хуруугаараа хурдан шивж сурахад тус болохуйц энэхүү хөгжилтэй жижигхэн програмыг хийлээ Татаж аваад, тоглож хөгжилдөнгөө шивэх чадвараа дээшлүүлээрэй.
Програмаа товчхон танилцуулъя.
Монгол, Англи, Казах гэсэн 3 хэлтэй. Хэл тус бүр нь бичих текстийн хувьд өгүүлбэр, үгнүүдийг дараалал, үсгүүд, програмчлалын хэлнүүдийн мөр гэсэн сонголтуудтай.
Танд таалагдана. :) FB, twitter-дээ share хийгээрэй.

Татаж авах
 Шинэ хувилбар

Хэрэв таны компьютерт .Net Framework суугаагүй бол програмаа суулгахаас өмнө татаж авч суулгаарай.
DotNet Framework 3.5 татах

Санал хүсэлтээ ирүүлбэл их баярлах болно.



Хурдан шивэх


Арвах хуруугаараа хурдан шивэх


Хурдан шивэх татах


Хурдан шивэж сурах




Сэтгэгдэл үлдээх

Wednesday, October 12, 2011

Интерпретатор ба Компилятор

Програмчлалын ямар нэгэн хэл ашиглан алгоритмыг дүрсэлсний дараа транслятор буюу хөрвүүлэгч нь машины хэлэнд хөрвүүлж байж тухайн алгоритм биелдэг тухай, мөн хөрвүүлэлтийн үр дүнд биелэх файл үүсдэг талаар өмнөх бичлэгтээ дурьдсан билээ. Хөрвүүлэлтийн үр дүнд үүссэн биелэх файл(execution file)-ыг ачаалснаар програм биелж эхлэнэ. Хөрвүүлэлтийн 2 хэлбэр байдаг. Үүнд:
1. Компиляци (Compilation)
2. Интерпретаци (Interpretation)
Компиляци бол текстийг бүхлээр нь нэг удаа хөрвүүлэх хэлбэр юм. Бүрэн хөрвүүлэгдсэнийхээ дараа програм биелж эхлэнэ. Харин интерпретаци бол текстийг бүхлээр нь нэг удаа биш мөр мөрөөр нь хөрвүүлнэ. Хөрвүүлэгдсэн мөр тэр дороо биелнэ. Ө.х, хөрвүүлэлт, биелэлт хоёр зэрэгцэн явагдана. Компиляцийг компилятор (compiler), интерпретацийг интерпретатор (interpreter)

Friday, October 7, 2011

Транслятор буюу хөрвүүлэгч

Програмчлалын ямар нэгэн хэл дээр бичсэн текст машины хэл рүү хөрвүүлэгдээгүй цагт компьютерт ойлгомжгүй хэвээрээ байх бөгөөд мэдээлэл машины код(хэл)-нд хөрвөсний дараа л биелнэ. Эхний үеийн тооцоолох электрон машин дээр ажиллагсад машинаар мэдээллийг боловсруулах удирдамжаа машины кодоор буюу машины хэлээр дүрсэлж машинд оруулдаг байв. Машины кодыг тайлж уншихад төвөгтэй, хүнд бөгөөд нарийн мэдлэгтэй байх шаардлагатай. Сүүлд нь хүн машинтай харьцахад хялбар дөхөм болгох зорилгоор мэдээллийг машины кодонд хөрвүүлэгч програм зохиосон.Үүнийг Транслятор (translator – хөрвүүлэгч) гэдэг. Хүний бичсэн програмыг транслятор нь машины кодонд хувиргаж боловсруулдаг. Хөрвүүлэлтийн үр дүнд биелэх файл (execution file) үүснэ. Энэ нь програмчлалын эцсийн бүтээгдэхүүн бөгөөд 100% машины хэлээр дүрслэгдсэн, процессорын жинхэнэ биелүүлэх ёстой заавруудыг агуулсан хэлбэр юм. Трансляторыг програмчлалын систем (programming system) гэх ба түүгээр програм бичих дүрмийг програмчлалын хэл (programming language) гэж нэрлэдэг. Програмчлалын хэл нь компьютерт зориулж програм бичих үйл ажиллагааг хөнгөвчлөх зорилгоор 1950-иад оноос бий болсон. Анхны програмчлалын хэл нь Ассеблер хэл (Assembly language) юм.

Wednesday, October 5, 2011

SQL INSERT, UPDATE, DELETE үйлдлүүд

SQL INSERT INTO үйлдэл

INSERT INTO үйлдэл нь хүснэгтэнд шинэ мөр нэмдэг.

Формат
Дараах 2 хэлбэртэй байна. Үүнд:
1. INSERT INTO хүснэгтийн_нэр VALUES(утга1, утга2, утга3, ...)
2. INSERT INTO хүснэгтийн_нэр(багана1, багана2, багана3, ...)
VALUES(утга1, утга2, утга3, ...)

Эхний тохиолдолд хүснэгтийн бүх багананд утгуудыг хүснэгтийн багануудын дарааллаар харгалзан олгоно. Хоёрдох тохиолдолд зөвхөн зааж өгсөн "багана1", "багана2", ... багнауудад харгалзах "утга1", "утга2", ... утгуудыг олгоно.

Дараах Person хүснэгтэнд шинэ мөр нэмье.

Monday, September 26, 2011

Жолооны курст

Ингэж нэг төлбөрийн мөнгө олж жолооны курст ч суудаг юм байж. Жолооны үнэмлэхтэй болно гэдэг чинь машинтай болоход нилээн том алхмаар ойртлоо гэсэн үг. Энэ бол том ажил. Үгүй ядаж хэн нэгний машиныг гуйж нэг тойрч ирэх эрхтэй болно шүү дээ. Болохгүй юм ерөөс байхгүй. Гэхдээ одоогоор зөвхөн сургалтандаа сууж, дадлагажиж байгаа ч юм шиг яваад байгаа болохоос шалгалтандаа тэнцэж, жолооч болох эсэхээ ёстой бүү мэд. Өгөөмөр зан нь хөдөлвөл эзэн нь хичээгээгүй ч заяа нь хичээх биз ээ.
Зарим мэддэг ч юм шиг энгийн зүйлүүд хэлэхгүй л бол анзаарагддаггүй. Манай багшийн ийн ярьсан нь надад их таалагдлаа.
"...Зам дээрхи тусгаарлах зурвасын үүрэг гүйцэтгэгч хашаануудыг ямар учраас барьсаныг ойлгохгүй юм. Магадгүй ЗГ-ын эсвэл ИХ-ын нэг нөхрийн хамсаатан нь хашааны бизнес эрхэлдэг байлгүй. Манайхан дүрэм журмыг огт тоодоггүй дураараа дургиж, дунд чөмгөөрөө жиргэдэг сонин улсууд. Будгийн наймаа ашигтай санагдвал замын ирмэг ч юм уу, тэмдгүүдийг эсвэл уулзварыг дүрэм ёсны өнгө үү, үгүй юү хамаагүй уран зураг зурж байгаа юм шиг л будаад хаячихна.
Энэ хашааг одоо юу гэж ойлгох вэ? Хүн бусад амьтнаас оюун ухаанаараа, сэтгэж чаддагаараа ялгарна. Гэтэл манайд яажийна, хүнийг мал шиг хашаанд хорьж, хүчээр журамд оруулжийна. Эсвэл манай ард иргэд үнэхээр тийм арга хэмжээ авахаас наашгүй юм болов уу?
Эндээс хүүхдүүд ямар сургамж авах вэ? Зам хөндлөн гарахдаа явган хүний гарцаар биш "хашааны завсраар" гардаг юм байна гэсэн ойлголт авна.
...Эцэг эхчүүд хүүхдээ машины урьд талын суудал дээр авч суудаг нь маш буруу. Хүн ямар нэгэн гэнэтийн аюул тулгарахад далд ухамсраасаа өгсөн дохионы дагуу хамгийн түрүүнд өөрийгөө хамгаалах арга хэмжээ авдаг учраас хүүхдээ хамгаалах биш, харин ч бамбай болгон барьчихна. Тийм учраас хүүхдээ хойд талын суудалд суулгаж байгаарай...
... Хаана ч байхгүй нэр томъёонууд бий болжээ. "Нүхэн гарц" ч гэнэ үү? Анх нэг сэтгүүлч нэрийг нь мэддэггүй болохоор зурагтаар нүхэн гарц гэж ярьсан юм байна л даа. Тэрнээс хойш бүгд тэгж нэрлэсэн, хотын дарга хүртэл ярилцлага өгөхдөө нүхэн гарц гэсэн зогсжийлээ. "Нүхэн гарц" биш "Явган хүний гарам" гэж нэрлэдэг юм шүү дээ..."
Багшийн энэ зөвлөгөөг л хүргэхийг зорилоо. Сонссон сайн зүйлээ бусдад хүргэх нь сонсогчийн үүрэг ээ гэж.

Бие дааж програмчлал сурах

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

Програмчлалын хэл сурч, программист болох нь ямар нэгэн хэрэглээний програм дээр ажиллаж сурахаас өөр ойлголт бөгөөд суралцагчаас ихээхэн хүчин чармайлт, мэдлэг чадвар шаардна. Гэхдээ боломжгүй, хүршгүй оргил бас биш. Харин Билл Гэйтс (Microsoft) ч юм уу Ларри Пэйж эсвэл Сергей Брин (Google) шиг болох гэвэл бас өөр асуулт л даа. Магадгүй төрөлхийн техникийн онцгой ухаантай, тийм хүн болох гэж заяагдсан хүмүүс л тийм амжилтанд хүрдэг байх. Энэ нь үнэмшилтэй сонсогдож байгаа ч үнэн хэрэгтээ хүн болгон л цагаан цаас шиг төрдгийг хэн хэнгүй л мэднэ. Генээс хамаарч болдог ч Bill Gates өмгөөлөгчийн гэр бүлээс, Steve Jobs (Apple) улс төрчийн гэр бүлээс гаралтайг та бүхэн мэдэх биз ээ. Эндээс харахад хэний хэн болж төрснөөс үл хамааран IT-ийн хувьсгал хийх боломж хэн хэнд ч байгаа мэт горьдлого төрж байгаа биз? Тийм ээ, энэ бол боломжтой. Би түүнд итгэдэг.
Програмчлал сурахад зайшлгүй шаардлагатай зүйл бол математик. Хэрэв таны математикийн мэдлэг муу аваас программист болох боломж хаалттай л гэсэн үг. Учир нь програм бичихэд асуудлыг зөв томъёолж, шийдвэрлэх нь хамгийн гол асуудал юм. Дараагийн мэдэх ёстой зүйл бол мэдээж англи хэл. Монгол хэл дээр бичигдсэн програмчлал, IT-ын ном, сурах бичиг, материал маш ховор учраас англи хэл дээрхи материал ашиглахаас өөр гарцгүй. Англи хэлийг хэр зэрэг сайн мэдэх нь таны мэдлэгт төдий чинээ тус нэмэр болдог нь тодорхой. Гэвч ядаж л Гүүглээс англиар асууж чаддаг түвшний англи хэлтэй байхад програмчлалын хэлнүүдйиг судалж сурахад асуудалгүй. Хамгийн гол нь IT-ийн салбар нь бусад салбарыг бодвол сонирхолтой бас хөгжилтэй.
Бие дааж судлахад илүү их зүйл толгойдоо бат хоногшиж үлддэг ч анхан шатны мэдлэгийг багшийн тусламжтайгаар олж авах нь цаг хугацааны хувьд хэмнэлттэйгээс гадна ихээхэн үр дүнтэй байдаг. Надад тохиолдож байсан л даа. (Хэдэн долоо хоног судалж учрыг нь олоогүй зүйлийг хоёрхон цаг заалгахад мэдэж авч байсан удаа.)
Програмчлал сурах алхмуудыг дараалуулан бичвэл:
- Математик - Англи хэл - Алгоритмчлал - Доод түвшний програмчлалын хэл(Pascal, C/C++ дээр бодлого бодох) - Дээд түвшний програмчлалын хэл/технологи(Java, C#, VB, PHP, Өгөгдлийн сан удирдах системүүд: MySQL, MS SQL, Oracle г.м)
Энэ миний хувийн бодол л доо. Гэхдээ олон хүн үүнтэй санал нийлнэ. Юу хэлснээс хэн хэлсэн нь чухал байдаг боловч програмчлал сурахыг хүсэгч танд энэхүү зөвлөгөө маань хэрэг болно гэж найдаж байна.
Дараах сайтуудыг ашиглаарай
www.java2s.com
www.codeproject.com
www.roseindia.net
www.oracle.com
www.lynda.com
www.coder.mn

Saturday, September 24, 2011

SELECT, WHERE, AND, OR, ORDER BY

SQL SELECT Statement - SQL SELECT үйлдэл

SELECT үйлдэл нь Өгөгдлийн сангийн өгөгдлүүдийг сонгож харахад хэрэглэгдэнэ.
Үр дүн нь үр дүнгийн хүснэгтэнд хадгалагдах бөгөөд түүнийг result-set (Үр дүнгийн олонлог) гэж нэрлэдэг.

Формат
1. SELECT баганы_нэр(-үүд) FROM хүснэгтийн_нэр
2. SELECT * FROM хүснэгтийн_нэр

Жишээ.
SELECT LastName, FirstName FROM Student

SELECT * FROM Student
* тавьсанаар хүснэгтийн бүх бичлэгийн харуулна.

SELECT DISTINCT үйлдэл

Хүснэгтэнд зарим баганууд давхардсан (ижил) утга агуулсан байдаг. Хэрэв тийм хүснэгтээс ялгаатай утгуудыг сонгож харах шаардлагатай бол DISTINCT үйлдлийг ашигладаг. (Distinct - Ялгаатай)

Формат
SELECT DISTINCT баганы_нэр(-үүд)
FROM хүснэгтийн_нэр

WHERE түлхүүр үг

WHERE түлхүүр үг нь бичлэг(өгөгдөл)-үүдийг тодорхой нөхцөлийн дагуу шүүж харуулна.

Формат
SELECT баганы_нэр(-үүд)
FROM хүснэгтийн_нэр
WHERE нөхцөл

Жишээлбэл, "Student" Хүснэгтээс "СБ-3-7" гэсэн хаягтай сурагчдыг сонгож харъя.
SELECT * FROM Student WHERE Address = 'СБ-3-7'

Текстэн болон огноон төрлийн утгын 2 талд нь дан кавычка('') тавигдана.

Жишээ. "Student" хүснэгт нь төрсөн огноо гэсэн огноон(Datetime) төрөлтэй баганатай байг. 1992.05.05-нд төрсөн оуютнуудыг харахдаа:
SELECT * FROM Student WHERE BirthDate = '1992.05.05'

WHERE үйлдэлтэй хамт хэрэглэгддэг операторууд

Sunday, September 18, 2011

SQL-ийн синтаксис

Өгөгдлийн сангийн хүснэгтүүд - Database Tables
Өгөгдлийн сан нь ихэнхдээ нэг болон хэд хэдэн хүснэгт агуулсан байдаг. Хүснэгт бүр нь нэртэй байна (Ж, "Student", "Book", г.м). Хүснэгт нь бичлэг(мөр)-үүд агуулдаг.
Жишээ. "Student" хүснэгт

ID

LastName

FirstName

Address

1

Дорж

Бат

БЗ-3-10

2

Дэлгэр

Дулмаа

СБ-3-7

3

Баасан

Солонго

СО-4-32


Дээрхи хүснэгт нь 3 мөр(бичлэг), 4 баганатай (ID, LastName, FirstName, Address) байна.

SQL үйлдлүүд - SQL Statements
Өгөгдлийн сан дээр ямарваа үзэгдлийг SQL үйлдлүүдийн тусламжтайгаар гүйцэтгэдэг. Жишээлбэл, дээрхи "Student" хүснэгтийн бүх өгөгдлийг харах үйлдэл нь дараах байдалтай байна.
SELECT * FROM Student

- SQL нь том жижиг үсэг ялгадаггүй (Not case sensitive)
Зарим өгөгдлийн сан удирдах систем дээр SQL үйлдлийн дараа ; (цэг таслал) тавихыг шаарддаг. Ж, MySQL. SQL SERVER, MS ACCESS-т шаардлагагүй.

DML ба DDL
SQL-ийг дотор нь DML(Data Manipulation Language - Өгөгдөл удирдах хэл), DDL(Data Definition Language - Өгөгдөл тодорохойлох хэл) гэж 2 ангилж болно.

Куэринүүд (Query) болон өөрчлөх, шинэчлэх коммандууд нь DML-д орно. Үүнд:
- SELECT - Өгөгдлийн сангаас өгөгдөл сонгож харуулах
- UPDATE - Өгөгдлийн сангийн өгөгдлүүдийг өөрчилж шинэчлэх
- DELETE - Өгөгдлийн сангаас өгөгдөл устгах
- INSERT INTO - Өгөгдлийн санд шинэ өгөгдөл оруулах

DDL нь өгөгдлийн сан, өгөгдлийн сангийн хүснэгт үүсгэх болон устгах, түүнчлэн индекс(түлхүүр) тодорхойлох, хүснэгтүүдийн хооронд холбоос үүсгэх
зэргээс бүрддэг. Хамгийн их хэрэглэгддэг DDL-үүд:
- CREATE DATABASE - шинэ өгөгдлийн сан үүсгэх
- ALTER DATABASE - Үүсгэгдсэн өгөгдлийн санг өөрчилж засах
- CREATE TABLE - Шинэ хүснэгт үүсгэх
- ALTER TABLE - Үүсгэгдсэн хүснэгтийг өөрчилж засах
- DROP TABLE - Хүснэгт устгах
- CREATE INDEX - Индекс үүсгэх
- DROP INDEX - Индекс устгах