Cоставить программу вычисления арифметического выражения для

заданных значений x, y, z :
C++

Приложения:

Ответы

Ответ дал: settom
3

Ответ:

#define _USE_MATH_DEFINES

#include <iostream>

#include <math.h>

int main()

{

   setlocale(LC_ALL, "rus");

   double x, y, z, result;

   std::cout << "Введите x,y,z: \n";

   std::cin >> x >> y >> z;

   result = tan(x + y) - pow(M_E, y - z) * sqrt(cos(pow(x, 2)) + sin(pow(z, 2)));

   std::cout << "Результат: " << result;

}

Этот код не проверяет корректность введённых данных.

То есть если x+y будет равен π/2 или выражение под корнем будет отрицательным, будет ошибка приложения

Такой вариант с обработкой исключений

#define _USE_MATH_DEFINES

#include <iostream>

#include <math.h>

int main()

{

   setlocale(LC_ALL, "rus");

   double x, y, z, result, result2;

   std::cout << "Введите x,y,z: \n";

   std::cin >> x >> y >> z;

   try  

   {

       result2 = cos(pow(x, 2)) + sin(pow(z, 2));

       if (result2 < 0) throw "подкоренное выражение меньше нуля";

       if ((x + y) == M_PI_2) throw "тангенс не определён";

       result = tan(x + y) * pow(M_E, y - z) * sqrt(result2);

       std::cout << "Результат: " << result;

     

   }

   catch(const char* exception)

   {

       std::cout << "Результат не может быть вычислен поскольку " << exception;

   }

}


settom: Да, вместо (x + y) == M_PI_2 правильнее будет написать ((x + y) % M_PI_2 ) == 0 , поскольку тангенс функция периодическая
Вас заинтересует