Гүйцэтгэгч робот. Цикл. Боловсролын портал

Багшийн үүрэг бол бүтэлгүйтлээс даатгахгүй, харин урам хугарахаас сэргийлж, сурагчтай хамт энэ замаар алхах явдал юм. болзошгүй хүндрэлүүд. Хүүхдүүд өөрсдөдөө утга учиртай үйл ажиллагаануудаар дамжуулан шинэ зүйлийг олж мэдэхийн тулд ангиудыг зохион байгуулах нь маш чухал юм.
Робот компьютерийн шинжлэх ухаанд хэрхэн тусалдаг вэ? Би робот техник дээр суурилсан компьютерийн шинжлэх ухааны цөөн хэдэн сэдвийг зааж өгөх болно.
"Файл ба файлын систем" сэдэв.
Сурагчийн мэдэлд LEGO Mindstorms NXT Education сургалтын багцаас LEGO®NXT микрокомпьютер байсан. Хянаарай Файлын системЭнэ нь стандарт командуудыг ашиглан тохиолддог боловч санах ойн хэмжээ том биш тул шаардлагатай болон шаардлагагүй зүйлсийг байнга хянаж байх ёстой. Роботын үйлдлийг дуугарах, зураг харуулах, ажлын програмын санд нэмэхийн тулд та ажиллах шаардлагатай. үндсэн ойлголтуудкомпьютерийн шинжлэх ухаан: файл, файлын төрөл, файлын зам, цэс, хавтас.
Сэдэв: "Мэдээллийн үйл явц", "Мэдээллийн кодчилол".
Робот хэрэгсэл нь аудио, хүрэлцэх, дүрс бичлэг хийх мэдрэгчээр тоноглогдсон. Мэдээллийг дижитал хэлбэрт оруулсны дараа дэлгэцийн дэлгэц дээр харуулах боломжтой. Микрокомпьютерийн тусгай функц нь ажиллахад бэлэн програм ашиглан мэдрэгч, мотортой туршилт хийх боломжийг олгодог. Мэдрэгчтэй хэд хэдэн туршилт хийсний дараа хэт авианы зайны мэдрэгч яагаад хэт улаан туяаны гэрлийн мэдрэгчээс удаан ажилладаг, дуу хэрхэн хувирдаг талаар ойлголт гарч ирдэг. дижитал кодгэх мэт. Сурах мэдээллийн үйл явцМэдээллийн кодчилол, зарчмууд нь мэдээллийн технологийн мөн чанарыг илүү гүнзгий ойлгох боломжийг олгодог.

Сэдэв: Харилцаа холбооны технологи.
LEGO®NXT микрокомпьютер нь технологийг дэмждэг утасгүй холбоо. Bluetooth функцийг ашиглан та тохируулж болно утасгүй холболт NXT микрокомпьютер болон бусад төхөөрөмжүүдийн хооронд Bluetooth төхөөрөмж, жишээ нь, бусад NXT-тэй, хамт гар утасэсвэл компьютертэй. Блютүүт холболт үүсгэснээр дараахь зүйлийг хийх боломжтой: алсын зайнаас компьютерээс програм татаж авах; бусад төхөөрөмжөөс (компьютерээс биш), түүний дотор NXT-ээс програм илгээх; бие даасан NXT болон тэдгээрийн бүлгүүдэд хөтөлбөр илгээх. Энэхүү технологи нь гар утас ашиглан роботыг удирдах боломжтой болгодог.

Сэдвүүд "Алгоритм. Алгоритм гүйцэтгэгч”, “Програмчлалын орчин”.
Роботтой анх танилцахын тулд та компьютерт холбогдохгүйгээр NXT нэгжийг шууд програмчилж болно. Дэлгэцийн дэлгэц дээр шууд таван тушаалын загварыг ашиглан та үүсгэж болно энгийн програмба гогцоо. Гэсэн хэдий ч үндсэн алгоритмын бүтцийг мэдэхгүй, програмчлалын орчинг эзэмшихгүйгээр хийх боломжгүй юм. Энэ нь роботыг програмчлах чадвар нь түүнийг төрөл бүрийн асуудлыг шийдвэрлэх чадвартай бүх нийтийн гүйцэтгэгч болгодог. Та програмчлалын технологийг визуал програмчлалын орчинд эзэмшиж, дараа нь илүү хүчирхэг, орчин үеийн үйл явдалд чиглэсэн орчин руу шилжих хэрэгтэй.
Тиймээс робот техник шаардлагатай болно үндсэн мэдлэгкомпьютерийн шинжлэх ухаан, оюутны роботоо "хамгийн сайн" болгох шавхагдашгүй хүсэл нь түүнийг шинэ мэдлэг эзэмшихэд түлхэж байна.
Роботыг яагаад хамгийн тохиромжтой сургалтын хэрэгсэл гэж нэрлэж болох вэ? Учир нь энэ хэрэгсэл нь хүүхдийн тоглох, бүтээх, үе тэнгийнхэнтэйгээ харилцах байгалийн хүслийг ашиглах сургалтын орчныг бүрдүүлэх боломжийг олгодог. Тиймээс бид робот техникийн сургалтын хэрэгсэл болох давуу талыг онцолж болно.
. Мэдлэг олж авах нь тоглоомын үеэр тохиолддог.
. Робот бүтээх нь бүтээлч эрх чөлөөг өгдөг.
. Ихэнх оюутнууд ажлаа сайжруулах хүсэл эрмэлзэлтэй байдаг.

Жишээлбэл, 6-р ангийн сурагчийн "Робот програмчлал" хичээлийн хүрээнд хичээлээс гадуурх үйл ажиллагааны хүрээнд бүтээсэн "Үнэгүй амттан хүргэж буй робот"-ын загварыг дурдмаар байна. Роботыг стандарт Alpharex 1.0 загварын дагуу LEGO MINDSTORMS NXT Education 9797 багцаас угсарч, роботын статусыг илтгэх өнгө мэдрэгч болон амттан хийх тавиураар бүрдүүлсэн.
Ажлын зорилго нь боломжит нөөц бололцоогоор хүний ​​алхалтын загварыг аль болох хэрэгжүүлэх явдал юм. Хөл бүрийн хөдөлгөөнийг мотор, араа, хөшүүргийн механик угсралтаар удирддаг. Нэг хөшүүрэг нь хөлийг дээш доош хөдөлгөж, нөгөө нь урагшаа хөдөлдөг. Энэ тохиолдолд бие нь тулгуур хөл рүү хазайдаг тул робот тэнцвэрийг хадгалж байдаг. Энэ алхалтыг "хослох" гэж нэрлэдэг.
Тусдаа мотор нь зайны мэдрэгч болон мэдрэгчтэй мэдрэгч болон өнгө мэдрэгчийг барьж буй хөшүүргийн гарыг хянадаг. Эмчилгээний тавиур нь бэхлэгдсэн байна.
Робот нь дараах зан үйлийн алгоритмын дагуу хүргэгч, жишээлбэл, үнэ төлбөргүй амттан өгөхөөр програмчлагдсан. Робот хөдөлгөөнөө "Би Alpharex робот, би үнэгүй амттан санал болгож байна!" гэсэн шууд хэллэгээр дагалддаг. Роботтой холбоо тогтоохыг хүссэн хүн дохио зангаагаар зогсоож чадна. Зогссоны дараа робот "Өөртөө туслаад товчлуурыг дар!" Гэж хэлнэ. Чихэр авсны дараа хүн талархлын тэмдэг болгон товчлуурыг нэг удаа дарах ёстой. Зогссоны дараа гурван секундын дараа робот үргэлжлүүлэн хөдөлнө. Амттан дуусмагц (робот тавиур дээр тодорхой тооны чихэр байхаар програмчлагдсан) робот баяртай гэж хэлээд улаан заагч асч, робот зогсоно.

Роботыг удирдах программыг NXT Programming 2.0 орчинд бичсэн.




Гүйцэтгэгч робот Робот хөдөлгөгч командын систем: дээш, доош, зүүн, баруун Робот нэг нүдийг дээш, доош, зүүн, баруун тийш хөдөлгөдөг. Будаг команд нь роботын зогсож буй нүдийг будна. Нөхцөлийн үнэнийг шалгах нь: дээд талд чөлөөтэй, доод талдаа чөлөөтэй, зүүн талд чөлөөтэй, баруун талд чөлөөтэй Робот нь Робот байрлах нүдэнд хана байхгүй гэсэн нөхцөл байдлын үнэнийг шалгадаг. Та AND, OR, NOT логик үйлдлүүдээр үүсгэгдсэн нийлмэл нөхцлийн тэмдэглэгээг ашиглаж болно.




Гүйцэтгэгч робот Хүрээлэн буй орчныг шууд засварлах Орчноо засах бүх командыг хулганаар гүйцэтгэнэ: ханыг байрлуулах/зайлуулах - нүднүүдийн хоорондох хил дээр дарах, нүдийг будах/ арилгах - нүдэн дээр дарах, роботыг зөөх - хулганыг чирнэ. хүссэн нүд рүү.


