Цээжний ясны уусмал паскал. Карибын тэнгисийн дээрэмчид: Зөвлөл (Тоглоомын зөвлөмж, тактик). C# програмчлал

9-8+76-5+4+3+21 = 100

Бүгдийг нь ол боломжит сонголтуудийм илэрхийллүүд.

Даалгавар 8.Тэг болон нэгээр дүүрсэн хоёр хэмжээст массив өгөгдсөн. Нэгжээр дүүргэсэн хамгийн том талбайтай тэгш өнцөгтийг ол.

Тэгш өнцөгтүүдийн талбай нь хамгийн дээд хэмжээнээс (бүх массив) хамгийн бага (нэг 1-ээс бүрдэх тэгш өнцөгт) хүртэл хэлбэлздэг. Тодорхой талбайн тэгш өнцөгт бүрийг янз бүрийн аргаар барьж болно. S талбайн хувьд хүчинтэй тэгш өнцөгт нь хажуугийн үржвэр нь S-тэй тэнцүү байна. Талбайн утга бүрийн хувьд тэгш өнцөгт байгуулах бүх боломжит аргуудыг давтах ёстой. Тодорхой талбай, хэлбэрийн тэгш өнцөгт бүрийг массив дотор янз бүрийн аргаар байрлуулж болно. Илүү нарийвчлалтайгаар түүний зүүн дээд орой нь массивын өөр өөр цэгүүдэд байрлаж болно. Тиймээс тодорхой талбай, хэлбэрийн тэгш өнцөгтийн хувьд бид бүх боломжит байршлыг давах ёстой.

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

1. Хэрэв талбайг хамгийн ихээс хамгийн бага хүртэл эрэмбэлсэн бол эхний олдсон тэгш өнцөгт нь хүссэн тэгш өнцөгт байх болно.

2. Тодорхой талбай, хэлбэрийн тэгш өнцөгт нь массивын аль ч байрлалд багтахгүй.

Эдгээр мэдэгдлийн нягтлан бодох бүртгэл нь хөтөлбөрийг маш ноцтой хурдасгахад хүргэдэг.

Даалгавар 9. "Вирус"Эсийн колони нь N(N) дарааллын квадрат матриц юм< 500). В колонию проникает M (M < 11) вирусов, которые поражают клетки с координатами (X1, Y1), ... (Xm, Ym). За одну единицу времени вирус проникает в клетки, соседние с зараженными (соседними считаются клетки, имеющие общую сторону). Требуется написать программу, которая определит время заражения всей колонии. Графически показать процесс заражения.

Даалгавар 10. "Цээжний Билли Бонсын"Билли Бонс авдарт хэдэн алтан зоос хийв. Хоёр дахь жилдээ тэр авдарнаас хэдэн зоос гаргаж ирэв. Гурав дахь жилээс эхлэн тэрээр хоёр жилийн өмнөх авдарт байсан зоосыг нэмсэн.

Эхний болон хоёр дахь жилдээ авдар дахь зоосны тоог тодорхойлдог программ бичих шаардлагатай. X-р жиляг Y зоос байсан. (3<=X<=20) и Y (1<=Y<=32767).

Тайлбар: Хэрэв та эхний жилдээ 5 зоос хийж, хоёр дахь жилдээ 3 зоос гаргавал эхний жилээс эхлэн авдарт 5, 2, 7, 9, 16, 25, ... зоос байх болно. .


Хавсралт 1. Удирдлагын хэрэгслийн шинж чанар

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

Үл хөдлөх хөрөнгө Тайлбар
Нэр Удирдлагын нэрийг авна эсвэл тохируулна. Энэ өмчийн утгыг тухайн объектыг нэрээр нь дурдахын тулд программд ашигладаг.
хэмжээ Удирдлагын хэмжээг авна эсвэл тохируулна. Энэ шинж чанар нь өндөр ба өргөнийг тусад нь тохируулахын оронд өндөр ба өргөнийг (пикселээр) нэгэн зэрэг тохируулах боломжийг олгодог.
Өндөр Удирдлагын өндрийг авах буюу тохируулна.
Өргөн Удирдлагын өргөнийг авах буюу тохируулна.
байршил Контейнерын зүүн дээд буланд хамаарах удирдлагын зүүн дээд булангийн координатыг авах буюу тохируулна.
Док Эцэг эхийн хяналтын хэмжээг өөрчлөх үед удирдлагын хэмжээ автоматаар хэрхэн өөрчлөгдөхийг тодорхойлоход ашигладаг. Жишээлбэл, Dock шинж чанарыг DockStyle.Left гэж тохируулснаар удирдлага нь эцэг эхийн удирдлагын зүүн талд зэрэгцэж, эцэг эхийн хяналтын хэмжээг өөрчлөх үед хэмжээг өөрчлөхөд хүргэдэг. Тайлбар: Anchor болон Dock шинж чанарууд нь бие биенээ үгүйсгэдэг. Тэдгээрийн зөвхөн нэгийг нь нэгэн зэрэг тохируулах боломжтой бөгөөд энэ нь давуу тал болно.
Зангуу Удирдлагын холбогдсон контейнерийн хязгаарыг авах буюу тохируулах ба түүний эцэг эхийн хэмжээг өөрчлөх үед хяналтын хэмжээ хэрхэн өөрчлөгдөхийг тодорхойлно. Удирдлага нь нэг буюу хэд хэдэн контейнерийн хил дээр бэхлэгдэж болно. Жишээлбэл, хэрэв танд Anchor шинж чанарыг Дээд ба Доод гэж тохируулсан Button объекттой Form объект байгаа бол Form объектын Height шинж чанарын утга нэмэгдэхийн хэрээр Button объект нь Form объектын дээд ба доод хүрээ хүртэлх зайг хадгалахын тулд сунадаг. . Тайлбар: Anchor болон Dock шинж чанарууд нь бие биенээ үгүйсгэдэг. Тэдгээрийн зөвхөн нэгийг нь нэгэн зэрэг тохируулах боломжтой бөгөөд энэ нь давуу тал болно.
маржин Удирдлагын хоорондох зайг авах буюу тохируулна. Хяналтууд нь Windows UI удирдамжтай нэлээд ойрхон Margin шинж чанартаа өгөгдмөл утгыг авдаг. Тодорхой хэрэглээний хувьд зарим тохируулга шаардлагатай хэвээр байж магадгүй.
арын өнгө Удирдлагын дэвсгэр өнгийг авах буюу тохируулна. BackColor шинж чанар нь гадаад шинж чанар юм.
Урд өнгө Удирдлагын нүүрэн талын өнгийг авах буюу тохируулна. ForeColor шинж чанар нь гадаад шинж чанар юм.
Фонт Удирдлагаар харуулсан текстийн фонтыг авах буюу тохируулна. Та Font шинж чанарын бие даасан элементүүдийг өөрчлөх боломжгүй - та зөвхөн шаардлагатай параметрүүдтэй шинэ Font объект үүсгэж, үүнийг Font шинж чанарт оноож болно. Font шинж чанар нь гадаад шинж чанар юм. Гадны шинж чанар нь (хэрэв тохируулаагүй бол) эцэг эхийн хяналтаас авсан хяналтын шинж чанар юм.
Текст Энэ удирдлагатай холбоотой текстийг авах буюу тохируулна. Удирдлагын Text шинж чанарыг үүсмэл анги тус бүр өөр өөрөөр ашигладаг. Жишээ нь, Form объектын Text шинж чанар нь маягтын дээд хэсэгт байрлах гарчгийн мөрөнд гарч ирэх ба цөөн тооны тэмдэгт агуулсан бөгөөд ихэвчлэн програм эсвэл баримт бичгийн нэрийг харуулдаг. Гэсэн хэдий ч RichTextBox-ийн Text шинж чанар нь том хэмжээтэй байж болох бөгөөд текстийг форматлахад ашигладаг олон үл үзэгдэх тэмдэгтүүдийг агуулж болно. Жишээлбэл, RichTextBox объектод харуулсан текстийг Фонтын шинж чанарыг тохируулах, эсвэл текстийг зэрэгцүүлэхийн тулд хоосон зай эсвэл таб нэмэх замаар форматлаж болно.
TextAlign Удирдлагын текстийн зэрэгцүүлэлтийг авах буюу тохируулна.
Идэвхжүүлсэн Удирдлага нь хэрэглэгчийн үйлдэлд хариу өгөх боломжтой эсэхийг харуулах утгыг авах буюу тохируулна. хэрэв удирдлага нь хэрэглэгчийн үйлдэлд хариу өгөх боломжтой бол үнэн; өөрөөр хэлбэл, утга нь худал байна. Өгөгдмөл утга нь үнэн. Та Enabled шинж чанарыг ашиглан удирдлагыг ажиллуулах үед идэвхжүүлж эсвэл идэвхгүй болгож болно. Жишээлбэл, та өгөгдсөн програмын төлөвт хамаарахгүй хяналтыг идэвхгүй болгож болно. Та мөн ашиглалтыг хязгаарлахын тулд хяналтыг идэвхгүй болгож болно. Жишээлбэл, хэрэглэгч товчлуур дээр дарж чадахгүй байхын тулд товчлуурыг идэвхгүй болгох боломжтой. Хэрэв хяналт идэвхгүй бол түүнийг сонгох боломжгүй.
харагдахуйц Удирдлага болон түүний бүх хүүхэд удирдлага харагдах эсэхийг харуулах утгыг авах буюу тохируулна. хэрэв удирдлага болон түүний бүх хүүхэд удирдлага гарч ирвэл үнэн; өөрөөр хэлбэл, утга нь худал байна. Өгөгдмөл утга нь үнэн. Visible-г үнэн гэж тохируулсан ч удирдлага нь бусад удирдлагын ард байгаа тохиолдолд хэрэглэгчдэд харагдахгүй байж болохыг анхаарна уу.
Эд зүйлс Та энэ өмчийг ашиглан удирдлагад (ListBox гэх мэт) хадгалагдаж байгаа зүйлсийн жагсаалтын лавлагааг авах боломжтой. Та энэ холбоосыг ашиглан зүйл нэмэх, хасах, цуглуулгад байгаа зүйлийн тоог тодорхойлох боломжтой.


