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 оныг "Инглиш жил" болгон зарлалаа.
Өдөр өнгөрөх тусам цаг хугацааны үнэ цэнэ мэдрэгдсээр..