Код:
#include
#include
int main()
{
double x, h, q;
printf("Введите x, h, q: ");
scanf("%lf%lf%lf", &x, &h, &q);
double x2 = x * x;
double x3 = x * x2;
double x5 = x * x2 * x2;
double cosx3 = cos(x3);
double d = sqrt(fabs(atan(x5))) + log10(x3);
double f = fabs(h - exp(x)) / q / sqrt(sqrt(x)) - cosx3 * cosx3;
double dminusf = d - f;
double r = dminusf * dminusf;
printf("D = %.2lf F = %.2lf R = %.2lf\n", d, f, r);
return 0;
}
Пример:
Введите x, h, q: 2.4 5.1 2.7
D = 2.39 F = 1.67 R = 0.52
Ответы на вероятные вопросы преподавателя:
- Почему для возведения в степени 2, 3 и 5 не используется pow?
Потому что pow медленный. Прямое умножение быстрее, чем pow, как минимум в 5 раз (зависит от платформы), поэтому четыре умножения быстрее двух вызовов pow раза в 2 с половиной. - Почему для вычисления корня четвёртой степени используется sqrt вместо pow?
По той же причине, что и выше: sqrt в разы быстрее, и два вызова sqrt быстрее, чем один pow. - Где блок-схема? Блок-схема для данного алгоритма состоит из 5 блоков: "начало", "ввод данных", "расчёт", "вывод данных", "конец". Иными словами, она тривиальная: ни ветвлений, ни циклов, и даже содержательный шаг всего один ("расчёт"). В него можно скопировать все вычисления из программы.
исходные данные с клавиатуры, сопровождающиеся соответствующим текстовым приглашением.