Гүйцэтгэгч робот цэс командууд Робот харуулах Робот талбар Робот ажиглах цонхыг харагдуулна. Print Setting дотор файл үүсгэдэг PDF формат, одоогийн нөхцөл байдлыг өнгөт эсвэл хар цагаанаар дүрсэлсэн. Файл үүсгэх орчинг хадгалах текст файлдотоод *.fil формат дахь нөхцөл байдлын тайлбартай. Энэ файлыг дараа нь эхлүүлэх орчин (Эхлэх орчныг өөрчлөх команд) эсвэл эхлүүлэх орчныг засварлах үед (Нээлттэй эхлэх орчныг засварлах цонх команд) болгон ачаалж болно. Эхлэх орчин болгон өөрчлөх Шинэ эхлүүлэх орчны файлын нэрийг (стандарт харилцах цонхыг ашиглан) тохируулж, шинэ эхлүүлэх орчныг ачаална. Эхлэх орчин руу буцах Эхлэх орчинг одоогийн болгодог.


Гүйцэтгэгч робот Ажиглалтын цонхон дээрх одоогийн нөхцөл байдлын зураг Роботын ажиглалтын цонхны ажлын талбарт одоогийн орчны дүр төрх үргэлж бүрэн байрладаг. Ажлын талбайн дэвсгэр нь ногоон өнгөтэй байна. Дүүрсэн эсүүд саарал өнгөтэй байна. Эсийн хооронд нимгэн хар зураас байдаг. Хана нь зузаан шар зураасаар харагдаж байна. Ажиглалтын цонхны ажлын талбарын нүдэнд Роботыг очир алмаазаар дүрсэлсэн байна.


Гүйцэтгэгч роботын жишээ 1. Робот А цэгээс В цэг хүртэл хүрэхийн тулд "Баатрын нүүдэл" нэртэй алгоритмыг үүсгэцгээе (Зураг 3). Алгоритм нь иймэрхүү харагдаж байна (Зураг 4.). Гүйцэтгэлээ хийсний дараа робот хүссэн цэг рүү шилжих болно (Зураг 5). Гүйцэтгэгчийн хэлээр бичигдсэн алгоритмыг программ гэнэ. Зураг.3Зураг.4 Зураг.5











Бүх үйл явц нь угсрах, програмчлах гэсэн хоёр үе шатаас бүрдэнэ. Сайн робот угсрахын тулд танд механикийн мэдлэг хэрэгтэй. Тодорхой үйлдэл хийх роботыг програмчлахын тулд та ойлгох хэлийг мэдэх хэрэгтэй эх хавтанэсвэл програм хангамжийн блок. Сургуулийн компьютерийн шинжлэх ухааны мэдлэг энд хангалтгүй.

Би материалыг хаанаас авч болох вэ?

Эхлээд та роботыг хэрхэн угсрахаа шийдэх хэрэгтэй: бэлэн иж бүрдэл эсвэл материалыг өөрөө сонгох. Иж бүрдэлийн давуу тал нь эд ангиудыг тусад нь хайх шаардлагагүй юм. Ихэнх тохиолдолд хэд хэдэн төхөөрөмжийг нэг багцаас угсарч болно.

Бэлэн иж бүрдэлээс угсараагүй бүтцийг нэрлэдэг нээлттэй систем. Энэ нь бас давуу талтай: таны робот өөрийн гэсэн зан чанартай байх бөгөөд та өөрөө дизайныг сайжруулах боломжтой болно. Гэхдээ та илүү их цаг хугацаа, хүчин чармайлт гаргах нь гарцаагүй.

Робот юунаас бүрддэг вэ?

Орон сууц - металл эсвэл хуванцар "бие", үлдсэн хэсгүүд нь бэхлэгдсэн байна. Робот бүр эрчим хүчний эх үүсвэртэй байдаг - батерей эсвэл аккумлятор. Робот ямар даалгавар гүйцэтгэхээс шалтгаалж мэдрэгчийг сонгодог: өнгө, гэрлийг илрүүлж, хүрэхэд хариу үйлдэл үзүүлэх боломжтой.

Роботыг хөдөлгөхийн тулд танд мотор хэрэгтэй болно. "Толгой"бүхэл бүтэн механизм - системийн самбар эсвэл програм хангамжийн нэгж. Тэдгээрийн тусламжтайгаар робот компьютерт холбогдож, даалгавруудыг хүлээн авдаг.

Би яаж түүнийг ямар нэгэн зүйл хийлгэх вэ?

