На этом уроке мы научимся рисовать графики функций.
Для начала нарисуем график функции Y=X2.
При построении графиков вместо осей координат удобнее рисовать координатную сетку. Для этого пятый параметр функции SetCoordinateSystem должен быть равен 2. Диапазон координат возьмем следующий: X: от -4 до 4, Y – от -1 до 10. Перебор значений X организуем с помощью цикла repeat.
Цикл repeat обеспечивает многократное выполнение строк тела цикла, которое образуется путем отступа на 2 позиции вправо относительно строки repeat. В отличие от цикла for счетчик цикла отсутствует и следует самостоятельно позаботится о своевременном прекращении цикла с помощью операторов break или breakif.
Начальное значение X положим -3, шаг 0,5. График будем строить, соединяя точки прямыми линиями. В режиме редактирования наберите скрипт
SetCoordinateSystem(-4,-1,4,10,2)
# координатная сетка вместо координатных осей
X=-3
Repeat
Y=X*X
LineTo(X,Y)
X=X+0.5
Breakif X>3
Перейдите в режим работы и пройдите скрипт в шаговом режиме.

Получилось почти хорошо. Всего 2 недостатка. Во-первых, при первом проходе тела цикла появилась линия, которая нам не нужна. Во-вторых, график явно не гладкий, похож на ломаную линию. Чтобы при первом проходе тела цикла перо ничего не рисовало, а просто было помещено в точку с координатами (X,Y), нужно функцию LineTo заменить функцией MoveTo. Чтобы график выглядел плавным, шаг по X уменьшим с 0.5 до 0,1. Войдите в режим редактирования и внесите соответствующие исправления
SetCoordinateSystem(-4,-1,4,10,2)
# координатная сетка вместо координатных осей
X=-3
repeat
Y=X*X
if X=-3
MoveTo(X,Y)
else
LineTo(X,Y)
X=X+0.1
Breakif X>3
Переключитесь на режим работы, выполняйте скрипт в шаговом режиме.

Обратите внимание, что при первом прохождении тела цикла срабатывает функция MoveTo, которая перемещает перо в точку (X,Y), но ничего не рисует. При следующих прохождениях тела цикла срабатывает функция LineTo, которая рисует отрезок прямой, соединяющий прежнюю точку нахождения пера и новую. Шаг по X (приращение переменной X за один проход тела цикла), равный 0.1, обеспечивает достаточную гладкость графика. Теперь диапазон координат зададим не цифровыми константами, а через переменные X1,Y1,X2,Y2, а вычисление функции для построения графика оформим в виде в скриптовой функции F.
X1 = -3
Y1 = -1
X2 = 3
Y2 = 10
SetCoordinateSystem(X1,Y1,X2,Y2,2)
X=-3
repeat
Y=F(X)
if X = X1
MoveTo(X,Y)
else
LineTo(X,Y)
X=X+0.1
Breakif X > X2
stop
function F(_x)
return _x * _x
stop
В таком виде скрипт более универсален. Если понадобится построить график другой функции в другом диапазоне координат, то исправления коснутся только первых четырёх строк и тела скриптовой функции. А сейчас просто проверьте работоспособность этого скрипта.
Для закрепления материала постройте график функции
Y = 0.1X3 - 0.5X2 – X + 2
В диапазоне координат X1 = -3, Y1 = -5, X2 = 7, Y2 = 5.
Этот график понадобится нам на следующем уроке.