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 - Индекс устгах

Thursday, September 8, 2011

SQL(Structured Query Language)-ийн тухай


SQL гэж юу вэ?
- SQL - Structured Query Language(Structured - Бүтэцлэгдсэн, Query - Асуулт, Language - Хэл)
- SQL нь өгөгдлийн сантай (Database) харьцдаг, мөн түүнийг удирддаг.
- SQL нь ANSI(American National Standards Institute - Америкийн Үндэсний Стандартын Хүрээлэн) стандарттай

SQL-ийн боломжууд
- Куери биелүүлэх (Execute queries)
- Өгөгдлийн сангийн өгөгдлүүдийг харах (Retrieve data)
- Өгөгдлийн санд өгөгдөл оруулах (Insert records)
- Өгөгдлийн сангийн өгөгдлүүдийг өөрчилж, шинэчлэх (Update records)
- Өгөгдлийн сангаас өгөгдөл устгах (Delete records)
- Шинэ өгөгдлийн сан үүсгэх (Create new databases)
- Өгөгдлийн сан дотор шинэ Хүснэгт үүсгэх (Create new tables)
- Өгөгдлийн сан дотор Stored Procedure үүсгэх (Create Stored Procedures)
- Өгөгдлийн сан дотор View үүсгэх (Create Views)
- Хүснэгт, Процедур болон Виеунүүдэд тусгай эрх олгох. (Set permissions)

Дараа дараагийн бичлэгээр SQL-ийг ашиглах, MySQL, SQL Server, Oracle зэрэг өгөгдлийн сан удирдах систем дээр ажиллах, өгөгдлийг удирдах талаар хүргэх болно. SQL нь хэдийгээр ANSI стандарттай ч олон ялгаатай хувилбаруудтай. Гэхдээ үндсэн коммандууд нь (Ж: SELECT, UPDATE, DELETE, INSERT, WHERE) хоорондоо адилхан болон их төсөөтэй байдаг.

Sunday, May 22, 2011

Firefox 4 болон Google Chrome дээр ажилладаг Internet Download Manager 6.05

Блогтоо салхи оруулалгүй уджээ. Яг 2 сар болсон байна шүү. Завгүй болоод л тэр үү эсвэл блог хөтлөх сонирхол буурсан ч юм болов уу? За тэр ч яахав.
Дээр Crack-тай Internet Download Manager 5.19 тавьж өгч байсан билээ. IDM-ийн 5 буюу түүнээс өмнөх хувилбарууд нь Firefox 4, Google Chrome дээр ажилладаггүй юм. IDM-с болж мяа Web Browser хэрэглэлтэй нь биш лаг гоё веб хөтөчдөө тохирдог Crack-тай IDM 6.05 татаж авч хэрэглээрэй.
Заавар
Дараах файлуудыг татаж аваарай.
1. IDM 6.05
2. IDM Patch
2. Key Registry File
Дээрхи 3 файлыг татаж авсны дараа
1. IDM 6.05-ыг суулгаарай.
2. C:\Program Files\Internet Download Manager Folder дотор IDM.EXE(2-р файл)-г дарж хуулаарай (Replace).
3. RegKey.REG файлыг уншуулаарай.
4. Компьютерээ Restart.
5. Гүйцээ.

Mozilla Firefox 4.0-ыг эндээс , Google Chrome-ийг эндээс , Internet Explorer 9-ийг эндээс татаж аваарай.

Энэ зүгээр л заль.
Үнэгүй IDM, хугацаагүй IDM, IDM-ээр татах, хурдан татах, үнэгүй татах, Youtube-ээс татах, видео, бичлэг татах


Monday, March 21, 2011

Наурыз

Та бүхэнд "Наурызын баяр"-ын халуун мэнд хүргэе!
МУИС-ийн сэтгүүлзүйн тэнхмийн эрхлэгч, шинжлэх ухааны доктор, профессор, соёлын гавъяат зүтгэлтэн М.Зулькафиль гуайтай сурвалжлагчийн хийсэн ярилцлагыг хуулж тавилаа. Наурызын талаар илүү ихийг мэдэхийг хүсвэл үргэлжлэл дээр дарж уншина уу!

