C/C++

Помогите с кодом для C++

Подскажите пожалуйста что не так с кодом, выводится пустое поле.
И у меня в данных П/2 как мне его вводить ?
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "russian");
float a,b,xp,xk,h,x,y;
cout << "a= "; cin >> a;
cout << "b= "; cin >> b;
cout << "xp= "; cin >> xp;
cout << "xk= "; cin >> xk;
cout << "h= "; cin >> h;
x = xp;
cout << "Аргумент" << "\t" << "Функция " << endl;
cout << setiosflags(ios::scientific);
while (x <= xk + h/2);
{
y = b * pow(x,7.1) * log10(x) * (a*x) + exp(a*b) * pow(tan(x),2) * (a * x) / acos(x) * (0.05 * b * x) ;
cout << x << "\t" << "\t" << y << endl;
x += h;
}
system ("pause");
return 0;
}
while (x <= xk + h/2);
лишняя точка с запятой между условием и телом цикла
Vasiliy Terent'ev
Vasiliy Terent'ev
25 445
Лучший ответ
Роман Горбанев Пасибо, но у меня еще вопросы, мне нужно вводить П/2 как его ввести ( когда ввожу все скипается в компиляторе) и правильный ли я записал пример ?
Dmitrii Ivanov log(a*x) в задании натуральный логарифм, не десятичный.
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
bool bad_argument(double arg) {
static const auto pi = 3.1415926535897932;
static const auto pi_2 = pi / 2.0;
static const auto pi_3_4 = pi + pi_2;
static const auto eps = 1e-12;
if (fabs(arg - pi) <= eps) return true;
if (fabs(arg - pi_2) <= eps) return true;
if (fabs(arg - pi_2) <= eps) return true;
return false;
}
int main() {
const auto a = 0.69;
const auto b = 0.46;
const auto xk = 3.1415926535897932;
const auto xp = xk / 2.0;
const auto h = xk / 10.0;
//const auto a = real("a: ");
//const auto b = real("b: ");
//const auto xp = real("xp: ");
//const auto xk = real("xk: ");
//const auto h = real("h: ");
const auto end = xk + h / 10.0;
cout.setf(ios::fixed);
system("chcp 1251 > nul");
cout << "\tАргумент\t\tФункция\n\n";
for (auto x = xp; x < end; x += h) {
cout << setw(20) << setprecision(15) << x;
const auto arg = 0.05 * b * x;
const auto ax = a * x;
if (bad_argument(arg) || ax <= 0) cout << setw(17) << "-\n";
else {
const auto bx = b * x;
const auto ab = a * b;
const auto y = pow(bx, 7.1) * log10(ax) + (exp(ab) * pow(tan(ax), 2) / acos(arg));
cout << setw(25) << setprecision(15) << y << '\n';
}
}
system("pause > nul");
}
Если надо просто получить таблицу функции у на [π/2;π] с шагом h=π/10, то вводить вообще ничего не надо, надо только выводить:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std; double a = 0.69, b = 0.46;
double y(double x) { return b * pow(x, 7.1) *
log10(a * x) + exp(a * b) * pow(tan(a * x), 2) / acos(0.05 * b * x); }
int main() { double x, x0 = M_PI / 2, h = M_PI / 10; for(int i = 0; i <= 5; i++) { x = x0 + i * h; cout << setprecision(16) << setw(17) << x << " » " << setprecision(16) << setw(20) << y(x) << endl; } }
Андрей Амосов
Андрей Амосов
29 440
Николай Зиненко это программа которая ищет и исправляет ошибки. по крайней мере на html точно