Робот ямар нэгэн үйлдэл хийхийн тулд та үүсгэх хэрэгтэй компьютерийн программ. Энэ үе шатны нарийн төвөгтэй байдал нь угсралтаас хамаарна. Хэрэв роботыг Lego Mindstorms эсвэл mBot багцаас угсарсан бол хүүхдүүд хүртэл программ хангамжаа удирдах боломжтой.

Хэрэв та роботоо өөрөө бүтээж байгаа бол програмчлалын анхан шатны мэдлэг, C++ гэх мэт програм бичих хэлээ сурах хэрэгтэй.

Робот яагаад программыг гүйцэтгэж чадахгүй байж болох вэ?

Энэ нь шинэ газар очиход андуурч, програмыг буруу ажиллуулж болно. Робот бүх зүйлийг зөв хийхийн тулд мэдрэгчийг тохируулах шаардлагатай. Жишээлбэл, хэт тод гэрэлтүүлэг нь өнгийг танихад саад болдог. Робот хөдөлж буй гадаргуугаас хамааран моторуудын хүчийг тохируулдаг.

Та сургуульдаа угсарч, программчилж сурч чадах уу?

Сургуулийн сургалтын хөтөлбөрт роботын хичээл ороогүй ч физик, компьютерийн багш нар хүүхдэд хэрхэн угсарч, программчлахыг зааж өгдөг. Белгород хотод зарим сургуульд робот хийдэг клуб байдаг.

“Физик, компьютерийн багш нартай хичээлийн дараа бид программчилж сурдаг. Бид LegoMindstorms болон Robolab дээр хэрхэн ажиллахаа аль хэдийн мэддэг болсон ( програм хангамжроботуудын хувьд - ойролцоогоор. авто.). Бид заримдаа эд ангиудын 3D зураг зурж сурдаг” гэж Белгород инженерийн залуучуудын лицей-интернатын оюутнууд болон RoboFest 2018-д оролцогчид хэлэв. Антон ПершинТэгээд Дмитрий Чернов.

Та сургуулиас гадна хаана роботчин болох вэ?

БелСУ-ын инженерийн сургуульд робот угсрах, програмчлахыг заадаг анги байдаг. 2017 онд Белгород хотод Quantorium нээгдэж, есөн настайгаасаа эхлэн сургуулийн хүүхдүүдэд робот техник заадаг.

Жинхэнэ роботчин болохын тулд та робот техникийн тэнхимд элсэх боломжтой. Белгород хотод ийм хүмүүс хараахан байдаггүй, гэхдээ BSTU-д байдаг. Шухов техникийн кибернетикийн тэнхимтэй. Түүний шавь нар бүх Оросын робот техникийн тэмцээнд шагналт байр эзэлдэг.

Бие дааж сурах боломжтой юу?

Тиймээ. Интернетэд роботыг юу бүтээх, хэрхэн програмчлах талаар сурах олон эх сурвалжууд байдаг.

Робот ашигтай байх болов уу?

Үүнийг өдөр тутмын ажилд дасан зохицож, гэрт туслах ажилтан болгож болно. Гэрийн зохион бүтээгчид бин жигнэх, орон сууц цэвэрлэх роботуудыг хэрхэн бүтээдэг тухай олон жишээ интернетэд байдаг.

Та робот бүтээх амжилтаа хэрхэн батлах вэ?

RoboFest зэрэг тэмцээнд оролцоорой. Нас, чиглэлээс шалтгаалаад нэр дэвшдэг. Үндсэндээ роботын төрөл бүр нь даалгавраа гүйцэтгэдэг замтай байдаг: шоо шүүрэх эсвэл шугам зурах. Төслийн танилцуулга, механизмын ажиллагааг шүүгчид үнэлдэг статик системүүд бас байдаг.

Дүрмээр бол оролцогчид угсарсан роботтой тэмцээнд ирдэг бөгөөд бэлтгэлийн үеэр зөвхөн мэдрэгч тохируулах, програмыг тохируулахад цаг зарцуулдаг.

Редакторууд материалыг бүтээхэд тусалсан RoboFest 2018-д оролцогчдод талархал илэрхийлье. Дмитрий Агафонов, Дмитрий Чернов, Антон ПершинаТэгээд Данила Мигрина.

Наталья Малыхина

Өнөөдөр бид мөчлөгийн талаар ярих болно. Цикл гэж юу болох, Роботдоо циклийн алгоритмыг хэрхэн зааж сургах талаар олж мэдье.

