Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемВиктория Ефимовская
1 Учебная система программирования вводный курс
2 Исполнитель робот. Команды робота: Right – перемещает Робота вправо; Left – перемещает Робота влево; Up – перемещает Робота вверх; Down – перемещает Робота вниз; Paint – закрашивает текущую ячейку; WallFromLeft – возвращает True если слева от Робота стена; WallFromRight – возвращает True если справа от Робота стена; WallFromUp – возвращает True если сверху от Робота стена; WallFromDown – возвращает True если снизу от Робота стена; FreeFromLeft – возвращает True если слева от Робота свободно; FreeFromRight – возвращает True если справа от Робота свободно; FreeFromUp – возвращает True если сверху от Робота свободно; FreeFromDown – возвращает True если снизу от Робота свободно; CellIsPainted – возвращает True если ячейка, в которой находится Робот, закрашена; CellIsFree – возвращает True если ячейка, в которой находится Робот, не закрашена. Как вы видите Робот может выполнить значительно больше команд, чем Чертежник. Урок 9
3 Вызов модуля Робот: uses Robot; begin standardfield; end. Пример простой программы: робот делает три шага вправо без закрашивания ячеек. program Robot_lin_alg; uses Robot; var i,y : integer; begin standardfield; right; end. Примечание: нельзя использовать более двух условий для робота в одном цикле. Это ограничение исполнителя. Следующий пример – данная программа неработоспособна Урок 9
4 program Robot_cikl_alg; uses Robot; var i,y : integer; begin standardfield; while CellIsFree=true do begin; if WallFromRight=true then up; if FreefromRight=true then right; if wallfromup=true then left; - лишнее условие end; end. Как же сделать так, чтобы робот например мог обойти все поле по периметру? Смотри следующий пример: Урок 9
5 Пример программы с использованием циклических алгоритмов: program Robot_cikl_alg; uses Robot; var i : integer; begin standardfield; for i:=1 to 10 do – верхний цикл, число кругов робота – 10. begin while FreefromRight=true do begin; right; end; while freefromup=true do begin; up; end; while freefromleft=true do begin; left; end; while freefromdown=true do begin; down; end; end. Результат выполнения программы: Робот «нарезает» десять кругов по периметру поля, при этом определяя сам где его край и куда нужно двигаться если край справа, вверху, слева и внизу. Размер поля при этом может быть произвольным. Жирным шрифтом выделены вложенные циклы. Урок 9
6 Пример программы с закрашиванием ячейки нижнего края поля program Robot_cikl_alg; uses Robot; var i : integer; begin standardfield; for i:=1 to 10 do begin while FreefromRight=true do begin; right; end; while freefromup=true do begin; up; end; while freefromleft=true do begin; left; end; while freefromdown=true do begin; down; end; paint; end; end. Урок 9
7 Задание: Напишите программу, в которой робот бы останавливался, встретив закрашенную ячейку, двигаясь также по периметру поля. Указание: используйте приведенный ранее программный код (программу). Урок 9
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.