...
-Маргааш ажлын өдөр. Та баяраа яаж тэмдэглэх вэ?
-Маргааш ажиллахгүй.
-Хөдөлмөрийн хууль зөрчихөөс айхгүй байна уу?
-Хөдөлмөрийн хуульд жил бүрийн гуравдугаар сарын 22-ны өдөр Баян-өлгийн хөдөлмөрчдийг амарч, энэ баярынхаа өдрийн ажлыг өөр нэг өдөр нөхөн хийхийг заасан байдаг юм. Тэгэхээр би хууль ёсны амрах өдрөө баяраа тэмдэглэнэ.
-Наурызын баярыг Казахстанд хэр өргөн тэмдэглэдэг вэ?
-Казахстанд өргөн тэмдэглэнэ. Зарим ажлын өдрийг амралтын өдөрт шилжүүлж байгаад Наурыз тэмдэглэх өдөр гаргаж аваад 2-3 өдөр тэмдэглэнэ. Тийм шийдвэрийг Засгийн газар нь гаргачихдаг юм билээ.
-Наурызын баяр бол казахын ард түмний баяр гэж ойлголоо?
-Ганцхан казахын ард түмний баяр гэж ойлговол явцуу болно. Лалын шашинтай дорно дахины ойрхи дорнодын олон орон өргөн тэмдэглэдэг юм.
-Тухайлбал Иран, Ирак тэмдэглэх үү?
-Тэмдэглэнэ. Наурыз гэдэг чинь иран үг юм шүү дээ. Лалын шашинтай олонхи улс тэмдэглэдэг юм.
-Наурызын баяр цагаан сар уу, эсвэл шашны баяр уу?
-Наурыз бол шашны баяр биш ээ. Харин Цагаан сартай төсөөтэй. өвлийг өнтэй давж, урин хавартай учирч золгосны баяр. Хаврын баяр, нарны баяр гэж нэрлэдэг. Нарны гэдэг нь шинийн нэгний буюу гуравдугаар сарын 22-ны өглөөгүүр бүх хүн анхны нар харж, нараа хүндэтгэж өөрсдөө сэтгэлийн таашаал авдаг юм. Наранд сүүгээ өргөнө.
-Наурызын баярыг тэмдэглэх нь ямар ач холбогдолтой юм бэ?
-Энэ баяр хоёр чухал ач холбогдолтой юм. Нэгдүгээрт, хүүхэд залуусын хүмүүжилд чухал нөлөөтэй. Залуучууд энэ өдөр өндөр настандаа золгож тэднийхээ сургаалийг сонсоно. Шинэ онд хэрхэн ажиллаж, амьдрахаа ахмадуудаараа заалгана. Ингэснээрээ ахмадуудаа хүндэтгэн хайрлаж, тэднийхээ үг, сургаалийг ёсчлон хэрэгжүүлэх өндөр хариуцлага залууст олгогддог.
Хоёрдугаарт, байгаль, экологийн ач холбогдолтой баяр. Шинийн нэгнийг угтаж хүн бүр орчноо төдийгүй ахуйн ариун цэврээ дээд зэргээр сахина. Хир буртагтай, хог новштой юу ч хаана ч байж болохгүй. Эрчүүд шинийн нэгний өглөө хүрз, зээтүүгээ бариад аль нэг булаг шандад хүрч очин эхийг нь тордож ус гаргаад тэр цэвэр усаа ууна. Бас хүн бүр нэгээс доошгүй мод суулгах учиртай. Ер нь нэг ийм зарчим казахуудад байдаг юм. Хэрвээ чи нэг мод тайрвал 10 мод тарь гэж. Мод тарих боломжгүй бол гудамж талбай цэвэрлэнэ. Казахын ард түмэн байгаль орчноо хайрлах унаган ухаантай хүмүүс. Миний багад эцэг, эх маань “Чи байгаль дэлхийгээс сонгино авч болно. Харин ганц ч цэцэг навч тасалж болохгүй гэдэг. Байгаль орчин гэдэг хүмүүн биднийг тэжээдэг эх булаг гэдэг ойлголтыг бидэнд хар багаас олгосон. Тэр л хүмүүжлээрээ казахууд байгальдаа элэгтэй байдаг юм.
-Наурыз цагаан сар гэсэн үг юмаа даа?
-Цагаан сартай төсөөтэй. Ах, дүү хамаатан садандаа золгоно. Хэн нэг хүнтэй түнжин хагарсан бол эвлэрнэ. өр ширээ дарна. Хир буртаггүй эсвэл шинэ хувцас өмсөнө гээд цагаан сартай адил төсөөтэй юм их бий.
-Тэгвэл цагаан сараас ялгаатай нь юу байна вэ?
-Монголчууд цагаан сараар бууз, банш иддэг бол казахууд шөл уудаг. Баярын ширээнд мах, цагаан идээ, чихэр жимс гээд долоогоос доошгүй нэр төрлийн хоол байх учиртай. Түүний нэг нь шөл. Сонгино, давс зэрэг долоон төрлийн амтлагчтай, махны шөл ууна. Энэ шөлийг хүн бүр ууна. Баяраар хэчнээн олон айлд шөл уувал төчнөөн сайн байна гэж үздэг юм. Ер нь 40-өөс доошгүй айлд орж шөл уухыг эрхэмлэдэг. Тэгэхдээ 40 аяга шөл ууна гэж юу байхав дээ. Амсаад л явна. -Яахаараа ингэж шөл уудаг байна аа?
-Ийм нэг домог бий. Казахын олон овог омгууд эвдрэлцжээ. Тэгээд омгийн ахлагчийнд цугларч нэг том ширмэн тогоо мах чанаад омгийнхноо цуглуулж махаа өгч, шөлийг нь уулгажээ. Дараа нь “За та нар өнөөдөр нэг тогооноос хооллолоо. Нэг санаатай анд нөхөд болцгоолоо. Одоо та нар эвлэрч нөхөд бол” гэснээр асуудал шийдэгджээ. Гал дээр хийсэн шөлөнд дуртай. Яагаад гэвэл галыг сайн сайхны бэлгэдэл гэж үздэг, бас гал дээр хийсэн шөл амттай. Гал асааж түүнийгээ тойрч үсэрч, харайна. Галаар ариусдаг гэсэн бэлгэдэлтэй.
-Уучлаарай, цагаан сараас Наурызын баяр ямар ялгаатай вэ гэсэн миний асуултад та дутуу хариулах шиг санагдлаа?
-Юуны өмнө золголт нь өөр. Хоёр эрэгтэй хүн өөд өөдөөсөө харж зогсоод гараа атгалцаж баруун, зүүн хоёр талаараа цээжээрээ нийлдэг. Цээжээ нийлүүлдэг нь цээж бол биеийн гол хэсэг, гар бол хөдөлмөрлөх эрхтэн гэж хүндэтгэснийх. Хоёр эмэгтэй тэврэлдэж золгоно. Эрэгтэй, эмэгтэй хоёр бол хоёр гараа атгалцаж золгоно. Архи огт уухгүй. Ширээн дээрээ ч архи тавихгүй. Мөнгө барьж золгохгүй. Бэлэг сэлт өгөхгүй. Харин хүүхдэд цагаан идээ, чихэр өгнө. Одоо бол юу ч өгдөг болсон. Гэр бүл болоогүй хосууд баяраар хайраа илчилсэн алчуур, сам зэргийг өгөлцөж авалцдаг. Сэтгэл зүрхний тийм нандин бэлэг. Одоо юм элбэг болжээ. Yнэтэй зүйл өгөхийг байг гэх¬гүй дээ. Ши¬нийн нэгний өдөр цүү хаяна, морь урал¬дуул¬на, эмэгтэй нь эрэг¬тэйгээ хөөж тог¬лоно. Yн¬дэсний тог¬лоомоороо наадна.
-Одоо баяртай хол¬боо¬гүй ч олон ун¬шигч¬дад анхаа¬ра㬬дах нэг асуулт асууя. Баян-өл¬гийнхөн харь¬цангуй бага өв¬чилж, өндөр на¬сал¬даг юм биш үү?
-Тийм ээ. Уулын¬хан урт на¬салдаг байж болно. Судал¬гаа¬наас үзвэл Баян-өлгийд зүрх су¬дас, элэг цөсний өвчин харьцангуй бага гардаг гэнэ лээ. Гэтэл бусад монголчуудад дээрх өвчлөл хамгийн их байдаг. өндөр насалж, бага өвчилдөг нь ид, шидтэй нууц юм биш ээ. Хамгийн энгийн, жирийн юманд байдаг гэж би боддог. Тухайлбал махыг маш сайн чанана. Хоёр цагаас доошгүй чанана шүү. Сайн чанасан мах иддэгийнх ч юм уу ходоодны өвчлөл бас бага байдаг юм. Бас нэг чухал юм бол адууны мах их хэрэглэдэг нь урт наслахад хэрэг болдог бололтой. Адууны мах хүний биеийн дархлааг сайжруулдаг. Адууны махаа борцлоно. Мах чанаад гурилаа хавтгай хавтгайгаар нь том тасалж шөлөнд чанаад мах гурилаа хольж идэхийг “Бесбармак” гэдэг юм. Таван хуруу гэсэн үг л дээ. Урт насалж, бага өвчлөхөд шууд нөлөөлөх нэг зүйл бий. Тэр бол ариун цэвэр. Казахууд ариун цэврийг дээд зэргээр са¬хина. Хооллохын өмнө хойно гараа заавал угаана. Гар арч¬даг хоёр алчуур байна. Нэгээр нь хооллочихоод тосоо ар¬чиж, нөгөөгөөр нь хооллосны дараа гараа угаачихаад усаа арчина. Усны, тосны гэсэн хоёр алчууртай. Нас ахи¬сан хөгшчүүл бол шингэц сайтай хоол тусдаа хийж иднэ.
-Адууны махаар шөлтэй хоол хийж иддэг үү?
-Адууны махаар шөлтэй хоол хийх нь ховор. Сүүлийн үед будаатай шөлтэй, адууны махтай хоол хийдэг болсон байна лээ.
-Би нэг зүйлийг гайхдаг юм. Цөөхөн болоод тэгдэг үү, эсвэл ерөөсөө хүмүүжил сайтайнх уу, казах хүүхэд хэрэг түвэгт орооцолдлоо гэж сонсогддоггүй?
-Ётой үнэн. Одоо траншейнд казах хүүхэд нэг ч байхгүй. Аймаг бүрт тэнэмэл хүүхэд байгаа. Харин Баян-өлгий аймагт бол байхгүй. Яагаад гэвэл казахууд хүүхдийн хүмүүжилд онцгой анхаарна. Хүүхэд яагаад тэнэдэг вэ гэвэл тэдэнд хайр дутсаных. Yр хүүхдээ хайраар дутаахгүй юм бол тэнэмэл хүүхэд гэж байхгүйн гэрч нь өлгийчүүд болж байна. Хүүхэд зэлрэхийн нэг шалтгаан нь гэр бүл салалт. Тогтворгүй гэр бүлд өсч байгаа хүүхдийн хүмүүжил төлөвшихгүй.
Тогтворгүй гэдэг чинь эр, эм хоёр хоорондоо таарамжгүй, хэрэлдэж байдаг л гэсэн үг. Гэр бүл салалт сарнилтаар улсын хэмжээнд Баян-өлгийнхөн хамгийн бага байдаг юм шүү дээ. Гэр бүл хэчнээн тогтвортой байвал тэр айлын ажил, амьдрал төчнөөн сайн байна. Yр хүүхэд нь хүмүүжилтэй байдаг. Казахууд гэр бүлдээ үнэнч байх хатуу зарчимтай.
-Бас нэг зүйл асууя. Бэлгийн замын өвчин өлгийд хамгийн бага гардаг гэж сонссон. Yнэн үү?
-Yнэн шүү. Гэр бүлдээ үнэнч, салж сарнихгүй нөхцөлд бэлгийн замын өвчин гарахгүй. Хэрвээ гэр бүлийн зөрчил гарвал өндөр настнуудын цуглаанаар хатуу жавтий хүртээнэ. Лалын шашинтнууд өдөрт таван удаа уншлага хийдэг. Уншлага хийх болгондоо гар, хөл, бэлэг эрхтнээ угаана. Ариун цэврийг ингэж сахиж байхад өвчин багасахаас яахав.
-Наурызын баярыг хэдийнээс эхэлж тэмдэглэсэн юм бэ?
-1921 оноос өмнө цагаан сар шиг л тэмдэглэж байсан юм билээ. 1930-аад оны сүүл рүү алдаг оног тэмдэглэсэн. Тэгээд 1940 оноос хойш тасралтгүй тэмлэглэв. 1990 оноос хойш өргөн тэмдэглэх болсон.

