---
# System prepended metadata

title: Учебная практика 2022. Понедельник 04.07 . Лазаренко Дарья Геннадьевна. Первая группа.

---

# Учебная практика 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;
                                }
    }
```

Пример выполнения программы:
![](https://i.imgur.com/cX80qKb.png)

## Неожиданный эффект интерпретатора функций

Строка вызывает ошибку выбора приоритета операции
```jsx=
-sin(x)**32+2
```

Правильный вариант должен выглядить так
```jsx=
-(sin(x)**32)+2
```