9.1. Робаты ў жыцці чалавека
Чалавек з глыбокай старажытнасці марыў пра штучнае стварэнне, якое магло б выконваць яго загады. Сёння гэта мара стала рэальнасцю — у жыцці людзей з’явіліся робаты. Яны здольныя выконваць практычна любую працу, даступную чалавеку, а таксама рабіць шмат якія рэчы, што людзям выканаць складана ці наогул немагчыма.
Робаты выкарыстоўваюцца на вытворчасці і ў быце, могуць працаваць у сферы паслуг і забаў. Бываюць робаты, падобныя да чалавека, а бываюць зусім непадобныя.
Робат — аўтаматычнае ўстройства, якое дзейнічае па загадзя складзенай праграме.
Робат атрымлівае інфармацыю пра навакольны свет ад датчыкаў — аналагаў органаў пачуццяў жывых арганізмаў — і прызначаны для ажыццяўлення розных аперацый.
Свет робатаў вельмі разнастайны. У быце сучаснага чалавека выкарыстоўваюцца аўтаматычныя пральныя і пасудамыечныя машыны, робаты-пыласосы і інш. З дапамогай робатаў можна вырошчваць расліны ці кіраваць домам.
Робат можа быць матэрыяльным або віртуальным. Віртуальны робат — спецыяльная праграма, якая выконвае пэўныя дзеянні.
Робаты з’яўляюцца выканаўцамі. Для выканаўцаў звычайна вызначаюць асяроддзе існавання і сістэму каманд.
Агульным для ўсіх робатаў з’яўляецца тое, што чалавек можа імі кіраваць. Робат атрымлівае каманды ад аператара і выконвае іх па адной ці дзейнічае аўтаномна па папярэдне складзенай праграме.
9.2. Асяроддзе існавання і сістэма каманд выканаўцы Робат
У асяроддзі праграміравання PascalABC, акрамя выканаўцы Чарцёжнік, можна выбраць выканаўцу Робат.
Асяроддзем існавання выканаўцы Робат з’яўляецца прамавугольнае клятчастае поле. Памеры поля, як і для выканаўцы Чарцёжнік, задаюцца камандай Field(n, m). Першапачаткова Робат знаходзіцца ў цэнтральнай клетцы поля.
Паміж некаторымі клеткамі, а таксама па перыметры поля знаходзяцца сцены. Робат можа перамяшчацца па полі і зафарбоўваць паказаныя клеткі. Вялікі жоўты квадрат унутры клеткі азначае пачатковае становішча Робата, маленькі — канцавое (прыклад 9.1).
Поле Робата, на якім вызначана знаходжанне сцен, пачатковае і канцавое размяшчэнне выканаўцы, называюць становішчам.
Для падключэння выканаўцы Робат у праграме прапісваецца каманда uses Robot. Гатовыя заданні са становішчамі для Робата захоўваюцца ў задачніку, убудаваным у сістэму праграміравання, і выклікаюцца камандай task. Гэта ж каманда выкарыстоўвалася для Чарцёжніка.
Сістэма каманд выканаўцы:
Каманда |
Дзеянне |
Right |
Перамяшчае Робата ўправа |
Left |
Перамяшчае Робата ўлева |
Up |
Перамяшчае Робата ўверх |
Down |
Перамяшчае Робата ўніз |
Paint |
Зафарбоўвае дадзеную ячэйку |
Робат можа станавіцца на звычайную і на зафарбаваную клет-ку, але не можа перамясціцца з клеткі на клетку, калі паміж імі сцяна. Робат не можа перамясціцца за межы поля. Гэтыя дзеянні выклікаюць памылку (прыклад 9.2). Робат можа зафарбаваць ужо зафарбаваную клетку. Такое дзеянне памылкі не выклікае.
9.3. Выкарыстанне алгарытмічнай канструкцыі паслядоўнасць для выканаўцы Робат
Разгледзім прыклады рашэння задач для выканаўцы Робат.
Прыклад 9.3. Робат знаходзіцца на полі памерам 3 × 3 клетки. Трэба зафарбаваць усе клеткі, акрамя сярэдняй (задача a2).
Для рашэння задачы Робат павінен выканаць наступны алгарытм:
зафарбаваць; управа;
зафарбаваць; управа;
зафарбаваць; уніз;
зафарбаваць; уніз;
зафарбаваць; улева;
зафарбаваць; улева;
зафарбаваць; уверх;
зафарбаваць; уверх.
У дадзеным алгарытме Робат абыходзіць клеткі, рухаючыся па гадзіннікавай стрэлцы. Той жа вынік можна атрымаць, калі Робат будзе абыходзіць поле супраць гадзіннікавай стрэлкі, першапачаткова рухаючыся ўніз.
Прыклад 9.4. Складзём праграму для зафарбоўвання клетак поля Робата па ўзоры:
Такога становішча няма ў задачніку, таму спачатку трэба стварыць поле Робата памерам 5 × 3. Пачатковае становішча Робата на такім полі адзначана заштрыхаванай клеткай.
Для рашэння задачы Робат павінен выканаць алгарытм:
стварыць поле;
уніз;
зафарбаваць;
улева;
уверх;
зафарбаваць;
улева;
уверх;
зафарбаваць;
управа;
управа;
управа;
управа;
зафарбаваць;
улева;
уніз;
зафарбаваць.
*Якімі яшчэ спосабамі можна рашыць дадзеную задачу?
Прыклад 9.5. Рэшым задачу a1 з убудаванага задачніка.
Для рашэння дадзенай задачы Робат павінен абысці лінію (сцяну), зафарбаваць паказаныя клеткі і перамясціцца ў клетку, якая вызначае канцавое становішча выканаўцы.
Алгарытм рашэння задачы:
зрушыцца ўправа на 4 клеткі;
уверх;
зрушыцца ўлева на 4 клеткі,
зафарбоўваючы іх на шляху;
улева.
У прыкладах 9.3 — 9.5 каманды выканаўцы Робат выконваліся паслядоўна, адна за другой, у тым парадку, у якім яны былі запісаны. Таму ўсе прыведзеныя алгарытмы рэалізаваны з выкарыстаннем алгарытмічнай канструкцыі паслядоўнасць.
9.4. Дапаможныя алгарытмы
Прыклад 9.6. Рэшым задачу a3 з убудаванага задачніка.
Робат павінен зафарбаваць усе клеткі поля. Але рухацца па прамой яму перашкаджаюць сцены, якія выканаўца павінен абыходзіць.
Алгарытм рашэння задачы:
зафарбаваць; уніз;
зафарбаваць; управа;
зафарбаваць; уверх;
зафарбаваць;
управа;
зафарбаваць; уніз;
зафарбаваць; управа;
зафарбаваць; уверх;
зафарбаваць.
Калі прааналізаваць дадзены алгарытм, то можна заўважыць, што двойчы паўтараецца паслядоўнасць каманд, якая зафарбоўвае квадрат з чатырох клетак:
зафарбаваць; уніз;
зафарбаваць; управа;
зафарбаваць; уверх;
зафарбаваць.
Аформім гэтыя каманды як дапаможны алгарытм, які назавём квадрат. Тады алгарытм рашэння зыходнай задачы можа быць запісаны так:
квадрат;
управа;
квадрат.
Пры рашэнні дадзенай задачы выкарыстанне дапаможнага алгарытму дазволіла не запісваць двойчы адну і тую ж паслядоўнасць каманд.
Дапаможныя алгарытмы можна выкарыстоўваць і ў тым выпадку, калі зыходная задача разбіваецца на некалькі незалежных адна ад адной задач. Тады кожную з іх можна аформіць як дапаможны алгарытм.
Прыклад 9.7. Напішам праграму для зафарбоўвання клетак поля Робата па ўзоры:
Такога становішча няма ў задачніку, таму створым поле 7 x 3.Пачатковае становішча Робата адзначана заштрыхаванай клеткай.
У дадзенай задачы Робат павінен нарысаваць дзве асобныя фігуры: крыж і квадрат. Складзём два дапаможныя алгарытмы.
Дапаможны алгарытм крыж:
улева; зафарбаваць;
уніз; улева; зафарбаваць;
уверх; улева; зафарбаваць;
управа; зафарбаваць;
уверх; зафарбаваць.
У якасці дапаможнага алгарытму для рысавання квадрата можна выкарыстоўваць алгарытм рашэння задачы a2 (прыклад 9.3). Для пераходу ад адной фігуры да іншай Робат павінен зрушыцца на 3 клеткі ўправа:
крыж;
управа; управа; управа;
квадрат.
Робаты развозяць заказы ў рэстаране ў г. Харбін (Кітай)1 Робат LS3, створаны для транспарціроўкі грузаў па перасечанай мясцовасці. Аўтаномны робат GROVER, які вывучае пласты льду на ледніковым шчыце Грэнландыі. Рабатызаваная сістэма, прызначаная для вырошчвання агародніны. Кіраванне дадзенай сістэмай ажыццяўляецца праз Wi-Fi. Ёсць магчымасць аддаленага кантролю праз Інтэрнэт. Робат-пыласос з дапамогай сістэмы камер і сэнсараў можа арыентавацца ў пакоі і будаваць маршрут уборкі. _______________ |
Прыклад 9.1. Поле выканаўцы Робат з пачатковым становішчам мае наступны выгляд: Прыклад 9.2. Выклік задачы a1 з убудаванага задачніка: Запіс каманд выканаўцы: Запішам у праграме каманду up.
Зверху знаходзіцца сцяна, таму перамяшчэнне Робата ўверх немагчымае: |
Прыклад 9.3. Пачатковае становішча: Праграма для выканаўцы Робат:
Вынік работы праграмы мае наступны выгляд: Прыклад 9.4. У дадзеным выпадку праграма для вучэбнага камп’ютарнага выканаўцы Робат можа быць складзена такім чынам:
Вынік работы запісанай вышэй праграмы будзе мець наступны выгляд: Прыклад 9.5. Пачатковае становішча: Праграма для Робата:
Вынік работы праграмы: |
Прыклад 9.6. Пачатковае становішча: Праграма 1 для выканаўцы Робат:
Вынік работы праграмы: Праграма 2 (з выкарыстаннем дапаможнага алгарытму) для выканаўцы Робат:
Прыклад 9.7. Праграма для вучэбнага камп’ютарнага выканаўцы Робат:
Вынік работы запісанай вышэй праграмы будзе мець наступны выгляд: |