Тэгэхээр, мөчлөг гэж юу вэ? Бид ангид байна гэж төсөөлөөд үз дээ биеийн тамирмөн бидний өмнө даалгавар байна 7 суулт хийх. Энэ даалгаврыг шугаман алгоритм хэлбэрээр бичиж болох бөгөөд дараа нь иймэрхүү харагдах болно.

суулт хийх

суулт хийх

суулт хийх

суулт хийх

суулт хийх

суулт хийх

суулт хийх

Өөрөөр хэлбэл, бид "хөлсөх" командыг 7 удаа давтсан. 7 ижил команд бичих нь утга учиртай юу? Тушаал өгөх нь илүү хялбар байж магадгүй юм 7 суулт хийх? Мэдээжийн хэрэг, энэ нь илүү энгийн бөгөөд зөв юм. Энэ бол мөчлөг юм. Амьдралын мөчлөгийн жишээг та өөрөө санаж болно - тэдгээр нь маш олон байдаг.

Тиймээс шугаман алгоритм , ижил тушаалууд давтагдсан тохиолдолд бид зохион байгуулж болно мөчлөгийн алгоритм болгон- ингэж:

7 удаа давтана

суулт хийх

мөчлөгийн төгсгөл

Ингэж бид өөрсдийн зохион бүтээсэн хэлээрээ циклийг зохион бүтээсэн. Робот гүйцэтгэгч нь мөн мөчлөг бичих чадвартай. Түүнээс гадна, мөчлөгүүд өөр өөр байдаг. Бидний сая үзсэн хувилбарыг нэрлэсэн тоолууртай гогцооэсвэл параметр бүхий гогцоо.

Циклийн төрлүүд.

Тоолууртай гогцоо.

Тоолууртай гогцооХэдэн давталт хийх шаардлагатайг урьдчилан мэдэж байсан тохиолдолд хэрэглэнэ. Дээрх squats-ийн жишээн дээр яг ийм байна.

Гүйцэтгэгчийн тоолууртай гогцоо бичихийн тулд та түүний синтаксийг мэдэх хэрэгтэй. Тэгээд тэр ийм байна:

nc<давталтын тоо> удаа

<команда 1>

<команда 2>

<команда n>

Энд бид давталтын тоо (тоо) болон давтагдах тушаалуудыг зааж өгөх ёстой. Гогцоонд давтагдах командуудыг дуудна гогцооны бие.

Үүнийг жишээгээр харцгаая.

Эхэндээ робот зүүн дээд нүдэнд байсан.

Эхлээд шугаман аргаар асуудлыг шийдье. Энэ тохиолдолд бид одоогийн нүдийг будаж, 1 нүдийг баруун тийш шилжүүлэх бөгөөд програм дараах байдлаар харагдах болно.
робот ашиглах
alg
эхлэл

будна

зөв

будна

зөв

будна

зөв

будна

зөв

будна

зөв

будна

зөв

будна

зөв

Таны харж байгаагаар будах, баруун тийшээ хийх командууд 7 удаа давтагдана. Одоо програмыг давталт ашиглан дахин бичье. Дашрамд хэлэхэд, хөтөлбөртөө цикл оруулахын тулд цэс рүү очиж болно Оруулахзүйл сонгох tsk-tsk-tskэсвэл товчлууруудын аль нэгийг нь дарна уу Эск, П(Оросын R үсэг) эсвэл Эск, Х(Латин H үсэг). Түүнээс гадна товчлууруудыг дараалан дарах ёстой- эхлээд Esc, үүнийг суллаад дараа нь P эсвэл H.

Тэгэхээр энд манайх байна давталтын програмиймэрхүү харагдах болно:

робот ашиглах

nts 7 удаа

будна

зөв

Хэрэв бид үүнийг ажиллуулбал үр дүн нь ижил байх болно - 7 дүүргэсэн нүд. Гэсэн хэдий ч, програм нь алгоритмын үүднээс богино бөгөөд илүү ухаалаг болсон!

Бие халаалт, бататгах үүднээс Роботын программыг өөрөө бичихийг санал болгож байна, энэ нь 7 нүдтэй дөрвөлжин зурах болно. Мэдээжийн хэрэг, гогцоо ашиглан. Би тайлбар дээр шийдлийг хүлээж байна.

Нөхцөлт гогцоо.

Компьютерийн шинжлэх ухааны Улсын мэдээлэл зүйн академийн 19-р бодлогыг роботоор шийдвэрлэхэд тоолууртай гогцоо ашиглах боломжгүй болно. Талбай нь дүрмээр бол төгсгөлгүй, хана нь тодорхой урттай байдаггүй. Тиймээс бид тоолууртай давталтын тоог тодорхойлох боломжгүй болно. Гэхдээ энэ нь хамаагүй - энэ нь бидэнд туслах болно нөхцөл бүхий гогцоо.

