#include <iostream>
using namespace std;
double y(double a, double b, double c, double x) {
if (c == x && b + c + x != 0)
return ((a + b) * (a + c) * (a + x)) / (b + c + x);
if (c != x && 1 + b != 0 && 1 + a != 0 && a / (1 + b) + b / (1 + a) >= 0)
return sqrt(a / (1 + b) + b / (1 + a));
return -1e9 - 7;
}
signed main() {
double a, b, c, x, ans;
cin >> a >> b >> c >> x;
ans = y(a, b, c, x);
ans == -1e9 - 7 ? cout << "No solution" : cout << ans;
}
Адекватность.
Объяснение:
Моделирование всегда предполагает принятие допущений той или иной степени важности. При этом должны удовлетворяться следующие требования к моделям:
а) адекватность, то есть соответствие модели исходной реальной системе и учет, прежде всего, наиболее важных качеств, связей и характеристик. Оценить адекватность выбранной модели, особенно, например, на начальной стадии проектирования, когда вид создаваемой системы ещё неизвестен, очень сложно. В такой ситуации часто полагаются на опыт предшествующих разработок или применяют определенные методы, например, метод последовательных приближений;
б) точность, то есть степень совпадения полученных в процессе моделирования результатов с заранее установленными, желаемыми. Здесь важной задачей является оценка потребной точности результатов и имеющейся точности исходных данных, согласование их как между собой, так и с точностью используемой модели;
в) универсальность, то есть применимость модели к анализу ряда однотипных систем в одном или нескольких режимах функционирования. Это позволяет расширить область применимости модели для решения большего круга задач;
г) целесообразная экономичность, то есть точность получаемых результатов и общность решения задачи должны увязываться с затратами на моделирование. И удачный выбор модели, как показывает практика, - результат компромисса между отпущенными ресурсами и особенностями используемой модели и др.
Программа на паскале