Thursday, March 3, 2011

Оруулан эрэмбэлэх арга (Insertion Sort)

Энэ аргыг багтаан эрэмбэлэх арга, заримдаа шургуулан эрэмбэлэх арга ч гэж нэрлэдэг. Оруулан эрэмбэлэх арга нь сонгон эрэмбэлэх аргатай нилээн төсөөтэй бөгөөд үндсэн үйлдэл нь эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр шинэ элемент оруулах явдал юм. Өөрөөр хэлбэл эрэмбэлэгдсэн хэсгийн шинэ элементээс их элементүүдийг 1 байрлал баруун тийш шилжүүлэх байдлаар орвол зохих байрлалыг чөлөөлж өгдөг.
Жишээ. N элементтэй бүхэл тоон массивыг өсөхөөр эрмбэлэе.

1. Си хэл
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, a[100], i, j, temp, k;
printf(" n = ");
scanf("%d", &n);
for(i=0; i<n; i++) {
printf(" a[%d] = ", i);
scanf("%d", &a[i]);
}
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(a[i] > a[j]) {
temp = a[j];
for(k=j; k>i; k--)
a[k] = a[k-1];
a[i] = temp;
}
printf(" Khariu:");
for(i=0; i<n; i++)
printf(" %d", a[i]);
system("pause");
}