Биеийн тамирын хичээлд буцаж очоод асуудлыг өөрчилье. Эцсийн эцэст, хэн нэгэн нь 7 squat хийж чадахгүй байж магадгүй бол өөр нэг нь 27. Цикл үүсгэх үед үүнийг анхаарч үзэх боломжтой юу? Мэдээж. Зөвхөн одоо бид тоолуур (давталтын тоо) биш харин нөхцөлийг ашиглах болно. Жишээлбэл, ядрах хүртлээ squat хийх. Энэ тохиолдолд тухайн хүн тодорхой тооны суулт хийхгүй, харин ядрах хүртлээ бөхийх болно. Мөн хийсвэр хэл дээрх бидний мөчлөг дараах хэлбэрийг авна.

Баяртай ядарсан биш

суулт хийх

мөчлөгийн төгсгөл

Бидний хувьд үгс нь ядарсан биш - энэ бол нөхцөл юм. Үнэн бол гогцоо гүйцэтгэгдэнэ. Хэрэв энэ нь худал (ядарсан) байвал гогцооны биеийг гүйцэтгэхгүй. Робот тоглогч хэд хэдэн нөхцөлтэй байдаг

дээр нь үнэгүй

доороос үнэгүй

чөлөөтэй орхисон

баруун талд үнэгүй

дээрх хана

доорх хана

зүүн хана

баруун талд хана

Гэхдээ ТЕГ-ын 19-р даалгаврын нөхцөлд зөвхөн эхний 4-ийг зааж өгсөн тул бид зөвхөн тэдгээрийг ашиглах болно.

Одоо роботын дараагийн даалгаврыг шийдье - зурах босоо шугамТалбайн зүүнээс баруун хил хүртэл би нөхцөл бүхий гогцоо ашигладаг. Эхлээд робот нь зүүн дээд буланд байрладаг.

Эхлээд аман алгоритмыг томъёолъё, өөрөөр хэлбэл Робот юу хийх ёстойг үгээр тайлбарлая. Энэ алгоритм нь иймэрхүү сонсогдох болно:

« Баруун талд чөлөөтэй зай байгаа бол баруун тийш алхам алхаж, нүдийг будна »

Үүний үр дүнд Робот баруун талд байгаа бүх нүднүүдийг дундуур нь гүйж, баруун талд хана байх хүртэл тэдгээрийг будна.

Манай роботын програмын эх код нь дараах байдалтай байна.

робот ашиглах

nts эрх одоогоор үнэ төлбөргүй байна

зөв

будна

Энэ програмыг ажиллуулсны үр дүнд бид дараах зургийг харах болно.

Шүтээн хөтөлбөр

Гүйцэтгэгч робот


Робот жүжигчин гэж хэн бэ?

  • Бид Робот гэж нэрлэх тодорхой объект байгаа алаг талбарыг (албан хээтэй дэвтэрийн хуудас гэх мэт) төсөөлөөд үз дээ. Тусгай тушаалуудыг ашиглан бид энэ роботыг удирдаж, нүднүүдийг тойрон хөдөлгөж, нүдийг нь будаж болно. Ихэнх тохиолдолд бидний даалгавар бол роботын тодорхой эсүүдийг зурах програм бичих явдал юм.

Жүжигчин роботын шүтээн орчинг бүрдүүлж байна

  • Гаргасан Idol хөтөлбөр иймэрхүү харагдаж байна.

Робот эхлүүлэх орчин

  • Програмын гүйцэтгэлийг эхлүүлэхийн өмнө Робот гүйцэтгэгчийг эхлүүлэх орчныг тохируулах шаардлагатай. Энэ нь Роботыг хүссэн байрлалдаа байрлуулах, хана байрлуулах, шаардлагатай нүдийг будах гэх мэт. Энэ алхам нь маш чухал юм. Хэрэв та үүнийг үл тоомсорловол програм зөв ажиллахгүй эсвэл бүр сүйрч магадгүй юм.

дарна уу Орчноо засах



Гүйцэтгэгч робот. Энгийн командууд.

  • дээш
  • доош
  • зүүн
  • зөв
  • будна

Эдгээр тушаалуудыг гүйцэтгэх үр дүн нь нэрнээс нь тодорхой харагдаж байна:

  • дээш - роботыг нэг нүдэн дээр хөдөлгөнө
  • доош - роботыг нэг нүдээр доошлуул
  • зүүн - роботыг нэг нүдээр зүүн тийш шилжүүлнэ
  • баруун - Роботыг нэг нүдээр баруун тийш шилжүүлнэ
  • будах - одоогийн нүдэн дээр будах (робот байрлах нүд).