Хавсралт 2. Хяналтын үйл явдлууд

Үйл явдал Тайлбар
ачаалал Удирдлагыг (ихэвчлэн маягт) анх харуулахаас өмнө тохиолддог.
хэмжээг өөрчлөх Удирдлагын (маягт гэх мэт) хэмжээг өөрчлөх үед үүсдэг.
хөдөл Удирдлагыг шилжүүлэх үед тохиолддог.
дарна уу Удирдлага дээр дарахад тохиолддог. Click үйл явдал нь EventArgs объектыг өөрийн үйл явдал зохицуулагч руу дамжуулж, зөвхөн товшилт хийгдсэнийг илтгэнэ. Хэрэв танд хулганы талаар илүү нарийн мэдээлэл хэрэгтэй бол (товчлуур, товшилтын тоо, дугуйны эргэлт эсвэл байрлал) MouseClick үйл явдлыг ашиглах хэрэгтэй. Гэсэн хэдий ч товчлуур дарах зэрэг хулганаар товшилт хийгдээгүй тохиолдолд MouseClick үйл явдал идэвхгүй болно. Оруулна уу.
хоёр дарж Удирдлага дээр давхар товших үед тохиолддог. Давхар товшилтыг хэрэглэгчийн үйлдлийн систем дэх хулганы тохиргоогоор тодорхойлно. Хэрэглэгч хоёр тусдаа товшилтоор бус хоёр товшилт гэж үзэхийн тулд хулганы товшилтын хоорондох хугацааг тохируулах боломжтой. Удирдлагыг давхар товших болгонд Click үйл явдал нэмэгддэг. Жишээлбэл, хэрэв танд Форм объектын Click болон DoubleClick үйл явдлуудын зохицуулагч байгаа бол маягтыг давхар товшиж, хоёр аргыг дуудах үед Click болон DoubleClick үйл явдлууд идэвхждэг. Хэрэв хяналтыг давхар товшиж, хяналт нь DoubleClick үйл явдлыг дэмждэггүй бол Click үйл явдлыг хоёр удаа нэмэгдүүлж болно.
хулгана товш Удирдлагыг хулганаар дарахад тохиолддог. Хэрэв та курсор удирдлага дээр байх үед хулганы товчийг дарвал тухайн удирдлагад дараах үйл явдлын дараалал ихэвчлэн тохиолддог: · MouseDown үйл явдал. · Үйл явдлыг дарна уу. · MouseClick үйл явдал. · MouseUp үйл явдал.
MouseDoubleClick Удирдлагыг хулганаар давхар товших үед тохиолддог. MouseDoubleClick үйл явдал нь курсор удирдлага дээр байх үед хэрэглэгч хулганы товчийг хоёр удаа хурдан дарахад үүсдэг. Хулганы нэг товшилтыг давхар товшилтоос ялгах хугацааны интервалыг үйлдлийн систем дэх хулганы тохиргоогоор тодорхойлно. Хэрэглэгч ийм үйлдэл хийх үед удирдлага нь дараах үйл явдлын дарааллыг үүсгэдэг: · MouseDown үйл явдал. · Үйл явдлыг дарна уу. · MouseClick үйл явдал. · MouseUp үйл явдал. · MouseDown үйл явдал. · DoubleClick үйл явдал. · MouseDoubleClick үйл явдал. · MouseUp үйл явдал.
Хулганы доош Хулганы заагч удирдлага дээр байх үед хулганы товчийг дарахад тохиолддог.
хулгана Хулганы заагч удирдлага дээр байх үед хулганы товчийг суллахад тохиолддог.
Хулганы хөдөлгөх Хулганы заагч удирдлага дээр шилжих үед тохиолддог. Ихэвчлэн MouseMove үйл явдлыг ашиглах нь удирдлагын өнгийг өөрчлөх эсвэл удирдлагын эргэн тойронд өргөгдсөн тэгш өнцөгтийг зурах болно.
Хулгана орхи Хулганы заагч удирдлагаас гарах үед тохиолддог.
товчлуур дарах Удирдлага нь фокустай байхад товчлуур дарахад тохиолддог. KeyPress үйл явдлыг зөвхөн тэмдэгтийн товчлуур дээр дарснаар л гаргана. Үлдсэн товчлуурууд нь KeyDown болон KeyUp үйл явдлуудыг нэмэгдүүлдэг. KeyChar шинж чанар нь ажиллах үед товчлуурын даралтын хэв маягийг сонгох, стандарт товчлуурын дэд багцыг ашиглах эсвэл өөрчлөхөд ашиглагддаг. Гарны үйл явдлыг бусад удирдлагад гарны үйл явдлыг хүлээн авахыг зөвшөөрөхгүйгээр зөвхөн маягтын түвшинд зохицуулахын тулд та маягтын KeyPress үйл явдлыг зохицуулах арга дахь KeyPressEventArgs.Handled шинж чанарыг үнэн болгох ёстой. Товчлуур дарах үйл явдлууд дараах дарааллаар явагдана. 1.KeyDown 2.KeyPress 3.KeyUp
товчийг доош Удирдлага нь фокустай байхад товчлуур дарахад тохиолддог. Гарны үйл явдлыг бусад удирдлагад гарны үйл явдлыг хүлээн авахыг зөвшөөрөхгүйгээр зөвхөн маягтын түвшинд зохицуулахын тулд та маягтын KeyPress үйл явдлыг зохицуулах арга дахь KeyPressEventArgs.Handled шинж чанарыг үнэн болгох ёстой. Зарим түлхүүрүүд дуртай Таб, Оруулна уу, Зугтахболон сумтай товчлууруудыг удирдлага автоматаар удирддаг.
түлхүүрээ гарга Удирдлага нь фокустай байхад товчлуурыг суллах үед тохиолддог.
Оруулна уу Удирдлагыг оруулах үед (фокусыг хүлээн авах үед) тохиолддог. Гар ашиглан фокусыг өөрчлөх үед ( Таб, Shift+Tabгэх мэт), фокусын үйл явдлууд дараах дарааллаар явагдана: 1. Оруулах 2. GotFocus 3. Гарах 4. Баталгаажуулах 5. Баталгаажсан 6. LostFocus Фокусыг хулганаар өөрчлөх эсвэл Focus аргыг дуудах үед фокусын үйл явдлууд дараах дарааллаар явагдана. . 1. Enter 2. GotFocus 3. LostFocus 4. Leave 5. Validating 6. Validated Enter болон Leave үйл явдлуудыг Form анги дардаг. Form ангид тэд Идэвхжүүлсэн болон Идэвхгүй болгох үйл явдлуудтай тэнцүү байна. Enter, GotFocus, Leave, LostFocus, Validating, эсвэл Validated үйл явдал зохицуулагчаас фокус тохируулах гэж бүү оролдоорой. Энэ нь аппликешн хариу өгөхөө болиход хүргэж болзошгүй.
орхих Оролтын фокус удирдлагаас гарах үед тохиолддог. Enter болон Leave үйл явдлуудыг Form анги дардаг. Form ангид тэд Идэвхжүүлсэн болон Идэвхгүй болгох үйл явдлуудтай тэнцүү байна.
Текст өөрчлөгдсөн Text шинж чанарын утга өөрчлөгдөх үед үүснэ. Энэ үйл явдал нь Text шинж чанарыг программ эсвэл хэрэглэгчийн үйлдлээр өөрчлөх үед тохиолддог.
Будаг Хяналтыг дахин зурах үед тохиолддог.