2. Паскаль хэл
Program InsertionSort;
var
n, i, j, temp, k: integer;
a: array[1..100] of integer;
begin
Write(' n = ');
Read(n);
for i:=1 to n do begin
Write(' a[',i,'] = ');
Read(a[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i] > a[j] then begin
temp := a[j];
for k:=j downto i+1 do a[k] := a[k-1];
a[i] := temp;
end;
Write(' Khariu:');
for i:=1 to n do
Write(' ', a[i]);
end.

Friday, February 25, 2011

Drupal CMS

Drupal нь PHP дээр бичигдсэн, GNU General Public License(Чөлөөт програм хангамжийн лиценз)-ээр тараагддаг, үнэгүй, нээлттэй эх бүхий АУС (Агуулгын Удирдлагын Систем - Content Management System) юм. Одоо Drupal дээр хийгдсэн хэдэн зуун мянган хувь хүн, байгууллага, эрдэм шинжилгээ, бизнес ба хамтын ажиллагаа, улс төр, засгийн газрын вэб сайтууд ажиллаж байгаа. Жишээлбэл, АНУ-ын Цагаан Ордон(Whitehouse)-ы сайт http://www.whitehouse.gov, Их Вританий засгийн газрын сайт болох http://data.gov.uk г.м.
Drupal нь Drupal core буюу цөм, хэрэглэгчийн бүртгэлийн мэдээлэл (бүртгэх, засах), цэсний удирдлага, RSS, хуудасны бүтэц болон системийн админы хэсэг зэргийг агуулна.
Бүх платформ дээр ажиллах боломжтой. MySQL, PostgreSQL, SQLite (Microsoft SQL Server) зэрэг баазын сервэрүүд, Apache, IIS веб сервэрүүд дэмжинэ.
Анх Dries Buytaert бичсэн (message board буюу internet forum-аар хөгжүүлсэн) бөгөөд 2001 оноос нээлттэй эхийн төсөл болсон.
Drupal нь Голландын Dutch - дусал гэсэн үгнээс гаралтай.
Drupal-ын хөгжүүлэлтэнд олон хүн тусалснаар түргэн хөгжиж, улам боловсронгуй болсоор байна. 2011 оны 1-р сарын 5-нд Drupal 7.0 хувилбар гарсан.
Цаашдаа сурсан юмаа тавьж байх болно. Санал бодлоо хуваалцаарай.

Wednesday, February 23, 2011

Олон Yahoo! Messenger зэрэг ажиллуулах

Yahoo хэрэглэдэг ихэнх хүмүүс 2-оос доошгүй ID-тай байдаг. Учир нь Public & Private эсвэл Family & Private эсвэл тодорхой Permission-тэй, мөн пракцтай холбоотой байж болох юм. Үүнтэй холбоотой заримдаа хэд хэдэн Messenger-ийг зэрэг ажиллуулах шаардлага гарна. Yahoo! Messenger 1 компьютерт default-оороо ганц ширхэг л нээгдэнэ. Олон нээгддэг болгох маш амархан. Уг нь мессенжер ашигладаг хүн болгон л үүнийг чаддаг байх гэж боддог байлаа. Гэвч үгүй юм байна (Тийм болгоод өгөөч гэсэн request нэг биш удаа ирлээ :)). Олон юм нуршилгүй яаж гэдгийг тайлбарлъя.
1. Start -> All Programs -> Accessories -> Run эсвэл Windows + R.
2. Гарч ирсэн Run цонхны Open талбарт regedit гэж бичээд OK.
3. HKEY_CURRENT_USER -> Software -> yahoo -> pager -> Test.
4. Test дээр баруун клик -> New DWORD (...) Value -> Нэрийг нь Plural гэж өгнө.
5. Plural дээр Right Click (хулганы барууны точийг нь дар) -> Modify -> Value Data дээрхи утгыг 1 болгоно. (Default утга нь 0 байдаг.) Ингээд боллоо.
Энэ арай ядаргаатай санагдаж байна уу? Тэгвэл энэ register файлыг татаж аваад л уншуулчих. (Цаад үйлдэл нь яг адилхан.)


Thursday, February 17, 2011

Бөмбөглөн эрэмбэлэх арга (Bubble Sort)

Энэ аргыг хөөсрүүлэн эрэмбэлэх арга ч гэж нэрлэдэг. Массивын элементүүдийг эхнээс нь зэрэгцээ байгаа хоёр элементийг жишиж өмнөх буюу индексээрээ бага элемент нь хойно байгаа буюу индексээрээ их элементээс их байвал (бууруухаар эрэмбэлэх тохиолдолд бага байвал) энэ хоёр элемэнтийн байрыг солих замаар массивын төгсгөл хүртэл үргэлжлүүлнэ. Тухайлбал, a[i] > a[i+1] бол энэ хоёрын байрыг солино гэсэн үг. Эсрэг тохиолдолд хэвээр үлдээнэ. Ингэсэнээр хамгийн их элемент массивын хамгийн сүүлд байрлана. Дараа нь үлдсэн n-1 элементэд мөн энэ үйлдлийг давтаж, нэг элемент үлдтэл (n==1 болтол) хийнэ.
Жишээ. N элементтэй бодит тоон массивыг өсөхөөр эрэмбэлэ.
1. Си хэл
#include <stdio.h>
#include <stdlib.h>
int main() {
float a[100], temp;
int n, i, j;
printf(" n = ");
scanf("%d", &n);
for(i=0; i<n; i++) {
printf(" a[%d] = ", i);
scanf("%f", &a[i]);
}
for(i=n-1; i>0; i--)
for(j=0; j<i; j++)
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
printf("\nKhariu:");
for(i=0; i<n; i++)
printf(" %.2f", a[i]);
system("pause");
}

2. Паскаль хэл
Program Bubble_Sort;
var
a:array[1..100] of real;
temp: real;
n, i, j: integer;
begin
Write(' n = ');
Read(n);
for i:=1 to n do begin
write(' a[',i,'] = ');
read(a[i]);
end;for i:=n downto 2 do
for j:=1 to i-1 do
if a[j] > a[j+1] then begin
temp := a[j];
a[j] := a[j+1];
a[j+1] := temp;
end;

Write('Khariu:');
for i:=1 to n do
Write(' ', a[i]:0:2);
end.

Tuesday, February 15, 2011

Татцуудаа шинэчиллээ

Блог дээрхи хугацаа нь дууссан, сервэр нь унасан, гацсан татцуудаа (install г.м) 4shared.com руу шилжүүллээ. 4shared.com сайхан share шүү. 10 GB фрий орон зай эзэмдэнэ гэж бод доо. Татахад ч гэсэн хурдан, урамтай. 4shared.com-ыг ашиглаж байгаарай гэж зөвлөе. Ямар нэгэн юм татах хэрэг гарвал хайж туршиж үз. Зөндөө олноороо олдоно.
EngMon тольдоо бага сага өөрчлөлт оруулсан учраас та өмнө татаж авч хэрэглэж байсан бол ахиад татаж аваарай (Гарт утасны толь бичиг).

Saturday, February 12, 2011

Сонгон эрэмбэлэх арга (Selection Sort)