Алгоритмын жишээ

  • Эхлээд та хэллэгийг бичих хэрэгтэй:
  • ашиглах Робот

Хэрэв та хэдэн нүдийг будах шаардлагатайг мэдэж байгаа бол шийдлийн алгоритм дараах байдалтай байна!


Даалгавар №1

  • Хэдэн нүдийг сүүдэрлэх шаардлагатайг мэдэж байгаа бол дараах асуудлыг шийдэх програм бич

Цикл

  • 1. Тоолууртай гогцоо Хэдэн давталт хийх шаардлагатайг урьдчилан мэдэж байсан тохиолдолд хэрэглэнэ.

nc удаа

кт

Энд бид давталтын тоо (тоо) болон давтагдах тушаалуудыг зааж өгөх ёстой. Гогцоонд давтагдах командуудыг дуудна мөчлөгийн бие.



Даалгавар №2

  • Тоолууртай гогцоо ашиглан дараах асуудлыг шийдэх програм бич

  • 2. Нөхцөлтэй давталт - нөхцөл үнэн байхад гогцоо хангагдана, худал бол хангагдахгүй
  • Робот тоглогч хэд хэдэн нөхцөлтэй байдаг

дээр нь үнэгүй

доороос үнэгүй

чөлөөтэй орхисон

баруун талд үнэгүй

дээрх хана

доорх хана

зүүн хана

баруун талд хана

  • Таны ашиглаж болох хэсгүүд: БИШ, БА, ЭСВЭЛ

Нөхцөлт давталтын бүтэц

одоохондоо nts баруун талд үнэгүй

зөв

будна

кт



Даалгавар №3

  • Дараах асуудлыг нөхцөлт гогцоо ашиглан шийдэх програм бич.

Даалгавар No4

  • Дараах асуудлыг нөхцөлт гогцоо ашиглан шийдэх програм бич.



Асуудал шийдэх:

  • 2. Роботыг анхны байрлалаас эцсийн байрлал руу шилжүүлж, ханыг будах ёстой


Даалгавар №5

  • Төгсгөлгүй талбар дээр хэвтээ хана бий. Хананы урт нь тодорхойгүй байна. Робот нь хананы дээд талд зүүн үзүүрт байрладаг. Зурагт роботын байршлыг хананд харьцах байршлыг харуулав (роботыг "P" үсгээр тэмдэглэсэн):

5-р даалгаврын хариулт

  • ncхараахан болоогүй байна (доод нь үнэгүй)

будна

Циклийн эхлэл (nc) ба нөхцөл (хараахан болоогүй (доороос чөлөөтэй)) нэг мөрөнд бичигдэнэ.



Дизайн Хэрэв

  • дээд үнэгүй доод үнэгүй зүүн чөлөөтэй баруун үнэгүй
  • Эдгээр тушаалуудыг нөхцөлтэй хамт ашиглаж болно "Хэрэв", дараах хэлбэртэй байна:
  • Хэрэв нөхцөл Тэр
  • тушаалын дараалал
  • Жишээлбэл, баруун талд хана байхгүй бол нэг нүдийг баруун тийш зөөж, нүдийг будахын тулд та дараах алгоритмыг ашиглаж болно.
  • хэрэв эрх чөлөөтэй бол
  • зөв
  • будна

Даалгавар №7

Хананы урт нь тодорхойгүй байна.


7-р даалгаврын хариулт

дээд хэсэг нь чөлөөтэй болтол

будна

зөв

дээд хэсэг нь чөлөөтэй байхад

зөв

баруун талд үнэгүй байхад

будна

зөв

баруун талд хараахан чөлөөтэй болоогүй байна

будна

доош

баруун талд үнэгүй байхад

доош

баруун талд хараахан чөлөөтэй болоогүй байна

будна

доош


Даалгавар №8

Хананы урт нь тодорхойгүй байна.

Хана бүр яг нэг гарцтай, гарцын яг байршил, өргөн нь тодорхойгүй байна.


8-р даалгаврын хариулт

дээд хэсэг нь чөлөөтэй байхад

дээд хэсэг нь чөлөөтэй болтол

будна

дээд хэсэг нь чөлөөтэй байхад

дээд хэсэг нь чөлөөтэй болтол

будна

доод хэсэг нь чөлөөтэй болтол

будна

доод хэсэг нь чөлөөтэй байхад

доод хэсэг нь чөлөөтэй болтол