Хавсралт 3. Утастай ажиллах арга

Арга эсвэл өмч Тайлбар
Харьцуулах() Хоёр мөрийг харьцуулж, эрэмбэлэх дарааллаар тэдгээрийн харьцангуй байрлалыг харуулсан бүхэл тоог буцаана. Параметрийн утга тэнцүү байвал буцаасан тоо тэг болно.
Concat() Хоёр ба түүнээс дээш мөрийг нэг мөрөнд нэгтгэнэ. Үүнд тусгаарлагчийг оруулаагүй болно.
Хуулах() Хуулах() Copy болон CopyTo аргууд нь мөр эсвэл дэд мөрийг өөр тэмдэгт эсвэл Char төрлийн массив руу хуулахад хэрэглэгддэг.
Формат() Заасан форматыг ашиглан мөрийг форматлана. Энэ нь заасан мөр дэх форматын элемент бүрийг харгалзах объектын утгатай эквивалент текстээр солих замаар үүнийг хийдэг.
Нэгдэх() Мөрний массивыг нэг мөр болгон холбох (холбох). Холболт нь массивын элементүүдийн хооронд хязгаарлагч оруулдаг. Join аргын заасан үйлдэл нь Split аргын заасан үйлдлийн урвуу үйлдэл юм.
Урт Мөр дэх тэмдэгтүүдийн тоог буцаадаг шинж чанар.
EndsWith() Мөр нь тодорхой дараалал тэмдэгтээр төгссөн эсэхийг шалгана.
Оруулах() Одоо байгаа мөр рүү шинэ мөр оруулна.
LastIndexOf() Мөр дэх элементийн хамгийн сүүлийн тохиолдлын индексийг буцаана.
PadLeft() Ямар ч хоосон зай эсвэл тусгайлан заасан тэмдэгтүүдийг орхигдуулахгүйгээр мөрийг баруун тийш зөвтгөдөг.
PadRight() Ямар ч хоосон зай эсвэл бусад заасан тэмдэгтүүдийг орхиж, мөрийг зүүн тийш чиглүүлнэ.
Устгах() Мөрөөс заасан тооны тэмдэгтийг устгана.
солих() Өгөгдсөн байрлал дахь дэд мөрийг шинэ дэд мөрөөр солино.
Салгах() Үндсэн массиваас тодорхой тэмдэгтээр тусгаарлагдсан дэд мөрийг буцаана. Split аргын оролт нь нэг буюу хэд хэдэн тэмдэгтийг зааглагч гэж тайлбарладаг. Арга гэж нэрлэсэн string объект нь эдгээр хязгаарлагчаар тусгаарлагдсан дэд мөрүүдэд хуваагдана. Эдгээр дэд мөрүүдээс массив үүсгэж, аргын үр дүнд буцаана. Өөр нэг хэрэгжүүлэлт нь буцаж ирсэн массив дахь элементүүдийн тоог хязгаарлах боломжийг олгодог.
StartsWith() Мөр нь тэмдэгтүүдийн тодорхой дарааллаар эхэлж байгаа эсэхийг тодорхойлно.
дэд мөр() Мөрөөс дэд мөрийг гаргаж авдаг.
ToCharArray() Тэмдэгтүүдийг тэмдэгтийн массив руу хуулна.
ToLower() Мөр дэх тэмдэгтүүдийг жижиг үсэг рүү хөрвүүлнэ.
ToUpper() Мөр дэх тэмдэгтүүдийг том үсэг рүү хөрвүүлнэ.
засах() Мөрийн эхэн ба төгсгөлд заасан тэмдэгтүүдийн бүх тохиолдлыг арилгана.
TrimEnd() Мөрийн төгсгөлд заасан тэмдэгтүүдийн бүх тохиолдлыг арилгана.
TrimStart() Мөрийн эхэнд заасан тэмдэгтүүдийн бүх тохиолдлыг арилгана.

Хавсралт 4. Массивтай ажиллах арга

Арга эсвэл өмч Тайлбар
Concat() Хоёр дарааллыг нэгтгэдэг.
() агуулсан Заасан элемент массив дотор байгаа эсэхийг тодорхойлно.
Хуулах() Одоогийн массивын бүх элементүүдийг өгөгдсөн массив руу хуулна.
GetLength() Өгөгдсөн массив хэмжээс дэх элементийн тоог илэрхийлэх 32 битийн бүхэл тоог авна. GetLength аргын жишээ бол массивын эхний хэмжээс дэх элементийн тоог (жишээ нь, хоёр хэмжээст массив дахь мөрийн тоог) буцаадаг GetLength(0) арга юм.
огтлолцох() Хоёр массиваар дүрслэгдсэн олонлогуудын огтлолцлыг олно.
Урт Массивын бүх хэмжээс дэх элементийн нийт тоог илэрхийлэх бүхэл тоог буцаадаг шинж чанар.
Макс() Массив дахь хамгийн их утгыг буцаана.
Мин() Массив дахь хамгийн бага утгыг буцаана.
урвуу() Массивын элементүүдийн дарааллыг буцаана.
Нийлбэр() Тоон утгуудын дарааллын нийлбэрийг тооцоолно.

Уран зохиол

1. Есипов А.С., Пангина Н.Н., Громада М.И. Мэдээлэл зүй. Ерөнхий боловсролын байгууллагуудад зориулсан даалгавар, шийдлүүдийн цуглуулга. Санкт-Петербург: Шинжлэх ухаан, технологи, 2001. 368 х.

2. Окулов С.М. Алгоритм дахь програмчлал. М .: Бином. Мэдлэгийн лаборатори, 2004. 341 х.

3. Юркин А.Г. Програмчлалын гарын авлага. Санкт-Петербург: Питер, 2002. 192 х.

4. Эндрю Троэлсен. C# 5.0 програмчлалын хэл ба .NET 4.5 платформ. М .: Уильямс. 2013 1312 х.

5. Albahari, J. C# 3.0. Лавлах: Per. англи хэлнээс / Ж.Албахари, Б.Албахари. - 3 дахь хэвлэл. - Санкт-Петербург: BHV-Петербург, 2009. - 944 х.: өвчтэй.

6. Billig V. C# програмчлалын үндэс // Intuit. Шинэчлэгдсэн огноо: 2005.11.22. URL: http://www.intuit.ru/studies/courses/2247/18/info (хандах огноо: 2013-06-27).

7. Pavloskaya T. Дээд түвшний C# хэл дээр програмчлал хийх // Intuit . Шинэчлэгдсэн огноо: 2010.09.15. URL: http://www.intuit.ru/studies/courses/2247/18/info (хандах огноо: 2013-06-27).

8. Е.М.Вихтенко, Програмчлалын олимпиадын геометрийн бодлого. Хэвлэлийн газар MIF-2 №2. 2005 он

9. Липский V. Програмистуудад зориулсан комбинаторик. - М.: Мир, 1988. -200 х.


Боловсролын хэвлэл

ДЭМИН Антон Юрьевич

ДОРОФЕЕВ Вадим Анатольевич

C# ПРОГРАМЧЛАЛ

Заавар

Шүүмжлэгчид

Техникийн шинжлэх ухааны доктор,

ТУСУР "Цахим тооцоолох системийн мэдээллийн нэгдсэн аюулгүй байдлын" тэнхимийн дэд профессор

R.V. Мещеряков

Техникийн шинжлэх ухааны нэр дэвшигч, дэд профессор, тэнхим. "Програмчлал", FPMK, TSU

О.И. Голубева

Компьютерийн зохион байгуулалт БА ТУХАЙ. Овог

Хавтасны дизайн БА ТУХАЙ. Овог

Илүү нарийн төвөгтэй геометрийн асуудлыг шийдэхийн тулд дараахь зүйлийг хийх шаардлагатай.

1) цэг, шугам, шугамын сегмент, тойрог гэх мэт геометрийн объектуудыг хавтгай дээр хэрхэн дүрсэлж байгааг мэдэх (сургуулийн олимпиадын бэлтгэлийн үеэр та өөрийгөө онгоцоор хязгаарлаж болно, гэхдээ сансар огторгуйн талаар мартаж болохгүй);

2) өгөгдсөн хоёр цэгийг холбосон шулуун шугамын тэгшитгэлийг олох чадвартай байх;

