# Учебная практика 2022. Понедельник 04.07 . Лазаренко Дарья Геннадьевна. Первая группа.
[TOC]
## Задача 1 «canvas Графики f(x)»
Создать хостинге replit.com html приложение, в котором реализовать на языке javascript класс Graph1D, предназначенный для расчета и отрисовки на канве (canvas) графиков вещественных функций.
Визуализировать поиск локальных экстремумов рода с помощью класса, использующего класс Graph1d. Каждый шаг метода должен показываться с заданным временным интервалом (по умолчанию – 2 секунды).
### Решение: в процессе
Решение доступно по [ссылке](https://replit.com/@DariaLazarenko1/290622-practice).
(Не присутствовала на онлайн-конференции)
1. Добавлено построение точек экстремума.
2. Исправлены некоторые баги с функцией Autodraw();
3. Ведется работа над визуализацией поиска экстремумов.
Функция, отвечающая за экстремумы:
```js=1
function drawExtremum() {
Y_old = 0;
for(X=0; X<W; X+=0.005) {
x = x_min + (x_max-x_min)*X/W;
let str = formula.value;
y = eval(str);
Y = H*(y-y_max)/(y_min-y_max);
if((Y_old<Y && Y_old<Y_older && X>0.02) && Math.abs(Y_old-Y) < 0.1 && Math.abs(Y_older-Y_old) < 0.1)
{
ctx.fillStyle = "brown";
ctx.fillRect(X-3,Y_old-3,6,6);
}
if((Y_old>Y && Y_old>Y_older && X > 0.02) && Math.abs(Y_old-Y) < 0.1 && Math.abs(Y_older-Y_old) < 0.1)
{
ctx.fillStyle = "brown";
ctx.fillRect(X-3,Y_old-3,6,6);
}
Y_older = Y_old;
Y_old = Y;
}
}
```
Пример выполнения программы:

## Неожиданный эффект интерпретатора функций
Строка вызывает ошибку выбора приоритета операции
```jsx=
-sin(x)**32+2
```
Правильный вариант должен выглядить так
```jsx=
-(sin(x)**32)+2
```