Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
19.08.2022
Размер:
3.28 Кб
Скачать
#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);

}
Соседние файлы в папке 2 курс - Основы алгоритмизации _ вариант 3