3) хоёр шугамын огтлолцох цэгийн координатыг тодорхойлох чадвартай байх;

4) шугамд перпендикуляр зурах, шугамууд параллель байгаа эсэхийг тодорхойлох;

5) скаляр ба вектор үржвэрийг олох чадвартай байх;

6) олон өнцөгтийн талбайг олох;

7) онгоцонд дүрстэй ажиллах чадвартай байх.

Эдгээр ойлголтуудтай холбоотой гол санааг эргэн санацгаая.

x
y
а
б
φ
y 1
y 2
x 1
x 2

Цагаан будаа. 15.1. Векторуудын цэгэн үржвэрийн зураг

Скаляр бүтээгдэхүүнхоёр вектор нь эдгээр векторуудын модулиудын үржвэр ба тэдгээрийн хоорондох өнцгийн косинустай тэнцүү тоо юм, ( а,б)=|а| ∙ |б| ∙ cos ϕ. Хэрэв вектор акоординаттай ( x 1 , y 1) ба вектор бкоординат - ( x 2 , y 2), дараа нь скаляр үржвэрийг томъёогоор тооцоолно ( а,б)=x 1 ∙ x 2 + y 1 ∙ y 2 .

Хэрэв φ өнцөг хурц байвал скаляр үржвэр ( а,б)>0, хэрэв φ өнцөг нь мохоо бол ( а,б)<0. Если два вектора перпендикулярны, то их скалярное произведение равно нулю.

вектор урлагхоёр вектор аболон бвектор гэж нэрлэдэг [ а× б], ийм байна

урт нь |[ а × б]|=|а| ∙ |б| ∙ нүгэл φ;

вектор [ а× б] нь векторуудад перпендикуляр байна аболон б;

вектор [ а× б] нь төгсгөлөөс нь хамгийн богино эргэлттэй байхаар чиглүүлсэн аруу бцагийн зүүний эсрэг явж байгааг харав.

Хөндлөн бүтээгдэхүүний урт нь векторууд дээр баригдсан параллелограммын талбайтай тэнцүү байна аболон б.

Векторуудын координатаар дамжуулан аболон бвектор үржвэрийг дараах байдлаар илэрхийлнэ.

[а× б]= = (y 1 ∙ z 2 – z 1 ∙ y 2) би + (x 1 ∙ z 2 – z 1 ∙ x 2) j+ (x 1 ∙ y 2 – y 1 ∙ x 2) к,

хаана би, j, кнь Ox, Oy, Oz тэнхлэгүүдийн нэгж векторууд юм.

x
y
а
б
α
β

Цагаан будаа. 15.1. Чимэг ажилд зориулсан зураг

Онгоцонд асуудлыг шийдвэрлэхдээ координат z 1 ба z 2 нь тэг. Энэ тохиолдолд [ а× б]=(x 1 ∙ y 2 - x 2 ∙ y 1)∙ к.

Хэрэв вектор а Ox тэнхлэгтэй α өнцөг үүсгэдэг ба вектор бөнцөг β, дараа нь томъёо [ а× б]=(|а| ∙ |б| ∙ нүгэл(β-α)) ∙ к. Энэ нь тэг биш векторуудын хувьд векторууд параллель байвал хөндлөн үржвэр тэг болно гэсэн үг юм. Хэрэв вектороос эргэлт авектор руу бхамгийн бага өнцгийн дагуу цагийн зүүний эсрэг гүйцэтгэнэ, дараа нь [ а× б]>0, хэрэв цагийн зүүний дагуу бол [ а× б]<0.



Шийдэлд скаляр ба вектор үржвэрийг ашигладаг асуудлуудыг авч үзье.

Даалгавар 1 "Зүүн эргэх торгууль". Х хотод жолооч нар зүүн эргэхийг хориглодог. Ийм эргэлт бүрт жолооч М рублийн торгууль төлөх ёстой. Хотын жолооч нарыг тагнаж чагнахын тулд хөдөлгөөний эхэн, төгсгөл, эргэх үед машины координатыг бүртгэдэг компьютерийн системийг суурилуулжээ.

Анхны өгөгдөл: Нсуурин тээврийн хэрэгслийн координатын тоо, ( x i, y i) - хөдөлгөөний явцад машины координат, би=1,2, …, Н, хаана ( x 1 , y 1) - хөдөлгөөний эхлэлийн цэг, ( х Н, yN) нь тээврийн хэрэгслийн замын сүүлчийн цэг юм.

Шаардлагатайхөдөлгөөний координатын өгөгдсөн дарааллын хувьд жолоочийн торгуулийн нийлбэрийг тооцоол.

Машины замыг чиглүүлсэн цэгийн хэсгүүдээс бүрдсэн тасархай шугамаар дүрсэлж болно ( x i, y i) цэгүүдэд ( x i +1, y i +1), би=1,2,…,Н-1. Замын одоогийн сегментийн чиглэлийг зүүн тийш эргүүлсэн гэж үзнэ a i+1 өмнөх сегменттэй харьцуулахад өөрчлөгддөг a iзүүн тийш, өөрөөр хэлбэл. цагийн зүүний эсрэг.

(x i -1, y i -1)
(x i , y i)
(x i+ 1, y i+ 1)
Тиймээс асуудлын шийдэл нь замын хэсгүүдийн хос тоог тооцоолоход багасдаг a iболон a i+1, нөхцөл нь [ a i× a i+1 ]>0. Вектор координат a iболон a i+1-ийг цэгүүдийн координатаар тооцоолно ( x i, y i): a i =(x i - x i -1 , y i - y i -1), a i +1 = (x i +1 - x i, y i +1 - би), Иймээс,

[a i× a i +1 ]= (x i - x i -1) (y i +1 - би) – (y i - y i -1)(x i +1 - x i), би=2, …, Н-1.

Даалгавар 1. Даалгаврыг программчлан хэрэгжүүлэх "Зүүн эргэх торгууль"

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

Анхны мэдээлэл: Нцэцэрлэгт байгаа модны тоо, ( x i, y i) модны координатууд, би=1,2, …, Н. Залуу суулгац тарьсан тул тэдгээрийн зузааныг үл тоомсорлож болно.

Шаардлагатайтарьсан модны алинд нь олс уях ёстойг тодорхойлох, ингэснээр бүх моднууд хашааны бүсэд байх бөгөөд олсны урт нь хамгийн бага байх болно.

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

Бид сегментийн эргэн тойронд цагийн зүүний дагуу гүдгэр их биеийг барина. Хамгийн зүүн талын M 0 цэгийг ол =( x 0 , y 0), x 0 = мин( x i). Хэрэв ийм хэд хэдэн цэг байгаа бол бид тэдгээрийн хамгийн бага хэсгийг авдаг. Энэ цэг нь мэдээжийн хэрэг хүссэн гүдгэр их биенд хамаарна. Анхны векторыг тохируулна уу а 0 цэгээс эхлэн ( x 0 , y 0) Ой тэнхлэгтэй параллель.

Бүрхүүлийн дараагийн цэг нь вектор болох M 1 цэг байх болно а 1-ийн эхлэл нь M 0 цэгт, төгсгөл нь M 1 цэгт анхны векторын хамт үүссэн а 0 хамгийн бага өнцөг. Хэрэв хэд хэдэн ийм цэг байгаа бол хамгийн их зайтай цэгийг сонгоно.

Дараа нь бид үйл явцыг үргэлжлүүлж, өөрөөр хэлбэл, векторын хоорондох хамгийн бага өнцөг бүхий M 2 цэгийг хайж байна а 1 ба вектор а 2 эхлэл нь M 1 цэг дээр төгсгөл нь M 2 цэг дээр, дараа нь M 3 цэг гэх мэт. Эхний сонгосон цэг дээр хүрэх эсвэл бүрхүүл дэх цэгүүдийн тоо тэнцүү болоход бид процессыг зогсооно Н.

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

Даалгавар 2. Даалгаврыг программчлан хэрэгжүүлэх "Энд цэцэрлэгт хот байх болно"

Даалгавар 3"Туулай" . Х хотоос холгүйхэн амьтны хүрээлэн байдаг. Нутгийн оршин суугч, эмх замбараагүй үсэрч байсан туулай өөрийн эзэмшлийн нутаг дэвсгэрийг хамарсан битүү өөрөө огтлолцсон тасархай шугам хэлбэрээр ул мөр үлдээжээ. Энэ нутаг дэвсгэрийг тойрон хүрээлэгдсэн хамгийн жижиг гүдгэр олон өнцөгтийн талбайг ол.

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

Анхны өгөгдөл: Нгүдгэр олон өнцөгтийн оройнуудын тоо, ( x i, y i) оройнуудын координатууд, би=1,2, …, Н.