Сонгон эрэмбэлэх арга нь массивын хамгийн бага элементийг олж хамгийн эхний элементтэй сольж, дараа нь удаах хамгийн бага элементийг олж хоёрдох элементтэй солих байдлаар массивын бүх элмент эрэмбэлэгдэж дуустал гүйцэтгэгдэх арга юм.
Хэрэв буурахаар эрэмбэлэх бол хамгийн их элементийг сонгож солино гэсэн үг. Энэ арга нь маш амархан, эсрэгээрээ хурдны хувьд тийм ч сайн арга биш. Ямар ч төрлийн бага өгөгдөлтэй массивын хувьд бол Ок арга.
Жишээ. N элементтэй бүхэл тоон массивыг өсөхөөр эрэмбэлэе.
1. Си хэл
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[100], n, i, j, min, temp;
//Massivyn elementiin too
printf(" n = ");
scanf("%d", &n);
//Massivyn elementuudiig oruulakh
for(i=0; i<n; i++) {
printf(" a[%d] = ", i);
scanf("%d", &a[i]);
}
for(i=0; i<n-1; i++) {
//Khamgiin baga elementiin dugaar buyu indexiig min-d hadgalya
min = i;
for(j=i+1; j<n; j++)
if(a[min] > a[j])
min = j;
//Khamgiin baga elementiig erembelegdeegui khesgiin khamgiin ehnii elementtei bairyg ni solino
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
printf("Khariu:");
for(i=0; i<n; i++)
printf(" %d", a[i]);
system("pause");
}

2. Паскаль хэл
Program SelectionSort; Var a: array[1..100] of integer;
n, i, j, min, temp: integer; Begin
{Massivyn elementiin too}
Write(' n = ');
Read(n);
{Massivyn elementuudiig oruulakh}
for i:=1 to n do begin
Write(' a[',i,'] = ');
Read(a[i]);
end;
for i:=1 to n-1 do begin
{Khamgiin baga elementiin dugaar buyu indexiig min-d khadgalya}
min := i;
for j:=i+1 to n do if(a[min] > a[j]) then min := j;
{Khamgiin baga elementiig erembelegdeegui khesgiin khamgiin ekhnii elementtei bairyg ni solino}
temp := a[i];
a[i] := a[min];
a[min] := temp; end; Write('Khariu:');
for i:=1 to n do Write(' ', a[i]);
End.

Saturday, January 29, 2011

BitTorrent ашиглаж хүссэнээ тат

Кино, програм гэх мэт том хэмжээний файлууд ихэнхдээ нэтээс олддоггүй эсвэл үнэтэй байдаг. Харин BitTorrent-оор юу л бол юуг зүгээр л татчина.
BitTorrent гэж юу вэ?
Энгийнээр бусад компьютерүүдээс идэвхтэй байгаа файлуудыг татдаг үнэгүй програм гэж ойлгож болно. Одоо дэлхий дээр 160-аад сая клиент компьютерт суулгагдан ажиллаж байна. Энэ бүх компьютер дээр байгаа файлуудыг татах боломжтой гэсэн үг. Өөрөөр хэлбэл, BitTorrent нь peer-to-peer протокол буюу download, upload хоёр зэрэг хийгдэнэ. Гэхдээ санаа зоволтгүй, таны компьютерт байгаа бүх файлыг татаж авах боломжгүй л дээ. Зөвхөн Torrent-оор татсаныг л таны торрент идэвхтэй ажиллаж байгаа үед бусад хэрэглэгчид татаж болно.
Windows, Mac, Linux үйлдлийн системүүдийн аль аль нь дээр ажиллана.
Яаж ажиллуулах вэ?
1. БитТоррентийг эндээс үнэгүй татан авч суулгаарай.
2. torrentz.com сайт руу ороорой.
3. Хайх талбарт нь татмаар байгаа юмныхаа нэрийг нь бичээрэй.
4. Хамгийн дээд талд нь Sponsored Links гэсэн дөрвөн холбоос гарч ирнэ, энэ биш шүү. Доод талд нь байгаа холбосуудаас хэрэгтэй нь сонгоорой. Холбоосуудын ард ямар төрлийн файл гэдэг нь харагдана. Жишээлбэл, movies divx xvid video гэх мэт.
5. Ахиад олон холбоостой хуудас гарч ирнэ. Эндээс аль нэгийг нь сонгоорой. Жишээлбэл, torrentdownloads.net-ийг. Гарч ирсэн хуудасны шар номын зурагтай DOWNLOAD TORRENT дээр нь дарж, TORRENT файлыг татаж авна. Уг файлыг BitTorrent програмаар нээнэ. Тэгээд Ок. Татсан файл Downloads фолдерт хадгалагдана.
Ингээд хүссэн юмаа татааад байгаарай, амжилт!

Thursday, January 27, 2011

Бөмбөлөг нураагч буюу Bubble Breaker

Гар утасны аппликэйшн, тоглоом нтр хийх үнэн урамтай шүү. Ялангуяа тоглоом хийхдээ тооцоолол их шаардлагатай болохоор залхахын аргагүй юм.
Гэнэт санаанд орж ирээд энэ тоглоомыг хийлээ. Татаж авбал аваарай. Тийм ч лаг гоё тоглоом биш ч гэсэн залхмааргүй. Угаасаа үнэгүй өгч байгаа юм чинь хэн хэнд ч алдах юм байхгүй :D.
Нэрийг нь Бөмбөлөг Нураагч гэдэг юм. Windows үйлдлийн системтэй smart phone болгонд байдаг. Симбиантайд нь байдаг эсэхийг нь сайн мэдэхгүй байна. Магадгүй байдаг л байх. Би лав харж байгаагүй.
Тоглоомын талаар жаахан тайлбар хийе.
Үндсэн санаа нь ижил өнгийн бөмбөлөгүүдийг нурааж оноо авах. Оноог нурж буй бөмбөлөгийн тоо * (нурж буй бөмбөлөгийн тоо - 1) гэсэн дүрмээр өгнө. Энэ нь аль болох олон бөмбөлөгийг нэг дор нураавал бага багаар нурааснаас хамаагүй илүү оноо авна гэсэн үг.
Тоглоом гурван түвшинтэй.
1. Энгий
2. Үргэлжилсэн
3. ++ Үргэлжилсэн.

Бүгдийг нь тайлбарлаад ч яахав, тоглож байж үзнэ биз. Тоглоомын түвшинг Тохиргоо руу нь орж тохируулна. Топ оноо нь хадгалагддаг ба Топ руу орж харж болно.

Цаашдаа олон тоглоом хийнэ дээ!

Жич: Бие даалт ч юм уу курсын ажилдаа соорсыг нь авч ашиглаж болно. Тайлан бичиж өгнө. Гэхдээ үнэгүй биш :D.

Tuesday, January 25, 2011

East шатаж байдаг байна ш дээ

Цонхоор харсан чинь манай ганц теннис тоглодог East төв маань шатаж байдаг байна ш дээ. Хайран...
Гал унтраагчид гэж сто сонин хүмүүс юм даа. Шатаж үнс болтол нь хараад л, хүлээгээд л байх нь байна. 2 цагийн турш шатлаа. Одоо бүр аймаар болчжээ.

Thursday, January 20, 2011

IDM буюу Internet Download Manager-ийг хугацаагүй ашиглах

