ИСПОЛНИТЕЛЬ ЧЕРТЕЖНИК
СКИ Чертежника
Использование вспомогательных алгоритмов
Вечерний Лицей
9 класс
Исполнитель Чертежник
предназначен для построения рисунков и чертежей на координатной плоскости.
Исполнитель Чертежник
- Имеет перо
- Если перо опущено, то при перемещении остаётся след
- При поднятом пере след не остаётся
СКИ Чертежника
Команда
Действие
Field(n,m)
Создать поле размером n x m
ToPoint(x,y)
Переместить перо Чертежника в точку (x, y)
OnVector(x,y )
Переместить перо Чертежника на вектор (x, y)
PenUp
Поднять перо Чертежника
PenDown
Опустить перо Чертежника
Исполнитель Чертежник
Команду ToPoint(x, y) называют командой абсолютного смещения
Назовите координаты точек, в которых находился Чертёжник до выполнения команды
ToPoint(2,3)
Исполнитель Чертежник
Команду OnVector(x,y) называют командой относительного смещения
Назовите координаты точек, в которых находился Чертёжник до выполнения команды
OnVector(2,3)
Пример Команда ToPoint(x, y)
uses Drawman;
begin
Field(4,4);
ToPoint(1,1);
PenDown;
ToPoint(2,1);
ToPoint(2,3);
ToPoint(3,3);
ToPoint(3,2);
ToPoint(1,2);
ToPoint(1,1);
PenUp;
end .
Пример Команда OnVector (x, y)
uses Drawman;
begin
Field(4,4);
OnVector(1,1);
PenDown;
OnVector(1,0); OnVector(0,1);
OnVector(-1,0); OnVector(0,-1);
PenUp;
OnVector(1,1);
PenDown;
OnVector(1,0); OnVector(0,1);
OnVector(-1,0); OnVector(0,-1);
PenUp;
end .
Пример Цикл
uses Drawman;
begin
Field(4,4);
for var i:=1 to 2 do
begin
OnVector(1,1);
PenDown;
OnVector(1,0); OnVector(0,1);
OnVector(-1,0); OnVector(0,-1);
PenUp;
end ;
end .
Пример Цикл с параметром
uses Drawman;
var x, y: integer;
begin
Field(5, 5);
x := 1; y := 1;
OnVector(x, y);
for var i := 1 to 2 do
begin
PenDown;
OnVector(x, 0); OnVector(0, y);
OnVector(-x, 0); OnVector(0, -y);
PenUp;
OnVector(x, y);
x := x + 1; y := y + 1;
end ;
end .
Вспомогательный алгоритм
алгоритм, который можно целиком использовать в других алгоритмах
Вспомогательные алгоритмы с параметром
uses Drawman;
var x, y, n, k: integer;
begin
read(n);
k:=2;
for var i := 1 to n do
k:=k+i;
Field(k, k);
x := 1; y := 1;
OnVector(x, y);
for var i := 1 to n do
begin
kvadrat(x, y);
x := x + 1; y := y + 1;
end ;
end .
procedure kvadrat(x, y: integer);
begin
PenDown;
OnVector(x, 0); OnVector(0, y);
OnVector(-x, 0); OnVector(0, -y);
PenUp;
OnVector(x, y);
end ;
Задание
Построить, используя вспомогательные алгоритмы с параметром
Задание
Удачной работы!