Шаардлагатайгүдгэр талбайг тодорхойлно Н-гон.

Дөрвөлжин Н-gon-ыг гурвалжны талбайн нийлбэрээр тооцоолж болно, үүнээс Н-гон бүрдсэн. Гурвалжны талбайг олохын тулд бид вектор үржвэрийг ашигладаг. Та бүхний мэдэж байгаагаар векторуудын хөндлөн үржвэрийн урт нь эдгээр векторууд дээр баригдсан гурвалжны талбайгаас хоёр дахин их байна. Гурвалжны оройг A=( цэгүүдэд байрлуулъя. x 1 , y 1), B=( x2, y2), C=( x 3, y 3). Координатын гарал үүслийг эхний цэгтэй зэрэгцүүлнэ. Вектор бүтээгдэхүүн нь

=
,

тэгэхээр гурвалжны талбай байна

S ABC =1/2 (( x 2 - x 1) (y 3 – y 2) – (y 2 -y 1)(x 3 - x 2)).

S ABC-ийн утга нь эерэг эсвэл сөрөг байж болно, учир нь энэ нь AB ба AC векторуудын харилцан чиглэлээс хамаардаг тул бид тухайн талбайг чиглэсэн гэж хэлдэг.

А 1
А 2
А 3
А 4
А 5
Талбайг олохын тулд Н-gon, сүүлийг нь гурвалжинд хувааж, эдгээр гурвалжны чиглэлийн талбайн нийлбэрийг олох шаардлагатай. хуваах Н-гоныг гурвалжинд дараах байдлаар зурж болно: оройн аль нэгийг нь засна Н-gon жишээ нь эхний A 1 =( x 1 , y 1) бүх гурвалжныг A 1 A гэж үзье биА би +1 , би=2, 3,…, Н-1.

Дурын олон өнцөгтийн талбайг ижил төстэй аргаар олж болохыг анхаарна уу.

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

Даалгавар 3. Даалгаврыг программчлан хэрэгжүүлэх "Туулай"

Даалгавар 4"Талбай дахь бар". X хотоос холгүй газарт Уссури барууд амьдардаг нөөц газар байдаг. Бар дархан цаазат газраас гарахад нөөцийн ажилчид маш их санаа зовдог. Уссури баруудыг хамгаалах хөтөлбөрт бар тус бүрийг радио дохиолол бүхий хүзүүвчээр хангахаар тусгасан. Барын радио дохионы дохио нь хамгаалалтын төвд орж, барын байршлыг тодорхойлох боломжийг танд олгоно. Нөөцийн нутаг дэвсгэр нь дурын олон өнцөгт юм.

Анхны өгөгдөл: Ннөөцийг тодорхойлох олон өнцөгтийн оройн тоо, ( x i, y i) нь түүний оройн координатууд, би=1,2, …, Н. (X, Ю) нь барын байрлаж буй цэгийн координат юм.

ШаардлагатайБар нь нөөцийн нутаг дэвсгэрт байгаа эсэх, эсвэл аврах экспедицийг яаралтай тоноглох шаардлагатай эсэхийг тодорхойлох.

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

П
Q
Аргын санаа нь шалгаж буй цэгээс олон өнцөгтийн талууд харагдах өнцгийн нийлбэрийг тодорхойлох явдал юм. Хэрэв цэг нь олон өнцөгт дотор оршдог бол нийт өнцөг нь 2π-тэй тэнцүү байна (зураг дээрх P цэг), харин тухайн цэг нь олон өнцөгтийн гадна талд оршдог бол өнцгийн нийлбэр нь 2π (Q цэг) -тэй тэнцүү биш байна.

Тиймээс үүнийг шийдэхийн тулд олон өнцөгтийн бүх оройг дараалан давтаж, PA векторуудын хоорондох өнцгийн нийлбэрийг олох шаардлагатай. биболон PA би +1 , би=1,2, …, Н.ТХГН-ийн векторуудын хооронд өнцөг нэмэхээ бүү мартаарай Нболон PA1. Векторуудын хоорондох өнцгийг тодорхойлохын тулд скаляр бүтээгдэхүүний томъёо хэрэгтэй.

Олон өнцөгтийн талуудыг дараалан авч үзэх ёстой тул оройг тойрч гарахын тулд нийт өнцгийг олохдоо векторуудын харьцангуй байрлалыг анхаарч үзэх хэрэгтэй. Судалж буй цэгээс хажуугийн харагдах өнцөг нь эерэг эсвэл сөрөг байж болно. Өнцгийн тэмдгийг тодорхойлохын тулд бид вектор бүтээгдэхүүнийг ашигладаг. Загалмайн бүтээгдэхүүний тэмдэг нь нийт дүнгийн тодорхой өнцгийн тэмдгийг тодорхойлно.

Даалгавар 4. Даалгаврыг программчлан хэрэгжүүлэх "Паддок дахь бар"

Даалгавар 5"Газар хөндлөн гарах". Өгөгдсөн n сегмент. Тэдний бүх огтлолцолуудыг бие биетэйгээ олох программыг хэрэгжүүл. Шийдлийг графикаар харуул.

Хавтгай дээр a ба b хоёр сегментийг A 1 (A 1 x, A 1 y) ба A 2 (A 2 x, A 2 y) цэгүүдээр, b - B 1 (B 1 x) цэгүүдээр өгсөн. , B 1 y ) болон B 2 (B 2 x ,B 2 y). Тэдний C(C x ,C y) огтлолцлын боломжит цэгийг олж хэвлэ. Эхний сегментийг авч үзье a. Түүний орших шугамын тэгшитгэлийг дараах байдлаар бичиж болно.

x a = A 1 x + t a (A 2 x - A 1 x)

y a = A 1 y + t a (A 2 y - A 1 y)

Энд A 1 x ,A 1 y ,A 2 x ,A 2 y нь тогтмолууд, x a ,y a нь сегментэд хамаарах цэгүүд бөгөөд t a нь 0-ээс 1 хүртэл өөрчлөгддөг. Үүнтэй адил b сегментийн хувьд:

x b = B 1 x + t b (B 2 x - B 1 x)

y b = B 1 y + t b (B 2 y - B 1 y)

Тиймээс, харгалзах координатуудыг тэгшитгэснээр бид тэгшитгэл хангагдах t a, t b параметрүүдийг олох асуудлыг олж авна.

A 1 x + t a (A 2 x - A 1 x) = B 1 x + t b (B 2 x - B 1 x)

A 1 y + t a (A 2 y - A 1 y) = B 1 y + t b (B 2 y - B 1 y)

t a ,t b-тэй холбоотой системийг шийдвэрлэсний дараа бид дараахь зүйлийг авна.

t a (A 1 x - A 2 x) + t b (B 2 x - B 1 x) = A 1 x - B 1 x

t a (A 1 y - A 2 y) + t b (B 2 y - B 1 y) = A 1 y - B 1 y

Мөн энэ нь t a ,t b -тэй холбоотой хоёр шугаман тэгшитгэлийн систем юм.

Энэ систем нь мэдэгдэж байна

a 1 x + b 1 y = c 1

a 2 x + b 2 y = c 2

дараах шийдэл байна:

Энд d нь матрицын тодорхойлогч,

d \u003d a 1 b 2 - a 2 b 1,

dx \u003d c 1 b 2 - c 2 b 1,

d y = a 1 c 2 - a 2 c 1 .

Манай системд t a ,t b-ийн хувьд:

a 1 = A 1 x - A 2 x

b 1 = B 2 x - B 1 x

c 1 = A 1 x - B 1 x

a 2 = A 1 y - A 2 y

b 2 = B 2 y - B 1 y

c 2 = A 1 y - B 1 y

эндээс d,d x,d y-г олоход хялбар байдаг. Хэрэв d тэг биш бол систем нь өвөрмөц шийдэлтэй байна. Үнэн, шаардлагатай t a ,t b - сегментүүдийг зөвхөн мужид байгаа тохиолдолд параметрийн дагуу тохируулдаг гэдгийг санах нь зүйтэй бөгөөд эс тэгвээс сегментүүдийн байрлах шугамын огтлолцлын цэг нь эдгээр сегментээс гадуур байна.

Хэрэв d нь тэгтэй тэнцүү, d x ,d y-ийн ядаж нэг нь тэгээс ялгаатай бол хэрчмүүд параллель шулуунууд дээр байрладаг буюу математикчдын хэлснээр тэдгээр нь хоорондоо уялдаатай байна. Хэрэв d, d x, d y гурвуул нь тэгтэй тэнцүү бол энэ нь сегментүүд нэг шулуун шугам дээр байрладаг бөгөөд дахин гурван тохиолдол байж болно - сегментүүд давхцдаггүй, эсвэл нэг цэг дээр давхцдаг, эсвэл нэг цэг дээр давхцдаг. хязгааргүй тооны оноо.

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