Интернэтэд байгаа видео, дуу, ер нь юу л бол юуг татдаг (Ялангуяа Youtube-ээс бичлэг татах) IDM нь нэг сар л үнэгүй ашиглагддагийг та бүхэн мэднэ. Дахиж ПиСи-гээс форматлахаас нааш ашиглах боломжгүй гэдгийг ч та мэдэжуугаа. Гэвч хугацаагүй, үнэгүй ашиглах боломж байдгийг ч та гадарлана. Тийм нэг аргатай танилцана уу?
1. Эндээс IDM 5.19-ийг татаж авч суулгаарай.
2. IDM Patch 5.19-ийг татаж аваарай.
(Хэрэв IDM ачаалагдсан байвал Exit хийгээрэй.)
3. IDM.v5.12.Patch.RAR-ыг задлаарай.
4. Patch.EXE-г ажиллуулаарай. Дараах цонх гарч ирнэ.

Path товчин дээр дараарай.
5. IDMan гэсэн EXE файл үүссэн байна. Энийг Internet Download Manager-ийн суусан газар буюу C:\Program Files\Internet Download Manager хавтаст дарж хуулаарай (Copy -> Paste -> Copy and Replace).
6. Дуусав.

Friday, January 14, 2011

Гар утсаараа Yahoo нууц үг хулгайлах

Бас нэг хууран мэхэлж, бусдын Yahoo нууц үгийг хулгайлах хорлон арга толилуулъя.
1. Энэ Yahoo! Messenger-ийг дуурайлгаж хийсэн Mobile Application(YAHOO_MESSENGER.JAR)-ийг татаж аваад гар утсандаа хуулаарай.
2. Ok дарж Install хийгээрэй.



















3. Хажууд чинь байгаа хүнд "Май мессенжерт ор" гэж утсаа өгөөрэй :D.
4. ID, нууц үг нь таны утсанд хадгалагдаж үлдсэн байна.
5. Хадгалагдсан АйДи, нууц үгнүүдийг харахдаа Sign in automatically-ийг check-лээд Sign in коммандыг сонгоно.
6. Passwords гэсэн цонх нээгдэнэ.
7. Password гэсэн талбарт khairosh гэж бичээд Ok коммандыг сонгоно. Хэрэв устгамаар байгаа бол энэ талбарт num гэж бичээд Ок (Бүгдийг нь устгана).
Ингээд л болоо. Хадгалагдсан АйДи, нууц үгнүүд жагсаж харагдана.

Monday, January 10, 2011

Kaspersky-ийг зүгээр л үнэгүй ашигла

Kaspersky ашигладаггүй хүн ховор байх. Мэддэггүй хүн байхгүй байх. Харин лицензийг нь худалдаж авдаг хүн бүр байхгүй байх. Касперский миний хувьд лав хамгийн сайн хамгаалагч, би түүнд л итгэдэг. Гэвч би хэзээ ч лицензийг нь худалдаж авч байгаагүй. Харин триалыг нь Ressetter-ийн тусламжтайгаар төгөсгөлгүй удаа хэрэглэгдэг. Энэ аргыг танд ч гэсэн зааж өгье.

1. Kaspersky-ийг энд дарж татаж авна уу. Зөвхөн энэ version-д нь тохирно.
2. Resetter-ийг эндээс аваарай. Энэ RAR-ыг задалвал хэд хэдэн Ressetter байгаа ба Ressetter 2.3.exe гэснийг нь ашиглана.
3. Сарын эрх нь дууссаны дараа Kaspersky-ийн Icon дээр баруун клик -> Settings -> Options. Enable Self-Defence-ийг check-гүй болгоод Ok.
Яг энэ зурагт байгаа шиг тохируулаарай















4. Ressetter 2.3.exe-г уншуулж триал лицензийг нь татаад л болоо.
Ингээд Kaspersky-ийг үнэгүй хэрэглээд бай хэрэглээд бай.

Бусад хувилбарын resetter-үүд: Kaspersky 10 Resetter, KIS 2010 Resetter

Friday, January 7, 2011

C/C++ бүтэц (struct), массив төрлийн утга буцаах функц

C/C++ хэлэнд байдаг бүтэц нь Паскаль хэлний бичлэг(Record)-тэй яг ижил утгатай ойлголт учраас дахин тайлбарлах илүү байх (Паскаль хэлний бичлэгийн тухай эндээс уншаарай). C/C++-д бүтцийг яаж тодорхойлж, програмдаа яаж ашиглах талаар товчхон бичье. Бүтцийг struct нөөц үгийн тусламжтайгаар тодорхойлдог.
Формат нь:
struct Бүтцийн_нэр {
талбар1;
талбар2;
...
талбарN;
};
Бүтцийн_нэр: бүтцийн нэр.
талбар1, талбар2, ..., талбарN: талбарууд.

Талбарууд нь стандарт болон хэрэглэгчийн тодорхойлсон төрөл, мөн бүтэц төрөлтэй байж болно.
Жишээлбэл,
struct Display {
string companyName;
float width, height, weight;
};
Бүтэц төрлийн хувьсагчийг энгийн хувьсагч зарлахтай адил Бүтцийн_нэр хувьсагч; гэж зарлана.
Жишээлбэл,
struct Computer {
int ram, cpu;
string name;
float price;
Display disp;
};

int main() {
Computer com;
}

Бүтцийн талбаруудад утга олгохдоо, мөн талбарын утгыг ашиглахдаа бүтцийн объектын ард .(цэг) тавьж, ард нь талбарын нэрийг бичинэ.
Жишээлбэл,
Display disp;
disp.companyName = "Acer";
disp.width = disp.height = 50;
disp.weight = 5;
Computer com;
com.cpu = 4;
com.disp = disp;

Бүтцийг ашиглаж нэг гоё жишээ бодлого бодъё. Танд гоё санагдахгүй ч байж магадгүй. Надад лав гоё. Тэр юу вэ? гэхээр бүтцийг ашиглаж массив төрлийн утга амархан буцааж болно. Хоёр матрицын нийлбэр матрицыг буцаадаг функц бичиж, уг функцийг дуудаж, үр дүнгийн матрицыг хэвлэе.


#include <iostream.h&gt
#include <iomanip.h>

struct Matrix {
float a[100][100];
};

Matrix Sum(int n, int m, float a[100][100], float b[100][100]) {
Matrix mat;
int i, j;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
mat.a[i][j] = a[i][j] + b[i][j];
return mat;
}

