Использованы материалы "Электронного приложения к учебному пособию «Информатика» "
Использование условий
Основные понятия
Условием для исполнителя является понятное исполнителю высказывание, которое может быть истинным (соблюдаться) либо быть ложным (не соблюдаться).
Система условий для исполнителя Робот
WallFromLeft – возвращает True если слева от Робота стена;
WallFromRight – возвращает True если справа от Робота стена;
WallFromUp – возвращает True если сверху от Робота стена;
WallFromDown – возвращает True если снизу от Робота стена;
FreeFromLeft – возвращает True если слева от Робота свободно;
FreeFromRight – возвращает True если справа от Робота свободно;
FreeFromUp – возвращает True если сверху от Робота свободно;
FreeFromDown – возвращает True если снизу от Робота свободно;
CellIsPainted – возвращает True если ячейка, в которой находится Робот, закрашена;
CellIsFree – возвращает True если ячейка, в которой находится Робот, не закрашена.
В представленном примере для Робота будут истинны следующие условия:
WallFromLeft
WallFromUp
FreeFromRight
FreeFromDown
CellIsPainted
Ложными будут условия :
WallFromRight
WallFromDown
FreeFromLeft
FreeFromUp
CellIsFree
Цикл с предусловием
Алгоритмическая конструкция цикл с предусловием (цикл «пока») — способ организации цикла, при котором количество выполнений команд тела цикла зависит от истинности или ложности условия цикла.
Для записи цикла с предусловием используется команда while. Формат записи команды следующий:
while <условие> do
begin
тело цикла;
end;
Строка while <условие> do является заголовком цикла. Эту строку можно прочитать следующим образом: «Пока верно условие, делай». Команды begin и end; в данном случае играют роль операторных скобок.
Пример 11.3. Задание W2 из электронного задачника
uses Robot;
begin
Task('w2');
while FreeFromRight do
begin
paint;
right;
end;
paint;
end.
Упражнения
1. Для исполнителя Робот был написан следующий алгоритм:
uses Robot;
begin
Field( , );
while FreeFromRight do begin
paint;
down;
right;
paint;
up;
right;
end;
end.
Нарисуйте в тетради результат работы алгоритма. Какими должны быть размеры поля, чтобы Робот не врезался в стену? Определите начальное положение Робота.
2. Напишите программу для решения задач w3 и w8 из встроенного задачника. Обращайте внимание на начальное и конечное положение Робота.
3. Составьте алгоритм, выполнив который Робот нарисует «узор» из задания 1 вдоль левого края поля исполнителя. Каким должен быть вертикальный размер поля исполнителя? (Задача myrob5 из модуля RobTasks.)
4. Робот находится на квадратном поле неизвестного размера. Начальное положение Робота — верхний левый угол. Составьте и выполните алгоритм, по которому Робот переместится из начального положения в нижний правый угол и закрасит все клетки своего пути. На каком (на каких) из рисунков изображено решение этой задачи? Почему?
а)
б)
в)