Комбинаторикийн чухал элементүүдийн нэг нь солих. Дахин давтагдахгүйгээр солих- зөвхөн элементүүдийн дарааллаар бие биенээсээ ялгаатай байж болох комбинатор нэгдлүүд. Ийм сэлгэлтийн тоог n! гэж тодорхойлно.

3-ын тооны хувьд сэлгэлтийн тоо 3 байх болно! = 3 * 2 * 1 = 6. Дөрөв: 4! = 4 * 3 * 2 * 1 = 24.

Ихэнхдээ сэлгэлт үүсгэхийн тулд Дийкстрагийн алгоритмыг цагаан толгойн дарааллаар бүх орлуулалтыг олж авахад ашигладаг. Энэ алгоритмд дүн шинжилгээ хийцгээе.

Бидэнд эхний орлуулалт (жишээ нь 1234) байна гэж бодъё. Дараагийнхыг олохын тулд бид гурван алхамыг дагана.

1. Сэлгээний төгсгөлийн өмнөх элементээс бид a[i] тэгш бус байдлыг хангах a[i] элементийг хайж байна.< a. Для перестановки 1234, это число 3, т. к. (3 < 4).

2. a[i] элементийг хамгийн жижиг элементээр соль:

a) a[i]-ийн баруун талд байрладаг.

b) a[i]-ээс их байна.

Манай тохиолдолд бид 3 ба 4-ийг өөрчилдөг.

3. a[i]-ийн ард байгаа бүх элементүүдийг эрэмбэлсэн. Манай тохиолдолд бид 4-ийн тоог эрэмбэлэх хэрэгтэй, гэхдээ энэ нь цорын ганц элемент учраас бид үүнийг хэвээр үлдээдэг.

Эдгээр гурван алхмын үр дүнд бид дараагийн цагаан толгойн дарааллаар солигдох 1243-ыг авна.

Та эдгээр алхмуудыг эхний алхамд хайж буй a[i] элементийг солих хүртэл, өөрөөр хэлбэл сэлгэлтийг буурах дарааллаар эрэмбэлэх хүртэл циклээр хийх хэрэгтэй: 4321.

Дахин давтагдах өөрчлөлтүүд- үүсгэгч элементүүдийн дунд ижил байдаг комбинатор нэгдлүүд. Ийм нэгдэлд хэд хэдэн төрлийн объектууд оролцдог бөгөөд төрөл тус бүрт хэд хэдэн объект байдаг. Тиймээс дээжүүд нь ижил элементүүдийг агуулдаг.

Энэ хэсгийг илүү нарийвчлан судлахын тулд үүнийг зөвлөж байна.

Даалгавар 6.Гномууд зочдыг өнгөлөг бөмбөлөгөөр угтахаар шийджээ. Бөмбөлөгүүдийг гномуудад тарааж, бөмбөлөгний өнгө нь малгайны өнгөтэй адилгүй, ижил өнгийн малгайнд байгаа гномууд өөр өөр өнгөтэй, өөр өөр хэлбэртэй бөмбөлөгтэй байх ёстой. Бөмбөлөг хуваарилах бүх боломжит хувилбаруудыг хэвлэх програм бич.

Даалгавар 7.Өсөх (буурах) дарааллаар 1-ээс 9 хүртэлх тоонууд байдаг. Тэдгээрийн хооронд дурын тооны тэмдэгт оруулах шаардлагатай<<плюс>> ба<<минус>> 100 утгатай илэрхийлэл авахын тулд. Жишээ нь

123+4-5+67-89 = 100
9-8+76-5+4+3+21 = 100

Ийм илэрхийллийн бүх боломжит хувилбаруудыг олоорой.

Даалгавар 8.Тэг болон нэгээр дүүрсэн хоёр хэмжээст массив өгөгдсөн. Нэгжээр дүүргэсэн хамгийн том талбайтай тэгш өнцөгтийг ол.

Тэгш өнцөгтүүдийн талбай нь хамгийн дээд хэмжээнээс (бүх массив) хамгийн бага (нэг 1-ээс бүрдэх тэгш өнцөгт) хүртэл хэлбэлздэг. Тодорхой талбайн тэгш өнцөгт бүрийг янз бүрийн аргаар барьж болно. S талбайн хувьд хүчинтэй тэгш өнцөгт нь хажуугийн үржвэр нь S-тэй тэнцүү байна. Талбайн утга бүрийн хувьд тэгш өнцөгт байгуулах бүх боломжит аргуудыг давтах ёстой. Тодорхой талбай, хэлбэрийн тэгш өнцөгт бүрийг массив дотор янз бүрийн аргаар байрлуулж болно. Илүү нарийвчлалтайгаар түүний зүүн дээд орой нь массивын өөр өөр цэгүүдэд байрлаж болно. Тиймээс тодорхой талбай, хэлбэрийн тэгш өнцөгтийн хувьд бид бүх боломжит байршлыг давах ёстой.

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

1. Хэрэв талбайг хамгийн ихээс хамгийн бага хүртэл эрэмбэлсэн бол эхний олдсон тэгш өнцөгт нь хүссэн тэгш өнцөгт байх болно.

2. Тодорхой талбай, хэлбэрийн тэгш өнцөгт нь массивын аль ч байрлалд багтахгүй.

Эдгээр мэдэгдлийн нягтлан бодох бүртгэл нь хөтөлбөрийг маш ноцтой хурдасгахад хүргэдэг.

Даалгавар 9. "Вирус"Эсийн колони нь N(N) дарааллын квадрат матриц юм< 500). В колонию проникает M (M < 11) вирусов, которые поражают клетки с координатами (X1, Y1), ... (Xm, Ym). За одну единицу времени вирус проникает в клетки, соседние с зараженными (соседними считаются клетки, имеющие общую сторону). Требуется написать программу, которая определит время заражения всей колонии. Графически показать процесс заражения.

Даалгавар 10. "Цээжний Билли Бонсын"Билли Бонс авдарт хэдэн алтан зоос хийв. Хоёр дахь жилдээ тэр авдарнаас хэдэн зоос гаргаж ирэв. Гурав дахь жилээс эхлэн тэрээр хоёр жилийн өмнөх авдарт байсан зоосыг нэмсэн.

X онд яг Y зоос байсан бол эхний болон хоёр дахь жилдээ авдарт хэдэн зоос байсныг тодорхойлох программ бичих шаардлагатай. (3<=X<=20) и Y (1<=Y<=32767).

Тайлбар: Хэрэв та эхний жилдээ 5 зоос хийж, хоёр дахь жилдээ 3 зоос гаргавал эхний жилээс эхлэн авдарт 5, 2, 7, 9, 16, 25, ... зоос байх болно. .


Живсэн хөлөг онгоцноос алтан гулдмай бүхий зургаан авдар олдсон байна. Далайн дээрэмчид алтны ембүү овоолдог нь тодорхой зарчмын дагуу эхний авдарт 60 ембүү, хоёрдугаарт 30, гуравдугаарт 15 ембүү хийж байсан нь тогтоогджээ.Тав, зургаа дахь авдарт далайн дээрэмчид хэдэн ембүү хийсэн бэ?

Хариултууд:

далайн дээрэмчид тав дахь цээжинд 4 ембүү хийв. зургаа дахь-2. дөрөв дэх - 8

Тэд цээж тус бүрийг 2-т хуваасан. 60:2=30 30:2=15 үлдсэн хэсгийг нь адилхан хуваа.

Үүнтэй төстэй асуултууд

  • Минутаар илэрхийлнэ үү: 1) 6 градус 15 минут 2) 2 градус 3) 11.5 градус
  • 25-x^2/(x-4)^2>or=0 тэгш бус байдлыг шийд
  • тариачин эмэгтэйн түүх юу вэ
  • 3.6x6-ийн хувийг ол
  • Тариалан эрхэлдэг аж ахуйн нэгжийн газар тариалангийн газар тариалангийн талбайг үр тариа, хүнсний ногоогоор хуваадаг 24 га талбайг 5: 3-аар олно уу: хүнсний ногоо хэдэн га талбай эзэлдэг вэ? (Бүрэн шийдэл)
  • 1. ... их сургуулийн Ло-моносовын хөшөө байдаг. 2. Тэр суулаа ... би. 3. Хил ... Европ, Ази нь Уралын нурууны дагуу оршдог. 4. Шинэ гүүр бий ... гол. 5. Ном байхгүй ... тавиур. 6. Том цэцэрлэг байсан ... байшин. 7. Тэр одоо ... Институт. 8 Хараач! Энэ мод ... вандан сандал байна. a) хооронд b) дээр c) доор d) ойролцоо д) хөндлөн е) урд g) ард h) at
  • Зөв сонголтыг сонгохдоо нэр үгийн хүйсийг тодорхойлох: өвдөлттэй hangnail - өвдөлттэй hangnail

