2012-11-17 03:50:33
Зайн сургалт
by
Bataa
2010-03-02 16:04:54
Хичээл 1. Олимпиадын бодлогуудтай танилцах
by
Bataa
Энэ хичээлээр олимпиадын бодлогын хэд хэдэн жишээнүүдтэй танилцах болно. Энд авч үзэж буй бодлогууд нь тэдгээрийг бодоход ямарч тусгайлсан мэдлэг шаардахгүй бөгөөд зөвхөн тодорхой хэмжээний эрэгцүүлэл, лoгик сэтгэлгээ ур ухаан л хэрэгтэй. Бодлого. RGB0002 Иосиф Флавын бодлогоБодлого. RGB0003 Хугацааны эрэмбэлэлт Бодлого. RGB0004 Их эрэмбэлэлт Орчуулсан : Проф. Л.Чойжоованчиг
2010-03-02 15:29:49
Хичээл 0. Удиртгал: Олимпиадын бодлогуудад тавигдах шаардлагууд, файлтай ажиллах
by
Bataa
Хэрвээ та урьд өмнө нь информатикийн олимпиадад оролцож тэр үедээ оролтын өгөгдлийн файлаас унших нь ямар нэгэн хүндрэл үүсгээгүй бол энэ хичээлийг алгасаж болох юм. Олимпиадын информатик гэж юу вэ?Информатикийн олимпиадад амжилттай оролцоход чухам юу хэрэгтэй вэ? Практикаас харахад зөвхөн програмчлалын хэлний мэдлэгтэй байх нь энд илт хангалттай бус байдаг. Ер нь бол информатикийн олимпиадын бодлогууд нь ихэнхидээ математик болон програмчлал хоёрын уулзварын /залгаас/ хаа нэгтээ оршиж байдаг. Бүр зарим тохиолдолд сурагчид эдгээр бодлогуудыг бодсоноор зөвхөн програмчлалд суралцах төдий биш, математикийн ямар нэг шинэ салбарыг /эсвэл хуучин тодорхой түвшинд үзэж байсан салбарыг өөршинэ байр суурьнаас/ судалж эзэмшдэг байна. Олимпиадын бэлтгэлийн үндсэн зорилго нь эцсийн дүндээ тэр энэ аль нэг олимпиадад ялж түрүүлэх явдал биш, харин алгоритм сэтгэлгээ тухайн бодлогыг хэрхэн бодохыг ойлгож, түүнийгээ програмчлалын хэлэн дээр бичиж зохиосон програмаа зүгшрүүлж тестлэх арга барил, ур чадварыг төлөвшүүлэхэд оршино. Бодолтыг хэрхэн шалгах болон түүнээс үүдэн гарах ямар асуудал байх вэ?Програмчлалын олимпиадын бодлогын бодолтыг автоматаар шалгадаг түүхэн уламжлал нэгэнт тогтсон. Ийм нөхцөлд таны зорилго бол өгөгдсөн оролтын өгөгдлүүдээр нь тооцоолол явуулж гаралтын өгөгдлүүдийг /үр дүн/ гарган өгөх програм бичих явдал байна. Та бичиж бэлэн болгосон програмаа шалгуулахаар өгөхөд шалгагч програм нь урьдчилан бэлтгэсэн оролтын өгөгдлүүдийг /тестийн оролтууд/ таны програмд дамжуулж програмыг ажиллуулж /тестлэх процесс/ дараа нь түүгээр гарган өгч буй үр дүнд анализ хийдэг. Тэгэхдээ гарган өгсөн үр дүнг зөв хариутай жишиж харьцуулахгүй, үнэхээр бодит анализ хийдэг, өөрөөр хэлбэл хэрэв бодлого нь хэд хэдэн боломжит зөв хариутай бол тогтсон дүрэм ёсоор /хэрэв бодлогын нөхцөлд өөр заагаагүй бол/ тэдгээрийн алийг нь ч гаргаж болно. Бичсэн програмыг автоматаар шалгаж байгаа учраас шийд /даалгаварын гүйцэтгэл/ болох програмд зарим нэгэн хязгаарлалтуудыг тавьдаг. Юуны өмнө програм нь үр дүнгээ бодлогын нөхцөл дотор маш нарийн тодорхой зааж өгсөн форматаар заавал гаргадаг байх ёстой /тэгэхээр, жишээ нь програм гаралтын өгөгдөл болох хоёр тоог байрлалыг нь сольж гаргах, эсвэл хариу болох тооны оронд эхлээд “хариу” гэсэн үг хэвлээд ард нь хариу болох тоогоо гаргах зэрэг нь шалгагч – компьютерийн тухайд бүхэлдээ буруу үр дүн мэтээр ойлгогдох бөгөөд алдаа нь чухам юунд байгааг олж тогтоохыг оролдохгүй ч, ерөөсөө ч чадахгүй юм. Автомат шалгалттай холбоотой хоёрдох асуудал бол дүрэм журмын үүднээс тухайн бодлогод зориулагдсан тестүүд нь бүх боломжит тохиолдлуудыг хамарч байхаар зохиогдох ёстой. Түүний дотор максималь утгыг ч хамрах ёстой. Өөрөөр хэлбэл, жишээ нь бодлогын нөхцөл дотор “оролтын файлд N –ширхэг тоо бичигдсэн бөгөөд N- нь 1000-аас хэтрэхгүй” – гэсэн бичлэг байгаа бол N=1000 байх утга дээрхи /эсвэл түүнд маш ойрхон утга дээрхи/ тест үндсэндээ заавал байх ёстой. Тийнхүү бодлогын нөхцөлд ямар нэг муу тохиолдол бололцоотой бол түүнийг ч гаргадаг байна гэсэн юм. Олимпиадын бодлогын өөр нэг уламжлал бол оролтын өгөгдлийн нийцэмжтэй байх явдал. Энэ юу гэсэн үг вэ гэхээр оролтын өгөгдлүүд нь бодлогын нөхцөлд заасан форматад бүрэн яв цав харгалзаж байхаас гадна заасан бүх хязгаарлалтуудыг хангаж байна гэсэн үг юм. Таны шийд /бодолтын үр дүн болох програм/ тань оролтын өгөгдлүүдээ заавал оролтын файлаас /түүний нэрийг бодлогын нөхцөлд зааж өгсөн байдаг/ зааж тогтоож өгсөн форматаар унших бөгөөд улмаар бодолтыг гүйцэтгэж гарсан үр дүнгээ гаралтын файл руу /түүний нэр ч бас бодлогын нөхцөл дотор заагдсан байдаг/ бичиж гаргана. Програм нь ямагт заавал 0-гэсэн кодоор төгсөж байх ёстой /эс тэгвээс тестлэгч програм нь ажиллагааны явцад алдаа гарлаа гэж тооцоход хүрдэг/ өөрөөр хэлбэл halt (0)-командаар төгсөх, эсвэл паскал дээр бол програмын төгсгөлд хүрэх, харин С-дээр бол return 0; -оор төгсөх ёстой! Энэ сэдэвтэй холбоотой материалыг здесь /энд/- дээр дарж холбогдон танилцахыг зөвлөж байна. Файлтай ажиллахТекст файлаас мэдээлэл унших нь гараас уншихтай адилаар ерөнхийдөө хялбархан процесс юм. Файл руу гаргахын хувьд ч мөн адил. Гэхдээ бага зэргийн ялгаа үүсдэг. Файлтай ажиллахын тулд бид “ файл” хэмээх тусгай төрлийн хувьсагчийг оруулж ирнэ. Цааш нь энэ хувьсагчтай ажиллахын өмнө түүнийг тодорхой файлтай /физик/ “холбож”-өгөх хэрэгтэй бөгөөд улмаар түүнийгээ нээнэ. Үүний дараа шаардлагатайбүх мэдээллээ файлаас уншсаны /файл руу бичсэний/ эцэст файлыг хаахаа мартахгүй байх хэрэгтэй. Одоо бид програмчлалын янз бүрийн хэлүүд дээр x.in-файлаас хоёр тоог уншаад тэдгээрийн нийлбэрийг олж x.out-файл руу гаргах хялбар бодлогыг бодох програмын энгийн жишээг нилээд дэлгэрэнгүйгээр авч үзье.
Паскал дээр програмчлагчдад: Хэрэв оролтын файлд зөвхөн тоонууд бичигдсэн бол түүнээс уншихын тулд ердөө read-командыг ашиглахад хангалттай. Тиймээс эдгээр унших тоонууд нь нэг мөрөнд байна уу эсвэл өөр өөр мөрөнд байна уу гэдэг нь ердөө ч чухал биш. Хэрвээ файл дотор текст мэдээлэл бичигдсэн бол /мөр унших үед/ read-команд нь идэвхитэй /файлын заагчийн зааж буй/ мөрөөс мэдээллийг унших /мөр төрлийн хувьсагч нь хичнээн тэмдэгтийг өөртөө багтаах боломжтой байна, төчнөөн тэмдэгтийг уншина/ ба мөрийн төгсгөлд хүрсэн үедээ хоосон мөрийг буцаана. Харин readln-команд нь идэвхитэй мөрөөс мэдээллийг уншиад дараагийн мөрөнд /мөрийн төгсгөлд хүрсэн эсэхээс үл хамааран/ шилждэг. Орчуулсан : Проф. Л.Чойжоованчиг
2010-03-02 14:58:42
Информатикийн олимпиадад бэлтгэх зайн сургалт семинар
by
Bataa
Москвагийн нээлттэй боловсролын хүрээлэн, Москвагийн тасралтгүй математик боловсролын төв болон Москва хотын информатикийн олимпиад зохион байгуулах хорооноос Балтийн тэнгэсийн хавийн болоод хамтын нөхөрлөлийн орнууд дах орос сургуулийн сурагчдад зориулан информатикийн олимпиадад бэлтгэх чиглэлээр зайн сургалтын цуврал семинаруудыг зохион байгуулж байна. Урьдчилсан баримжаагаар хоёр долоо хоногт нэг удаа ээлжит хичээлийн материалыг сайт дээр байрлуулах юм. Энэхүү сургалтын материал нь дотроо тодорхой түвшний оршил, бодлогын нөхцөл (томъёолол), түүнд зориулсан тестүүд болон бодлогын задлан шинжилгээ гэсэн хэсгүүдтэй. Түүнээс гадна энэ сайт дээр бодлогын бодолтуудаа шалгаж үзэх бололцоотой. Хэрвээ энд тавигдсан материалуудтай ажиллах явцад танд ямар нэгэн бэрхшээлтэй асуудал гарах юм бол тестлэгч системээр дамжуулан тухайн асуудлаа бидэнд тавьж тэдгээртээ хариулт авч болох юм. Семинар нь эхний ээлжинд Балтий хавийн болоод хамтын нөхөрлөлийн орнууд дах орос сургуулийн сурагчдад зориулагдсан хэдий ч семинарт сонирхож хүссэн бүх хүн хамрагдах боломжтой. Цааш нь хэрхэн унших вэ гэдгийн өмнө нь тавигдсан материалуудыг яаж ашиглах вэ – гэсэн хэсэгтэй нухацтай танилцахыг зөвлөмж болгож байна. Яг өнөөгийн байдлаар дараах хичээлүүдийн материалууд дээр ажиллах бололцоо бүрдсэн байгаа. 2004-2005 оны хичээлийн жилийн сэдвүүдХичээл 0 Удиртгал: Олимпиадын бодлогуудад тавигдах шаардлагууд, файлтай ажиллах Хичээл 1 Олимпиадын бодлогуудтай танилцах Хичээл 2 Динамик програмчлалын арга Хичээл 3 Динамик програмчлалын арга /үргэлжлэл/ Хичээл 4 Графууд: Оршил Хичээл 5 Графууд: хамгийн дөт зам хайх, өргөний нэвтрэлт Хичээл 6 Графууд: хамгийн дөт зам хайх, Дейкстрийн алгоритм Хичээл 7 Графууд: хамгийн дөт замыг хайх, Флойдын алгоритм Хичээл 8 Графууд: хамгийн дөт зам хайх, Форд – Белманы алгоритм Хичээл 9 Графууд: араг яс, Прим – Краскалийн алгоритм 2005-2006 оны хичээлийн жилийн сэдвүүд Хичээл 10 Урт арифметик Хичээл 11 Урт язгуур Хичээл 12 Рекурс – 1 Хичээл 13 Графууд: Гүний нэвтрэлт Хичээл 14 Рекурс – 2, Түүвэр ялгалт Хичээл 15 Комбинаторик – 1 2006-2007 оны хичээлийн жилийн сэдвүүд Хичээл 16 Комбинаторик – 2. Сэлгэмэл Хичээл 17 Комбинаторик – 3. Объектийг дугаараар нь эсвэл дугаарыг нь объектоор нь бий болгон тогтоох Хичээл 18 Мөрүүд. Мөр дотроос дэд мөрийг хайх. Кнут – Моррис – Праттийн алгоритм Хичээл 19 Сүлжээн дэх урсгал. Форд – Фалкерсоны алгоритм Орчуулсан : Проф. Л.Чойжоованчиг |