Урок 29
Составление алгоритмов с помощью готовых фрагментов
Теоретическая часть
Команда OnVector(a,b) перемещает перо Чертежника на a единиц по оси Ох и на b единиц по оси Оy относительно текущего состояния.
Если a=0, то перо по оси Ох не смещается.
Если b=0, то перо по оси Оу не смещается.
Если a>0 и b=0, перо смещается вправо.
Если a<0 и b=0, перо смещается влево.
Если b>0 и a=0 перо смещается вверх.
Если b<0 и a=0, перо смещается вниз.
В остальных случаях новое положение пера можно получить, сместив его сначала по оси Ox на a единиц (вправо или влево в зависимости от знака), а затем по оси Oy на b единиц (вверх или вниз).
Хитрости работы с текстом программы.
1) Сначала программа составляется на бумаге, а потом набирается на компьютере. При этом рисунок выполняется точно по клеточкам. При наборе помечайте в тетради, сколько строк вы уже набрали.
2) Набирайте весь текст программы на английском языке, не переходите на русский.
3) Каждую команду набирайте с новой строки.
4) Повторяющиеся команды можно копировать в буфер обмена и вставлять из него нужное количество раз. Для этого нужно выделить набранное, щелкнуть команду «копировать», передвинуть курсор на место вставки, щелкнуть команду «вставить» нужное количество раз.
5) Если команду набрали не в том месте – просто выделите её и перетащите левой кнопкой мыши на нужное место.
Практическая часть
Задание 1. Определить, какой рисунок будет получен в результате выполнения фрагмента программы:
Program z2;
Uses Drawman;
Begin
Field(6, 5);
ToPoint(1,1);
PenDown;
OnVector(3,2);
PenUp;
OnVector(1,-2);
...............
end.
Задание 2. Скопируйте программу и проверьте, какое изображение получится
Program p2;
uses Drawman;
begin
Field(10, 10);
OnVector(3, 1);
PenDown;
OnVector(3,0);
OnVector(2,2);
OnVector(-7,0);
OnVector(2,-2);
PenUp;
OnVector(1,2);
PenDown;
OnVector(0,4);
OnVector(2,-1);
OnVector(-2,-1);
PenUp;
OnVector(-4,-5);
end.
Задание 3. Скопируйте и заполните в командах программы вычерчивания флажка значения пропущенных координат.
Program p3; uses Drawman;
begin
Field(10,10);
ToPoint(__,__);
PenDown;
OnVector(__,__);
OnVector(__,__);
OnVector(__,__);
OnVector(__,__);
OnVector(__,__);
PenUp;
OnVector(__,__);
end.