Циклические алгоритмы

Содержание

Слайд 2

FOR i:=1 TO N DO BEGIN
действие1;
действие2;
END;

FOR i:=1 TO

FOR i:=1 TO N DO BEGIN действие1; действие2; END; FOR i:=1 TO
N DO действие1;
действие2;

1

Слайд 3

2

WHILE (УСЛОВИЕ ИСТИННО) DO
BEGIN
действие1;
действие2;
END;

WHILE (УСЛОВИЕ ИСТИННО) DO
действие1;
действие2;

2 WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие1; действие2; END; WHILE (УСЛОВИЕ ИСТИННО) DO действие1; действие2;

Слайд 4

3

17 клеточек

12 клеточек

3 17 клеточек 12 клеточек

Слайд 5

4

Program N1;
var i:integer;
Begin
For i:=1 to 12 do RobotForw;
RobotLeft;
For

4 Program N1; var i:integer; Begin For i:=1 to 12 do RobotForw;
i:=1 to 17 do RobotForw;
RobotLeft;
For i:=1 to 12 do RobotForw;
RobotLeft;
For i:=1 to 17 do RobotForw;
RobotLeft;
end.

Движемся вниз

Движемся вправо

Движемся вверх

Движемся влево

Эта и следующая команды поворачивают в углу робота налево

Слайд 6

5

Если поставить стену, робот в нее врежется и программа остановится

5 Если поставить стену, робот в нее врежется и программа остановится

Слайд 7

6

Program N2;
var i:integer;
Begin
While FreeForw do RobotForw;
RobotLeft;
While FreeForw do

6 Program N2; var i:integer; Begin While FreeForw do RobotForw; RobotLeft; While
RobotForw;
RobotLeft;
While FreeForw do RobotForw;
RobotLeft;
While FreeForw do RobotForw;
RobotLeft;
end.

Пока впереди свободно, выполнить робот вперед.

Слайд 9

8

Program N3;
var i:integer;
Begin
for i:=1 to 4 do begin
While

8 Program N3; var i:integer; Begin for i:=1 to 4 do begin
FreeForw do RobotForw;
RobotLeft;
end;
end.

Четыре раза выполнить движение вперед, пока нет препятствия и поворот налево

Слайд 10

9

Четыре раза выполнить движение вперед, пока нет препятствия, и поворот налево

9 Четыре раза выполнить движение вперед, пока нет препятствия, и поворот налево

Слайд 11

10

Задания для самостоятельной работы

Задание 1.
У левой стены обстановки в произвольном месте ставится

10 Задания для самостоятельной работы Задание 1. У левой стены обстановки в
препятствие. Робот должен
доехать до точки 1 и вернуться в исходное состояние.
Примечание: использовать три
последовательно соединенных цикла ПОКА

1

1

Слайд 12

11

Задание 2.
У левой стены обстановки в произвольном месте ставится груз. Робот должен
доехать

11 Задание 2. У левой стены обстановки в произвольном месте ставится груз.
до груза, взять его перевезти на склад и вернуться в исходное состояние.
Примечание: использовать два
последовательно соединенных цикла ПОКА

Слайд 13

12

Задание 3.
У левой стены обстановки в произвольном месте ставятся пять грузов. Робот

12 Задание 3. У левой стены обстановки в произвольном месте ставятся пять
должен
все грузы перевезти на склад.
Примечание: использовать два
последовательно соединенных цикла ПОКА, вложенных в цикл с параметром.

Слайд 14

13

Пример 1
Робот находится перед входом в коридор. Необходимо отметить все клетки внутри

13 Пример 1 Робот находится перед входом в коридор. Необходимо отметить все
коридора, и вернуться обратно

Слайд 15

14

Program N7;
Begin
RobotForw;
While not FreeLeft do begin
Select;
RobotForw;
end;
RobotBack;
While not FreeLeft

14 Program N7; Begin RobotForw; While not FreeLeft do begin Select; RobotForw;
do RobotBack;
end.

Делаем шаг вперед для входа в туннель

Пока слева есть стена, отмечаем клетку и делаем шаг вперед

Возвращаемся обратно в туннель

Пока с лева стена, движемся на шаг назад

Слайд 16

15

Пример 2
Имеются две стены поставленные углом. Длины стен произвольные. Робот находится в

15 Пример 2 Имеются две стены поставленные углом. Длины стен произвольные. Робот
углу между стенами (см. рисунок). Необходимо составить программу в которой робот отмечает все клетки на внутренней части стены. Конечное положение робота произвольно.

Слайд 17

16

Program N8;
Begin
While not FreeRight do begin
Select;
RobotForw;
end;
While FreeBack do

16 Program N8; Begin While not FreeRight do begin Select; RobotForw; end;
RobotBack;
RobotLeft;
While not FreeLeft do begin
Select;
RobotForw;
end;
end.

Пока справа не свободно, отмечаем клеточку и делаем шаг вперед.

Возвращаем робота назад

Поворачиваем налево

Пока слева не свободно, отмечаем клеточку и делаем шаг вперед.

Слайд 19

18

Пример 3
Обстановку перекрывает стена, делящая обстановку на две части. В стене есть

18 Пример 3 Обстановку перекрывает стена, делящая обстановку на две части. В
проход размером в клетку в произвольном месте . Необходимо составить программу в которой робот находит этот проход и переходит на другую часть обстановки.

Слайд 20

19

Program N9;
Begin
RobotLeft;
While FreeForw do RobotForw;
RobotRight;
While not FreeLeft

19 Program N9; Begin RobotLeft; While FreeForw do RobotForw; RobotRight; While not
do RobotForw;
RobotLeft;
RobotForw;
RobotForw;
end.

Поворачиваем робота по направлению к стене.

Движемся вперед пока не упремся в стену

Поворачиваем робота вдоль стены

Движемся вперед пока стена не кончится

Поворачиваем робота в сторону прохода

Делаем два шага вперед, проходим на другую половину обстановки

Слайд 22

21

Задания для самостоятельной работы

Задание 1.
Дана стена в виде ступенек, количество ступенек произвольно.

21 Задания для самостоятельной работы Задание 1. Дана стена в виде ступенек,
Необходимо отметить все клеточки в углах стены. Конечное положение робота произвольно.
Примечание: использовать один цикл ПОКА

Слайд 23

22

Задание 2.
Вдоль левой стены обстановки расположены в произвольных местах 5 грузов. Необходимо

22 Задание 2. Вдоль левой стены обстановки расположены в произвольных местах 5
перевезти эти грузы к противоположной стене, как показано на рисунке.
Примечание: использовать один цикл с параметром и три вложенных в него цикла ПОКА
Имя файла: Циклические-алгоритмы.pptx
Количество просмотров: 174
Количество скачиваний: 0