int main() {
float a[100][100], b[100][100];
Matrix mat;
int n, m, i, j;
cout<<" n = ";
cin>>n;
cout<<" m = ";
cin>>m;
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout<<" a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
cout<<" b["<<i<<"]["<<j<<"] = ";
cin>>b[i][j];
}
}
mat = Sum(n, m, a, b);
cout<<"\n Niilber matrix:\n";
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout.width(8);
cout<<mat.a[i][j];
}
}
cout<<"\n\n";

Wednesday, January 5, 2011

Матрицын тодорхойлогч, урвуу матриц олох

Матрицын үржвэр, нийлбэр, урвуу матриц олох, ялангуяа матрицын тодорхойлогч олох шаардлага амьдралд олон тохиолддог. Гаусын аргаар квадрат матрицыг дээд, доод гурвалжин матрицад шилжүүлж, тодорхойлогчийг нь олж, улмаар урвуу матрицыг олох бодлогын бодолтыг тавилаа. Дээд, доод гурвалжин матрицыг зэрэг олох шаардлагагүй л дээ. Аль нэг нь байхад л хангалттай ч гэсэн 2 аргаар тодорхойлогчийг нь олж, ижил хариу гарч байгааг харуулж, танд бодолтоо зөв гэдгийг итгүүлэх гэж л хоёр аргаар бодлоо гэж худлаа хэлээд ч яахав, дээр нэг найз мань багшийнхаа өгсөн даалгавар ёсоороо тэгж бодуулж байсан юм. Өгөгдөл матрицыг input.txt файлаас уншина. Уг файлын хамгийн эхэнд квадрат матрицын мөр болон баганы тоо болох N бүхэл тоо, дараа нь N*N ширхэг хоосон зай эсвэл [Enter] эсвэл [Tab]-аар тусгаарлагдсан бодит тоонууд байна. Жишээлбэл,
4
1 2 2.5 4
5 6.5 7 8
9 -0.5 11 1
-1.3 15.2 15 1
Үр дүн нь консолд хэвлэгдэхийн зэрэгцээ output.txt текст файлд алхам болгоны үр дүнгийн хамт бичигдэнэ. Зарим нэгэн үйлдлүүдийг нь болоод бүхэлд өөр нэг бодлогод ашиглахад тохиромжтой шүү.

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <mem.h>

ifstream ifs;
ofstream ofs;

