Использованы материалы "Электронного приложения к учебному пособию «Информатика» "
Использование основных алгоритмических конструкций для исполнителя Робот
Основные понятия
Следование, цикл и ветвление — базовые алгоритмические конструкции. Используя эти конструкции как элементы некоего «конструктора», можно составлять и разрабатывать любые алгоритмы.
Структуру, когда внутри одного цикла выполняется другой, называют вложенными циклами.
Пример 12.4. Задание cif1 из электронного задачника
uses Robot;
begin
Task(‘cif1’);
while FreeFromRight do begin
if WallFromUp then paint;
right;
end;
if WallFromUp then paint;
end.
Пример 12.5. Задание cif17 из электронного задачника
uses Robot;
begin
Task('cif17');
while FreeFromUp do up;
if FreeFromLeft then
while FreeFromLeft do left
else
while FreeFromRight do right;
end.
Пример 12.6. Задание cc5 из электронного задачника
uses Robot;
begin
Task('cc5');
for var i:=1 to 4 do begin
while FreeFromRight do right;
down;
while FreeFromLeft do left;
down;
end;
end.
Упражнения
Проверь себя на знание предыдущих тем:
оценочный тест (до 20 минут, количество вопросов может меняться) - https://onlinetestpad.com/hou7yyen7zg32
1. Объясните, какие алгоритмические структуры используются в приведённых ниже программах. Нарисуйте блок-схемы данных алгоритмов. Предложите пример начальной обстановки, в которой алгоритм будет выполняться корректно.
uses Robot;
begin
while WallFromLeft do
begin
down;
paint;
end;
end.
uses Robot;
begin
while CellIsPainted do
if FreeFromleft then left;
end.
2. Запишите алгоритмы, используя базовые алгоритмические структуры. Постройте соответствующие блок-схемы.
Тело цикла, выполняющегося при условии WallFromUp, состоит из двух команд: right и paint.
Если условие FreeFromRight не выполняется, то, если клетка не закрашена, ее нужно закрасить, а если закрашена, то сдвинуться влево.
Проверку условия CellIsPainted нужно производить до тех пор, пока снизу нет стен. При выполнении условия сдвинуться вниз, при невыполнении условия — закрасить клетку.
3. Для решения задачи cif3 из встроенного задачника Миша написал программу, но она работает неправильно. Какие ошибки допустил Миша?
uses Robot;
begin
Task('cif3');
while WallFromRight do
begin
if WallFromDown or WallFromUp then
paint;
right;
end;
if WallFromUp and WallFromDown then
paint;
end.
4. Заполните пропуски в программе решения задачи cc14 из встроенного задачника так, чтобы она работала верно.
uses Robot;
begin
Task('cc14');
for var i:=1 to 4 do
begin
while … do right;
down;
while … do left;
down;
end;
end.