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