Добавил:
wso_studf
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
using namespace std;
float count_sn(float x, float a_n, float S_n);
float count_se(float x, float e, float a_n, float S_n);
float count_s(float x, float pi);
int main(){
setlocale(LC_ALL, "rus");
cout << "Вариант №3" << endl;
cout << "Лабораторная работа №6" << endl;
float a, b, e, S, x, a_n, S_n, S_e;
a = 0.1;
b = 0.8;
float const h = ((b - a) / 10);
float const pi = 3.14;
e = 0.0001;
x = a;
int N = 40, n = 1, space = 5, space_standard = 10;
a_n = pow(x, n) * sin(n * (pi/4));
S_n = a_n;
S_e = S_n;
// S = (x*sin(pi/4)) / (1 - 2*x*cos(pi/4) + x*x);
cout << "Введите значение для переменной N (целое число): " << endl;
cin >> N;
while (N < 1)
{
cout << "Вы ввели не верное значение, попробуйте снова." << endl;
cin >> N;
}
cout << "Введите значение для заданной точности эпсилон (например 0.1 или 0.0001): " << endl;
cin >> e;
if (e == 0)
{
cout << "Вы ввели не верное значение, попробуйте снова." << endl;
cin >> e;
}
while (e > 0.1)
{
cout << "Вы ввели не верное значение, попробуйте снова." << endl;
cin >> e;
}
cout << "Введите значение начала интервала значений х (например 0.2): " << endl;
cin >> a;
if (a == 0)
{
cout << "Вы ввели не верное значение, попробуйте снова." << endl;
cin >> a;
}
cout << "Введите значение для окончания интервала значений х (конец интервала должен быть больше, чем начало!): " << endl;
cin >> b;
if (b <= a)
{
cout << "Вы ввели не верное значение, попробуйте снова." << endl;
cin >> b;
}
// начало отрисовки таблицы
cout << setw(space) << "N п/п" << setw(space_standard) << "x" << setw(space_standard) << "Sn" << setw(space_standard) << "Se" << setw(space_standard + space) << "S" << endl; // вывод заголовка
for (int i = 1; i <= N; i++) // вывод тела таблицы
{
x += h;
a_n = pow(x, n) * sin(n * (pi/4));
S_n = count_sn(x, a_n, S_n);
S_e = count_se(x, a_n, S_n, e);
S = count_s(x, pi);
cout << setw(space) << i << setw(space_standard) << x << "\t" << setw(space_standard) << S_n << "\t" << setw(space_standard) << S_e << "\t" << setw(space_standard) << S << endl;
}
return 0;
}
float count_sn(float x, float a_n, float S_n){
S_n += a_n;
return S_n;
}
float count_se(float x, float e, float a_n, float S_n){
if (x > e)
{
float S_e;
S_e = count_sn(x, a_n, S_n);
return S_e;
}
else return 0;
}
float count_s(float x, float pi){
float S;
return S = (x*sin(pi/4)) / (1 - 2*x*cos(pi/4) + x*x);
}