1. Хэрэв та маш их мөнгө хүсч байгаа бол тэр даруй мөнгө зээлдүүлэгч рүү очиж, түүнээс мөнгө зээлж (эхэндээ тэд ердөө 3000 өгдөг), тэнд цээжиндээ хийж, дахин зээл хүсэх (хачирхалтай нь тэд өгөх болно). чи мөнгө). Энэ үйлдлийг тоо томшгүй олон удаа давтаж болно, таны өрийн хэмжээ өөрчлөгддөггүй, гэхдээ үнэндээ мөнгө (цээжинд) өсдөг. Уйдах юм уу мөнгөтэй болчихвол авдраас хуримтлуулсан мөнгөө аваад мөнгө хүүлэгчид төлж, авсан бүхнээ аваад яв. Хэрэв та сайн хөлөг онгоцтой, зохистой нэр хүндтэй бол зээлийн акулууд илүү ихийг санал болгоно.

2. Хэрэв та маш их туршлага, ур чадвар хүсч байвал шударгаар хүлээн авсан "маш их мөнгө"-ээр байлдааны хөлөг худалдаж аваад (дээрээс харна уу) дайсны цайз руу яв. Мөн сайн буучин, анхны хань хөлслөхийг зөвлөж байна. Их буунуудаа их буугаар цэнэглэж, дайсны их бууны хүрээнээс гарч, цайзыг бөмбөгд. Устгасан буу бүрийн хувьд тэд 1000 туршлагын оноо өгдөг. Зөвхөн дүрийнхээ шинж чанарыг засах цаг гарга. Таны олж авсан хамгийн эхний чадваруудын нэг бол туршлага солилцох чадвар байх ёстой (энэ нь чадварын жагсаалтын бараг хамгийн доод хэсэгт байдаг). Тэгвэл чинийх чамтай хамт өсөх болно.

3. Хэрэв та маш их мөнгөтэй, сайн нэр хүндтэй бол бүх зүйлийг нэг дор даван туулж байснаас сценари дахь үйл явдлууд арай өөрөөр хөгжих болно. Тиймээс эхлээд мөнгө, туршлагаа "шахаж", зөвхөн дараа нь Рэймондын амбан захирагчид хандах нь утга учиртай юм.

Амжилт хүсье.

Тоглоомоо эхлүүлээд 3 дахь хадгалсан бичлэгийг ачаална уу.
Тоглоомоо оруулаад cheatgjlhjdf гэж бичээд 100000 гэсэн мөр гарч ирэх ба дарвал 100000 пиастр болно.

Мөнгө олох нь ямар амархан вэ.
Таверанд хөлсөлсөн офицерт ойртож, түүнтэй ярьж эхлээрэй. Тэр чамаас офицер хэрэгтэй эсэхийг асуух болно. Та юу хэрэгтэйг нь хариулж, дараа нь тэр танд ямар үнээр очихоо хэлэх болно. Та түүнд хариулах ёстой: "Тэр өөрөө хэтэрхий их зүйл шаарддаггүй гэж үү?" Дараа нь офицер үнийг 200 алтаар дахин тогтооно. Тэр үнийг 0 болгох хүртэл та ингэж үргэлжлүүлж болно, дараа нь тэр улаан руу орох болно (өөрөөр хэлбэл тэр таныг байрандаа аваачихын тулд мөнгө төлөх болно).

Карибын тэнгисийн дээрэмчид/PROGRAM/Rumour_Data.c файлыг нээх
Бүх "идэвхтэй" -ийг "идэвхгүй" болгож өөрчлөөд файлыг хадгал.
Үүний дараа та тэдний хөлөг онгоц руу дайрвал найрсаг улстай харилцаагаа таслахгүй. Суух сонирхогчдод хамгийн тохиромжтой.
P.S. Энэ нь таныг 1,2 эсвэл 3 хөлөг онгоц руу дайрах үед ажилладаг. Хэрэв та 4 хөлөг онгоц руу дайрвал харилцаа муудсаар байх болно.

Хэрэв таны халаасанд мөнгө байгаа бол шууд Усан онгоцны үйлдвэр рүү гүй.
Өөртөө байлдааны хөлөг худалдаж аваад хамгийн үнэтэй бууг тавь. Таны хөлөг онгоц ямар ч Manowar-аас илүү сэрүүн байх болно!

Тоглоомын эхэнд далайн дээрэмчин танд эд зүйлсийг хэрхэн авахыг хэлсний дараа тэрээр таныг сэлээр ур чадвараа сорих болно. Зөвшөөрч байна! Та түүнийг анх удаа зодсон ч гэсэн "ТҮВШИН"-ийг авах хүртлээ түүнийг дахин дахин давт. Тийм ээ, та их мөнгө олох боломжгүй, гэхдээ энэ нь "1-р түвшний" авирах хялбар арга юм.

Та тахилчтай чатлахын тулд 2000 пиастр олох боломжтой (энэ үйлдлийг тодорхой бус хугацаагаар хийж болно).
Үүнийг хийхийн тулд та Рэдмонд дахь сүмд очиж, санваартантай ярилцаж, тусламж санал болгох хэрэгтэй (ажил гүйцэтгэхийн тулд танд сайн нэр хүнд хэрэгтэй). Оксбэй дээр усан онгоцоор Порт Гринфолд руу яв. Орон нутгийн сүм рүү орохдоо тахилчтай ярилц. Тэр үгүйсгэх болно, гэхдээ бүх зүйлийг шийдэж болно, та "санамсаргүйгээр" захидал алдаж болно гэдгийг түүнд хэлэх хэрэгтэй. Дараа нь тэр 2000 төлдөг, гэхдээ захидал бүү өг, та түүнийг дахин орхиж болно.

Хэрэв танд дажгүй буу байгаа бол та зөвхөн дайснаа алж чадна, үүнийг ингэж хийж болно: дайсан руу буудаж, дараа нь хурдан аварч, үндсэн цэс рүү гарч тоглоомыг ачаална уу, анги, зэвсэг аль хэдийн дахин ачаалагдсан байна. , буудаж, бүх дайснуудыг "нойтон" хүртэл энэ процедурыг үргэлжлүүлээрэй. АМЖИЛТ ХҮСЬЕ!!

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

Хэрэв та мөнгө авахыг хүсч байвал миний зөвлөгөө танд хэрэгтэй зүйл юм!
Бүх хотод мөнгө хүүлэгч байдаг, заримд нь мөнгө хүүлэгчийн хажууд цоожгүй авдар байдаг тул энэ авдарт мөнгө зээлдэгчээс авсан бүх мөнгөө хийх хэрэгтэй. Хангалттай эсвэл залхтал мөнгө хүүлэгчээс мөнгө авч, хадгалуулж болно. Үүний дараа мөнгө хүүлэгчид хамгийн сүүлд авсан мөнгөө өгөөд авдраас өөрийнхөө мөнгийг аваад зарцуул.

Quebrados Kostilis дээр (гэхдээ би буруу байж магадгүй) тодорхой төрөл Артуа Вузье руу дайрсан бөгөөд хэрэв та түүнийг аврах юм бол тэр танай багт нэгдэхийг санал болгоно. Хэрэв та түүнийг авбал ямар ч асуудал гарахгүй, гэхдээ эдгээр зовлон зүдгүүрийн дараа тэр 50 мянган пиастрын эрдэнэс хаана булагдсаныг маш их, шударгаар хэлэх болно. Гэхдээ зөвхөн шахагдсан дүрүүдэд зориулагдсан!

Хэрэв та шинэ тоглоомын эхэнд дуран аваагүй бол бүх зүйлийг хамгийн гайхалтай (хурд, ямар буугаар цэнэглэгддэг) дамжуулан харах болно.
Та маш их туршлага хүсч байна уу? Артуагийн хамт даалгавраа дуусгаад эрдэнэсийг олоод Редмонд сүм рүү яв. Тэнд санваартантай ярилцаж, түүнд тус бүр 4000 пиастр өг (Артуа чамаас асуусан) та туршлага + нэр хүндтэй болно.

Хэрэв та таверанд 5 ажилтанд зориулж өрөө түрээслүүлбэл цээжин дотроос илүү үнэтэй зүйл олж, зарж болно!

