Тема: Допоможіть, будь ласка, редагувати код
Завдання:
Написати програму на С++, котра розв‘язує функцію ( фото нижче) за за алгоритмом стаї вовків.
Код:
#include <cmath>
#include <iostream>
using namespace std;
float function(float x,float y);
int main() {
float result,maxX,maxY,naibolshee,nowX,nowY;
nowX= -10.01f;
nowY= -10.01f;
naibolshee = -999999;
for(int x = -1000;x<=1000;x++){
nowX+=0.01f;
nowX=round(nowX*100)/100;
nowY= -10.01f;
for(int y = -1000;y<=1000;y++){
nowY+=0.01f;
nowY=round(nowY*100)/100;
result=function(nowX,nowY);
if(naibolshee<result){
naibolshee = result;
maxX=nowX;
maxY=nowY;
}
}
}
cout<<"Максимальне значення функції - "<<naibolshee<<" При цьому Х = "<<maxX<<" А У = "<<maxY<<endl;
return 0;
}
float function(float x,float y){
bool ODZ=false;
if((pow(x,2.0)+pow(y,2.0))<0){
ODZ=true;
}
if((pow(1.0+0.001*(pow(x,2.0)+pow(y,2.0)),2.0))==0){
ODZ=true;
}
if(!ODZ){
float result=(0.5+(pow(sin(pow(pow(x,2.0)+pow(y,2.0),1.0/2.0)),2.0)-0.5))/(pow(1.0+0.001*(pow(x,2.0)+pow(y,2.0)),2.0));
return result;
}else{
cout<<"невірне ОДЗ Х= "<<x<<" У= "<<y<<endl;
}
}