Система 2 уравнений в Паскале (графическое решение) - Turbo Pascal
Формулировка задачи:
Имеется 2 функции, заданные неявно:
F1=cosd(0.2*x^2-y)-4*x*y+2*x-4*y+0.684444=0 где cosd косинус с аргументом в градусах F2=0.25*y^2-(1-x^2)^3+0.956562=0 Необходимо построить их графики в одной системе координат и выделить точку(и) их пересечения. Вывести график и систему координат вроде не проблема, проблема в поиске точек графиков. Прошу помочь, т.к. сам никак не могу додуматься, как можно найти координаты точек (неужто перебор по всем точкам???)Решение задачи: «Система 2 уравнений в Паскале (графическое решение)»
textual
Листинг программы
uses graph; function f1(x,y:real):real; begin f1:=cos((0.2*x*x-y)*pi/180)-4*x*y+2*x-4*y+0.684444; end; function f2(x,y:real):real; begin f2:=0.25*y*y-sqr(1-x*x)*(1-x*x)+0.956562 end; var x,y,m:real; x1,y1,x2,y2,xc,yc:integer; begin initgraph(xc,yc,''); xc:=getmaxX div 2; yc:=getmaxY div 2; m:=(yc-20)/5; x:=-2.5; while x<=2.5 do begin y:=-2.5; while y<=2.5 do begin if abs(f1(x,y))<0.01 then begin x1:=xc+round(x*m); y1:=yc-round(y*m); putpixel(x1,y1,9); end; if abs(f2(x,y))<0.001 then begin x2:=xc+round(x*m); y2:=yc-round(y*m); putpixel(x2,y2,12); end; y:=y+0.001; end; x:=x+0.001; end; readln end.
Объяснение кода листинга программы
- Подключается библиотека graph.
- Определяются две функции f1 и f2, которые принимают два аргумента типа real и возвращают значение типа real.
- Объявляются переменные x, y, m типа real.
- Объявляются переменные x1, y1, x2, y2, xc, yc типа integer.
- Вызывается функция initgraph с аргументами xc, yc, пустая строка.
- Вычисляется значение переменной m как (yc — 20) / 5.
- Инициализируются переменные x и y как -2.5.
- Запускается цикл while, который выполняется, пока значение переменной x не станет больше или равно 2.5.
- Внутри цикла while запускается другой цикл while, который выполняется, пока значение переменной y не станет больше или равно 2.5.
- Внутри циклов while проверяется абсолютное значение функций f1 и f2, вычисленных для текущих значений x и y.
- Если абсолютное значение функции f1 меньше 0.01, то вычисляются координаты x1 и y1 с помощью функций initgraph и putpixel.
- Если абсолютное значение функции f2 меньше 0.001, то вычисляются координаты x2 и y2 с помощью функций initgraph и putpixel.
- После окончания внутреннего цикла while значение переменной y увеличивается на 0.001.
- После окончания внешнего цикла while значение переменной x увеличивается на 0.001.
- Выводится команда readln для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д