Tuesday, September 23, 2008

C++ (4 бодлого)

Бодлого 1
Хаанаасаа ч ижилхэн уншигддаг тоог палиндром тоо гэдэг. Жишээ нь 272, 5115 гэх мэт. Тэгвэл гараас оруулсан N тоо хүртэл бүх палиндром тоог хэвлэх программ бич.

Бодлого 2
N хүртэлх бүх анхны тоог хэвлэх программ бич.

Бодлого 3
1 оны 1 сарын 1-нийг Даваа гариг гэж үзээд y оны m сарын d өдөр ямар гариг болохыг ол.

Бодлого 4
Гараас оруулсан тоог 2-тын тооллын систем рүү шилжүүл.

Sunday, September 21, 2008

Айзек Азимов ба Роботын 3 хууль

Айзек Азимов (Isaac Asimov) гэж хүний нэр манайхны дунд төдийлөн тархаагүй. Эсвэл би түүний тухай мэддэг, биширдэг хүмүүсийн дунд хараахан ороогүй яваа байх.
Түүнийг шинжлэх ухааны уран зөгнөлийн талаар дэлхийд №1 гэж шууд хэлж болно. Учир нь түүний гаргасан ирээдүйн хүн төрөлхтний амьдралын тухай зөгнөл, робот, роботын оюун ухаан, artificial intelligence-ийн тухай ойлголт зэрэг нь өнөөгийн соёлт хүнт төрөлхтний ирээдүйнхээ тухай, роботын тухай, орчин үеийн хүний нийгмийг хэрхэн өөрчлөгдөн хувьсах тухай бүхий л төсөөллийг өгч байна.

Тэрээр дөнгөж оюутан байхдаа "Foundation" хэмээх гурвалсан романаа бичиж, тэрхүү бүтээл нь бүх цаг үеийн хамгийн шилдэг шинжлэх ухааны уран зөгнөлт трилоги гэгдэн уран зохиолын салбарын Хюгогийн шагналыг хүртэж байжээ. Тэр үед л тэрээр аль хэдийн од болчихсон байлаа. Физик, математик, биохими, анагаах ухаан, сэтгэл судлал зэрэг олон шинжлэх ухааны нарийн мэдлэгтэй байсан учраас түүний бичсэн зохиолууд нь бүх талаараа гоц төгөлдөр юм. Өнөөдөр гарч буй шинжлэх ухааны уран зөгнөлт бүхий л кино бүтээл түүний нэртэй салшгүй холбоотой. Жишээ нь л гэхэд "Frankenstein"-ээс авахуулаад "I, robot" хүртэл цөм л түүний бичсэн зохиолууд. Харин Азимов зөгнөлт зохиолын эцэг гэгддэг Жюль Вернтэй нэг тосгонд төрсөн байдаг нь их хачирхалтай.

Роботын 3 хууль
Тэрээр робот оюун ухаан хэрхэн ажиллах тухай үндсэн 3 хуулийг томьёолсон юм.
1-р хууль: A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2-р хууль: A robot must obey orders given to it by human beings, except where such orders would conflict with the First Law.
3-р хууль: A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

Харин хожим Роботын 4, 5-р хуулиудыг нэмж гаргасан байна.
4-р хууль: A robot must establish its identity as a robot in all cases.
5-р хууль: A robot must know it is a robot.

Өөрсдөө орчуулж ойлговол илүү зүгээр гэж бодоод орчуулсангүй.
Тухайн үед "роботын оюун ухаан яаж ажилладаг вэ гэдгийг зөвхөн Азимовоос л асуу" гэдэг хэлц хүртэл яригддаг байжээ.

Friday, September 19, 2008

scanf(); printf();

(Энэхүү хичээлийг сурагчдад зориулав)
scanf(), printf() функцууд
scanf(); функц нь гараас өгөгдөл оруулах зорилготой ба, printf(); функц нь дэлгэц рүү хэвлэх үүрэгтэй функц юм. Эдгээр нь хоёулаа stdio.h хэмээх стандарт оролт, гаралтын санд хамаардаг. Иймд эдгээрийг ашиглах үедээ заавал
#include
-ийг бичих шаардлагатай.
Одоо төрөл тус бүр дээр
1. Бүхэл тоон төрөл
Бүхэл тоон төрлийг тоочвол:
char, short int, int, long
unsigned char, unsigned int, unsigned short, unsigned long

int n;
scanf("%d", &n);
printf("%d", n);

printf("%6d", n); //Энэ нь 6 тэмдэгтийн зай нөөцөлж аваад тэрэн дотроо хэвлэх

2. Бодит тоон төрөл
Бодит тоон төрлийг тоочвол:
float, double, long double

float n;
scanf("%f", &n);
printf("%f", n);

printf("%6.3f", n); //Энэ нь 6 тэмдэгтийн зай нөөцөлж аваад, таслалаас хойш 3 орны нарийвчлалтай хэвлэх

3. Тэмдэгтийг оруулах болон гаргах
Тэмдэгтийг зарлахдаа
char studentName[20]; // Уг studentName хувьсагч нь 20 тэмдэгтийн урттай char төрлийн хувьсагч байна гэдгийг заана.
scanf("%s", studentName);
printf("%s", studentName);