int main() {
//Bodlogyn ogogdliig unshikh file
ifs.open("input.txt", ios::in);
//Bodlogyn khariug bichikh file
ofs.open("output.txt", ios::out);
int n, i, j, k, w, p;
float a[100][100], top[100][100], bottom[100][100], reverse[100][100], b[100][100], det, q, temp, A;
bool end = false;
if(ifs.is_open()) {
//File-iin ekhnii element khusnegtiin khemjees bolokh n too baina
ifs>>n;
cout<<"\n Ogogdson ni\n\n";
ofs<<" Ogogdson ni\n\n";
cout<<" n = "<<n<<endl;
ofs<<" n = "<<n<<endl;
//Khusnegtiin elementuudiig file-s unshikh
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
ifs>>a[i][j];
for(i=1; i<=n; i++) {
cout<<endl;
ofs<<endl;
for(j=1; j<=n; j++) {
cout.width(8);
ofs.width(8);
cout<<a[i][j];
ofs<<a[i][j];
}
}

memcpy(bottom, a, sizeof(a));

ofs<<"\n\n Dood gurvaljin matrix gargakh";

for(i=1; i<n; i++) {
for(j=i+1; j<=n; j++) {
p = -1;
for(w=i; w<=n; w++)
if(bottom[i][w] != 0) {
p = w;
break;
}
if(p != -1) {
//0-ees yalgaatai element bukhii bagana bolon tukhain davtaltand khargalzakh bagana 2-yn bairyg solikh

for(w=1; w<=n; w++) {
temp = bottom[w][i];
bottom[w][i] = bottom[w][p];
bottom[w][p] = temp;
}

q = bottom[j][i] / bottom[i][i];
for(k=i; k<=n; k++)
bottom[j][k] -= bottom[i][k] * q;

}
else {
cout<<"\n\n Dood gurvaljin gargakh yavtsad "<<(i-1)<<"-r khuvirgaltyn daraa\n";

for(int ii=1; ii<=n; ii++) {
cout<<endl;
for(int jj=1; jj<=n; jj++) {
cout.width(10);
cout<<fixed<<setprecision(4)<<bottom[ii][jj];
}
}
cout<<"\n\n Matrixyn "<<i<<"-r moriin bukh element 0-tei tentsuu uchraas det(a) = 0 baina. Tsaash ni khuvirgakh shaardlagagui.\n";

ofs<<"\n\n Matrixyn "<<i<<"-r moriin bukh element 0-tei tentsuu uchraas det(a) = 0 baina. Tsaash ni khuvirgakh shaardlagagui.\n";

det = 0;
end = true;
break;
}
}
if(end)
break;
else {
//Alkham bolgony matrixyn khuvirgaltyg "output.txt" file-d bichikh

ofs<<"\n\n "<<i<<"-r khuvirgalt\n";

for(int ii=1; ii<=n; ii++) {
ofs<<endl;
for(int jj=1; jj<=n; jj++) {
ofs.width(10);
ofs<<fixed<<setprecision(4)<<bottom[ii][jj];
}
}
}
}

if(!end) {
//Dood gurvaljin matrixyg khevlekh
cout<<"\n\n Dood gurvaljin matrix\n";
//det-r a matrixyn todorhoilogchiig temdeglev
det = 1;
for(i=1; i<=n; i++) {
cout<<endl;
for(j=1; j<=n; j++) {
cout.width(10);
cout<<fixed<<setprecision(4)<<bottom[i][j];
}
det *= bottom[i][i];
}
cout<<"\n\n det(a) = "<<fixed<<setprecision(2)<<det<<endl;
ofs<<"\n\n det(a) = "<<fixed<<setprecision(2)<<det<<endl;
}

end = false;
ofs<<"\n Deed gurvaljin matrix gargakh";
memcpy(top, a, sizeof(a));

for(i=n; i>0; i--) {
for(j=i-1; j>=0; j--) {
p = -1;
for(w=i; w>=0; w--)
if(top[i][w] != 0) {
p = w;
break;
}
if(p != -1) {
//0-ees yalgaatai element bukhii bagana bolon tukhain davtaltand khargalzakh bagana 2-yn bairyg solikh

for(w=1; w<=n; w++) {
temp = top[w][i];
top[w][i] = top[w][p];
top[w][p] = temp;
}

q = top[j][i] / top[i][i];
for(k=i; k>=0; k--)
top[j][k] -= top[i][k] * q;

}
else {
cout<<"\n\n Dood gurvaljin gargakh yavtsad "<<(n - i)<<"-r khuvirgaltyn daraa\n";

for(int ii=1; ii<=n; ii++) {
cout<<endl;
for(int jj=1; jj<=n; jj++) {
cout.width(10);
cout<<fixed<<setprecision(4)<<top[ii][jj];
}
}
cout<<"\n\n Matrixyn "<<i<<"-r moriin bukh element 0-tei tentsuu uchraas det(a) = 0 baina. Tsaash ni khuvirgakh shaardlagagui.\n";

ofs<<"\n\n Matrixyn "<<i<<"-r moriin bukh element 0-tei tentsuu uchraas det(a) = 0 baina. Tsaash ni khuvirgakh shaardlagagui.\n";

det = 0;
end = true;
break;
}
}
if(end)
break;
else {
//Alkham bolgony matrixyn khuvirgaltyg "outpu.txt" file-d bichikh

ofs<<"\n\n "<<(n-i+1)<<"-r khuvirgalt\n";
for(int ii=1; ii<=n; ii++) {
ofs<<endl;
for(int jj=1; jj<=n; jj++) {
ofs.width(10);
ofs<<fixed<<setprecision(4)<<top[ii][jj];
}
}
}
}

if(!end) {
//Deed gurvaljin matrixyg khevlekh
cout<<"\n\n Deed gurvaljin matrix\n";
//det-r a matrixyn todorhoilogchiig temdeglev
det = 1;
for(i=1; i<=n; i++) {
cout<<endl;
for(j=1; j<=n; j++) {
cout.width(10);
cout<<fixed<<setprecision(4)<<top[i][j];
}
det *= top[i][i];
}
cout<<"\n\n det(a) = "<<fixed<<setprecision(2)<<det<<endl;
ofs<<"\n\n det(a) = "<<fixed<<setprecision(2)<<det<<endl;
cout<<"\n //Deed, dood gurvaljind shiljuulj olson todorkhoilogchid tentsuu baigaa biz?!\n";
ofs<<"\n //Deed, dood gurvaljind shiljuulj olson todorkhoilogchid tentsuu baigaa biz?!\n";
}

cout<<"\n Urvuu matrix\n";
ofs<<"\n Urvuu matrix\n";
long detL = (long)(det * 10000);
if(detL == 0) {
cout<<"\n Todorkhoilogch ni 0-tei tentsuu uchraas urvuu matrixgui baina. Ooroor khelbel, ogogdson matrix ni bokhson matrix baina.";
ofs<<"\n Todorkhoilogch ni 0-tei tentsuu uchraas urvuu matrixgui baina. Ooroor khelbel, ogogdson matrix ni bokhson matrix baina.";
}
else {
for(int i1=1; i1<=n; i1++) {
for(int j1=1; j1<=n; j1++) {
for(int i2=1; i2<i1; i2++) {
for(int j2=1; j2<j1; j2++) {
b[i2][j2] = a[i2][j2];
}
for(int j2=j1+1; j2<=n; j2++) {
b[i2][j2-1] = a[i2][j2];
}
}
for(int i2=i1+1; i2<=n; i2++) {
for(int j2=1; j2<j1; j2++) {
b[i2-1][j2] = a[i2][j2];
}
for(int j2=j1+1; j2<=n; j2++) {
b[i2-1][j2-1] = a[i2][j2];
}
}
for(i=1; i<n-1; i++) {
for(j=i+1; j<=n-1; j++) {
p = -1;
for(w=i; w<=n; w++)
if(b[i][w] != 0) {
p = w;
break;
}
if(p != -1) {
//0-ees yalgaatai element bukhii bagana bolon tukhain davtaltand khargalzakh bagana 2-yn bairyg solikh

for(w=1; w<=n-1; w++) {
temp = b[w][i];
b[w][i] = b[w][p];
b[w][p] = temp;
}

q = b[j][i] / b[i][i];
for(k=i; k<=n-1; k++)
b[j][k] -= b[i][k] * q;
}
}
}
A = 1;
for(i=1; i<n; i++)
A *= b[i][i];
if((i1 + j1) % 2 == 1)
A *= -1;
reverse[j1][i1] = A;
}
}
for(i=1; i<=n; i++) {
cout<<endl;
ofs<<endl;
for(j=1; j<=n; j++) {
reverse[i][j] /= det;
cout.width(10);
cout<<fixed<<setprecision(4)<<reverse[i][j];
ofs.width(10);
ofs<<fixed<<setprecision(4)<<reverse[i][j];
}
}
}
}
else
cout<<" \"input.txt\" file oldsongui";

cout<<endl<<endl;
ifs.close();
ofs.close();

system("pause");
}

Saturday, January 1, 2011

Төлөвлөгөө...

Шинэ оны мэнд хүргэе! Бүх жилийн турш хаппи байж, амжилт бүтээлд дарагдаарай гэж хүсэн ерөөе!
Миний хувьд шинэ жилийн баярыг архи тамхигүй маш гоё тэмдэглэлээ. (Тамхи гэдэг нь наргиа шүү, яснаасаа дургүй) Архи пивогүй. Архи пиво нтр баярын өнгө оруулдаг ч хэрэглэхгүй байвал илүү үр дагавартай байдаг юм байна. Дараа дараагийн баяруудыг дандаа шинэ жилээ тэмдэглэсэн шиг тэмдэглэнэ ээ. Өнгөрсөн онд юу хийж бүтээснээ, алдаа оноогоо нэг дүгнэж үзлээ. Сургууль төсөх, ажилд орох гээд л олон чухал үйл явдлууд болж өнгөрчээ. Алдаа оноо ч их байна. Том алдаа гэвэл төлөвлөгөөгүй тухайн үед хиймээр санагдсан юмаа хийдэг минь буруу байжээ. Одоо нарийн төлөвлөгөө гаргаж, хатуу баримталж ажиллана аа. Миний төлөвлөгөөнд ороогүй л бол ямар ч процесс байсан хойшлогдож, хүлээлэлтийн төлөвд орно гэсэн үг. Хэрэв та над шиг төлөвлөгөөгүй ажилладаг байсан бол одоо төлөвлөгөө гаргаарай гэж зөвлөе. Амжилтанд хүрэх нэг чухал алхам шүү.
Би 2011 оныг "Инглиш жил" болгон зарлалаа.
Өдөр өнгөрөх тусам цаг хугацааны үнэ цэнэ мэдрэгдсээр..