1

Тема: Допоможіть, будь ласка, редагувати код

Завдання:
Написати програму на С++, котра розв‘язує функцію ( фото нижче) за за алгоритмом стаї вовків.https://replace.org.ua/uploads/images/9713/55652a8fb4530fee157290d34efa67c2.jpeg


Код:

#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;

  }

}

2

Re: Допоможіть, будь ласка, редагувати код

не потрібне тобі ОДЗ. бо знаменник завжди більше 1

3

Re: Допоможіть, будь ласка, редагувати код

Кожного року дізнаюся щось нове про дієслово "розв'язати". Тепер, виявляється, можна розв'язувати функцію.
Розв'язувати можна задачу. Ну, ще рівняння. І вузол. У крайньому разі проблему. Але функцію - ні. У функції можна знайти значення. Можна щось через неї виразити. Можна знайти її похідну, екстремуми, ще бозна-що - але розв'язати функцію неможливо.
А що вам, власне треба від цього коду? В чому питання? Щоб редагувати код, необхідно використовувати клавіші з літерами, але це, здається, ви і без мене знаєте.
Я так розумію, вам треба знайти максимальне значення функції, і ви це робите перебором по обох змінних з кроком 0.01. Чесно, я не знайомий з алгоритмом зграї вовків, гугл каже, що це щось новеньке; але не думаю, що він зводиться до тупого перебору. Погугліть і запрограмуйте, якщо вам уже таке завдання дали.