Хэрэв та олзлогдсон цайз эсвэл усан онгоцноос гарч чадахгүй бол үйлдлийн товчлуурыг дарна уу.

Хэрэв та мөнгө олохыг хүсч байвал "Урам зориг өгөх итгэл" эсвэл үүнтэй төстэй зүйлийг сонгоод (доорх газар) дэлгүүрт очвол одон орны үнээр нэмэлт бараа нээгдэнэ. Жишээлбэл, та Исла Мюэлээс 1500 тонн хар модыг ~20-оор худалдаж аваад Оксбейд 69-өөр зарж болно. Нэгдүгээр ангиллаар би нэг аялалаас дор хаяж 20,000-ийн орлого олсон.

1. Хэрэв та чимээгүй, удаан хөлөг онгоцтой бол (жишээ нь Пинас) сандрах шаардлагагүй. Чамайг далайн дээрэмчид дайрмагц тэдэн рүү тонгойгоо эргүүлж, яст мэлхий шиг мөлхөхийн тулд хутгаар галла. Хурдгаа бууруулж, их бууг бөмбөгөөр цэнэглэж, хөлөг онгоцыг живүүлж эхлээрэй (дайсны хөлөг нум сумаараа юу ч хийж чадахгүй, бусад хөлөг онгоцууд тан руу дайрахгүй байхыг бас ажиглаарай). Хэрэв та илүү хүчтэй дайсныг живүүлэх юм бол тэд танд илүү их туршлага өгөх болно.
2. Далайн дээрэмчдээс залхаж байна уу? Тэднийг хармагцаа далайн горимд ороорой. Та газрын зургийн горимд дахин ороход далайн дээрэмчид энэ горимд байхаа болино.

Энэ сэлмийг живсэн хөлөг онгоцон дээрх дөрвөн хошуутай гар буу Редмонд дор байрлах катакомбуудаас олж болно.

Хэрэв та маш их туршлага хуримтлуулж чадвал 100 буутай 300,000 пиастрын үнэтэй хөлөг онгоц худалдаж авах боломжтой бөгөөд та далай тэнгисийн аянга болно.

Хялбар мөнгө.
Мөнгө зээлдүүлэгч дээр очоод мөнгө зээлэхийг хүсээд, дараа нь байшин дотроос авдар хайж, бүх олзоо тэнд тавиад, мөнгө зээлдэгчээс дахин мөнгө авч, дахин авдарт хий. Та уйдах хүртлээ үүнийг хийж болно. Дуусмагц мөнгөө дахин аваад, түүнд өг, тэгээд та цээжнээс бүгдийг нь авч болно.

Оксбай дээрх катакомбуудаас "Луугийн хэл" сэлмийг олж болно.

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

Давхар баррель гар бууг Исла Муалла дээрээс олж болно.
Байшингаас гараад баруун тийш эргэж, шулуун гүйж, дахин баруун тийшээ шууд хаалга руу гүйж, байшин руу орж, хоёрдугаар давхарт гарч, задгай шүүгээнд очиж, буугаа ав.

Исла Муэлла хотын захирагчийн байрны зүүн талд давхар хошуутай гар буутай том байшин байдаг.

Хэрэв та Оксбейг орхиж, ширэнгэн ой руу бага зэрэг гүнзгий орвол агуйд орох хаалгыг олох боломжтой (энэ тухай Оксбейгийн оршин суугчдаас сонсож болно), олон араг яс байх болно, гэхдээ тэнд та Фалчитон сэлэм цухуйж байгааг харж болно. модон шонгийн.

Маш их мөнгө, туршлага:
Эхлээд офицеруудыг ажилд ав ... ойролцоогоор гурван ...
Дараа нь далайд гарч далайн дээрэмчдийн хөлөг онгоцуудыг (эсвэл дайтаж байгаа орны хөлөг онгоцуудыг) хайж, тэдэнтэй тулалдах болно. Та нэн даруй энэ хөлөг онгоцонд суугаад түүнд офицер томилоорой ... Хэрэв энэ хөлөгтэй хамт бусад аялагчид байгаа бол бид тэдэнтэй ижил үйлдлийг гүйцэтгэдэг.
Бид туршлага хуримтлуулсан, одоо мөнгө олох хэрэгтэй ...
Бид ямар нэгэн арал руу явж, усан онгоцны үйлдвэрт очиж, хулгайлагдсан бүх хөлөг онгоцыг зардаг. Энэ мөнгөөр ​​бид хөлөг онгоцоо засч, хүмүүсийг хөлсөлж, одоо ч орхисон ...
Ийм урт ажиллагаа явуулсны дараа бидэнд "Тэнгисийн аянга" гэсэн нэр алдар болно.

Редмонд сүмд Падратай ярилцсаны дараа та Сатаны шашны тухай эрэл хайгуул хийж, төгсгөлд нь улаан Мефисто фрегат, сэгсэрдэг сэлмийг барьж болно.

Хэрэв та маш их туршлага хуримтлуулахыг хүсч байвал 1-р зэрэглэлийн хөлөг онгоц худалдаж аваад, дажгүй их буу тавьж, бөмбөгөөр цэнэглэж, нөхөрсөг цайз руу сэлж, түүнийг барьж авах хэрэгтэй (эхний цохилтыг гараар хийх шаардлагатай болно. 1 хүн). Тэд 25 мянган туршлага, алт, тодорхой хэмжээний бараа өгч, хөлөг онгоцоо засна. Дараа нь дипломатуудтай харилцаагаа сэргээж болно.

Дүвэзэн тавернад та залуу эртэй (сайн нэр хүндтэй) ойртож, тоглолт хийх (маш хэцүү биш), эцэст нь сайн илд авах хэрэгтэй.

Усан онгоцонд суухдаа цээжийг нь шалгахаа мартуузай? тавцан бүр дээр хэд хэдэн байдаг уу? мөн тус бүрд нь ямар нэг зүйл байдаг, би үүнийг шууд ойлгосонгүй :-)))

Тоглоомын эхэнд тагнуулын шил худалдаж аваад Оксбай руу орох хаалгаар ор.
Таверны эсрэг талын мод руу шууд оч, доороос нь 100 "рубль" олох боломжтой.

Хэрэв та Гринфорт Фортыг (дайралтын үе шатанд) барьж авахад асуудалтай байгаа бол та дараахь зүйлийг хийж болно.
1. Man-o-War хөлөг онгоцонд суу.
2. Үүнийг 12 царигийн хөргөгчөөр тоноглоорой (буудаж дуусгахын тулд).
3. Бакшот болон самбарыг бүрэн дүүрэн ачаална.
4. Цайзыг усан үзмийн сумаар дотор нь зөвшөөрөгдөх тооны явган цэрэгт халах (ингэж би гарнизоны тоог 10 хүн болгон бууруулж чадсан).
5. Цайзыг бөмбөгөөр дуусга.
Та хиймэл дагуулын хөлөг онгоцыг авч явах шаардлагагүй (тэд цайзыг хугацаанаас нь өмнө устгаж чадна).
"Түргэн засвар" ур чадвар шаарддаг. "Хамгаалах мэргэжлийн" ур чадвар, буучинг дээд зэргээр шахах нь зүйтэй.

Хэрэв та маш өндөр түвшинд (зөвхөн худалдаа) сайжруулахыг хүсч байгаа бол танд 4 мановар хэрэгтэй бөгөөд 100,000-200,000 пиастрын үнээр худалдаачидтай гэрээ байгуулж эхлэх хэрэгтэй. Тиймээс, нэг өдрийн дотор та ойролцоогоор 50 түвшин хүртэл шахаж чадна!

Гэрэлт цамхагт (Exbay дээр) хэрэв та сайн хайвал "Маш сайн тагнуулч"-ыг олж чадна (би итгэлтэй байна).

(Би буруу байж магадгүй), гэхдээ хэрэв та маш их туршлагатай бол Усан онгоцны үйлдвэрт Монаврууд гарч ирнэ.

Та хүссэн хэмжээгээрээ үнэгүй мөнгө авах боломжтой. Үүнийг хийхийн тулд та мөнгө зээлдүүлэгч дээр очиж, түүнээс мөнгө зээлж, дараа нь бүх бэлэн мөнгөө нэг офицерт өгөх хэрэгтэй. Мөнгөгүй бол ломбардчин хүн түүнээс юу зээлж авснаа САНАХГҮЙ. Та үүнийг олон удаа хийж болно, зөвхөн сүүлчийнх нь өрийг буцааж өгнө үү!

Та сая сая орлого олохыг хүсч байна уу?
Энэ нь тийм ч хэцүү биш, зарим таверанд хүн