Объяснить код

Отменен
Заказ
2878061
Раздел
Программирование
Антиплагиат
Не указан
Срок сдачи
27 Дек 2019 в 16:00
Цена
Договорная
Блокировка
5 дней
Размещен
27 Дек 2019 в 13:07
Просмотров
89
Описание работы

Помогите объяснить строчки в коде:


//---------------------------------------------------------------------------

#include

#include

#include


//---------------------------------------------------------------------------


double func(double x)

{

double y;

y = -(expf(-x)) + 0.5 + sqrt(fabs(x));

return y;

}

double** findRoot(double xmin, double xmax, double step, int count_intervs)

{

double** intervs;

int n = fabs((xmax - xmin) / (2 * step));

intervs = (double**)malloc(sizeof(double*) * n);

for (int i = 0; i < n; i++)

{

intervs[i] = (double*)malloc(sizeof(double) * 2);

intervs[i][0] = 0.0;

intervs[i][1] = 0.0;

}


for (double x = xmin; x <= xmax; x += step)

{

double y = func(x);

printf("y: %lf\tx: %lf\n", y, x);

if (y * func(x + step) < 0)

{

intervs[count_intervs][0] = x;

intervs[count_intervs++][1] = x + step;

}

}

return intervs;

}

double Mpol(double a, double b, double step)

{

double c;

while ((b - a) / 2 > step)

{

c = (a + b) / 2;

if ((func(a) * func(c)) > 0) a = c;

else b = c;

}

return c;

}

double Mxo(double xmin, double xmax, double step)

{

double x_kor = 0;

double tmp;


do

{

tmp = x_kor;

x_kor = xmax - func(xmax) * (xmin - xmax) / (func(xmin) - func(xmax));

xmin = xmax;

xmax = tmp;

} while (fabs(x_kor - xmax) > step);


return x_kor;

}


int main(int argc, char* argv[])

{

int count_intervs = 0;

double** res = findRoot(-1.0, 1.0, 0.05, count_intervs);

printf("\nintervals: %d\n\n", count_intervs);

for (int i = 0; i < count_intervs; i++)

{

printf("[%lf;%lf]\n", res[i][0], res[i][1]);

}

double g1 = Mxo(-1.0, 1.0, 0.001);

double g2 = Mpol(-1.0, 1.0, 0.001);

printf("\nkor:%lf\n\n", g1);

printf("\nkor:%lf\n\n", g2);

system("pause");

return 0;

}

//---------------------------------------------------------------------------

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир