Другие языки программирования и технологии

Помощь в программирование С++

Напишите программу для расчета по двум формулам. Предварительно подготовьте тестовые примеры по второй формуле с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй). Список математических функций библиотеки С++ приведен в Учебнике на с. 410.Для их использования необходимо подключить к программе заголовочный файл
// Двоечник и лентяй
#include < math.h >
#include < iostream >
int main()
{
double alpha = M_PI / 6; // 30 градусов = 3.14159 / 6 * 180 / 3.14159
double z1 = (1. - 2. * pow(sin(alpha), 2.)) / (1. + sin(2. * alpha));
double z2 = (1. - tan(alpha)) / (1. + tan(alpha));
std::cout << "z1=" << z1 << "; z2=" << z2 << "\n";
return 0;
}
// Использованы функции, описанные в
// https://ru.wikipedia.org/wiki/Math.h , https://ru.wikipedia.org/wiki/Iostream
Марат Серпокрылов
Марат Серпокрылов
8 797
Лучший ответ
Джим Йорк Краткость - сестра таланта, и комментарии по делу. Только неплохо было бы еще дополнить, что для работы с функциями, описанными в math.h, необходимо подключить математическую библиотеку. Она, между прочим, по умолчанию подключается далеко не везде.
#include < iostream >
#include < windows.h >
#include < cmath >
#include < iomanip >

using namespace std;

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");

double k = (atan(1) * 4) / 180.;

int type_ = -1;
for (;;)
{
cout << "Укажите единицы измерения угла: 1 - градусы, 2 - радианы ";
cin >> type_;
if (type_ == 1 || type_ == 2)
{
break;
}
else
{
cout << "Ошибка. Повторите ввод" << endl;
type_ = -1;
}
}

double a, step, b;
for (;;)
{
cout << "Введите начальное значение угла в "
<< ((type_ == 1) ? "градусах" : "радианах")
<< ", шаг, конечное значение через пробел ";
cin >> a >> step >> b;
if (a <= b && step > 0)
{
break;
}
else
{
cout << "Ошибка. Повторите ввод" << endl;
a = 0; b = 0; step = 0;
}
}

auto cell = 12u;

cout << setw(cell) << "Угол"
<< setw(cell) << "z1"
<< setw(cell) << "z2";
cout << endl;
cout << endl;
cout << setiosflags(ios::fixed)
<< setprecision(6);
for (;a <= b; a += step)
{
double aa = (type_ == 1) ? a * k : a;
double z1 = (1 - 2 * pow(sin(aa), 2)) / (1 + sin(2 * aa));
double z2 = (1 - tan(aa)) / (1 + tan(aa));
cout << setw(cell) << a
<< setw(cell) << z1
<< setw(cell) << z2;
cout << endl;
}
cout << endl;

system("pause");
return 0;
}
Dastan Jumadil
Dastan Jumadil
8 552