будна


Даалгавар №9

Хананы урт нь тодорхойгүй байна.

Хана бүр яг нэг гарцтай, гарцын яг байршил, өргөн нь тодорхойгүй байна.


9-р даалгаврын хариулт

доод хэсэг нь чөлөөтэй байхад

доод хэсэг нь чөлөөтэй болтол

будна

доод хэсэг нь чөлөөтэй байхад

доод хэсэг нь чөлөөтэй болтол

будна

дээд хэсэг нь чөлөөтэй болтол

будна

дээд хэсэг нь чөлөөтэй байхад

дээд хэсэг нь чөлөөтэй болтол

будна


Даалгавар №10

Хананы урт нь тодорхойгүй байна.

Хана бүр яг нэг гарцтай, гарцын яг байршил, өргөн нь тодорхойгүй байна.


10-р даалгаврын хариулт

зүүн тал нь чөлөөтэй байхад

зүүн тал нь чөлөөтэй байхад

будна

зүүн тал нь чөлөөтэй байхад

зүүн тал чөлөөтэй болтол

будна

баруун талд хараахан чөлөөтэй болоогүй байна

будна

баруун талд үнэгүй байхад

баруун талд хараахан чөлөөтэй болоогүй байна

будна


Даалгавар №11

Хананы урт нь тодорхойгүй байна.

Хана бүр яг нэг гарцтай, гарцын яг байршил, өргөн нь тодорхойгүй байна.


11-р даалгаврын хариулт

дээд хэсэг нь чөлөөтэй болтол

дээд хэсэг нь чөлөөтэй болтол

будна

доод хэсэг нь чөлөөтэй байхад

дээд хэсэг нь чөлөөтэй болтол

будна


Даалгавар №12

Төгсгөлгүй талбай дээр шат байдаг. Шат эхлээд баруунаас зүүн тийш, дараа нь зүүнээс баруун тийш бууна. Алхам бүрийн өндөр нь нэг квадрат, өргөн нь хоёр квадрат байна. Робот нь шатны дээд шатны баруун талд байрладаг. Зүүн тийш чиглэсэн алхмуудын тоо, баруун тийш чиглэсэн алхамуудын тоо тодорхойгүй байна. Зурагт шат болон роботыг байрлуулах боломжит аргуудын нэгийг харуулав (Роботыг "P" үсгээр тэмдэглэсэн).


12-р даалгаврын хариулт

Бид шатны уулзварт хүрэх хүртлээ шатаар доошоо баруунаас зүүн тийш хөдөлнө.

nts доод хэсэг нь одоохондоо үнэгүй

доош

зүүн

зүүн

Бид уруудах шатны төгсгөл хүртэл доошоо хөдөлж, зам дагуу шаардлагатай эсүүдийг будна.

nts зүүн талд хараахан чөлөөтэй биш байна

будна

зөв

будна

зөв

доош



13-р даалгаврын хариулт

nts зүүн хэсэг одоохондоо үнэгүй

будна

зүүн

дээш

nts зүүн талд хараахан чөлөөтэй биш байна

будна

дээш


Даалгавар №14

Хязгааргүй талбар дээр ханаар хүрээлэгдсэн тэгш өнцөгт байдаг. Тэгш өнцөгтийн талуудын урт нь тодорхойгүй байна. Робот нь тэгш өнцөгт дотор байрладаг. Зурагт хана болон роботыг байрлуулах боломжит аргуудын нэгийг харуулав (Роботыг "P" үсгээр тэмдэглэсэн).


14-р даалгаврын хариулт

баруун талд үнэгүй байхад

зөв

дээд хэсэг нь чөлөөтэй байхад

дээш

будна

nts зүүн хэсэг одоохондоо үнэгүй

зүүн

будна



15-р даалгаврын хариулт

баруун талд үнэгүй байхад

будна

зөв

доод хэсэг нь чөлөөтэй байхад

будна

доош

будна

хараахан болоогүй байна (доод нь үнэгүй)

зүүн

доош

хараахан болоогүй байна (баруун талд үнэгүй)

будна

доош

будна

зөв

хараахан болоогүй байна (дээд талд нь үнэгүй)

будна

зөв



16-р даалгаврын хариулт

баруун талд хараахан чөлөөтэй болоогүй байна

будна

доош

будна

зөв

дээд хэсэг нь чөлөөтэй болтол

будна

зөв

дээд хэсэг нь чөлөөтэй байхад

дээш

баруун талд үнэгүй байхад

будна

зөв

баруун талд хараахан чөлөөтэй болоогүй байна

будна

доош