Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
7
Добавлен:
19.08.2022
Размер:
2.06 Кб
Скачать
#include <iostream>
#include <string>
#include <cmath>

using namespace std;

float check_fail_input(float s);

int main(){
    setlocale(LC_ALL, "rus");

    cout << "Вариант №3" << endl;
    cout << "Лабораторная работа №2" << endl;

    float a, b, x, y, z, temp_result_a;

    string f1 = "Функция y = f(x) = ";
    string f2 = "Функция z = f(y,a,b) = ";

    string string_bad_integer = "\nВы ввели не допустимое значение.\nВведите неотрицательное число a: ";
    
    cout << "Введите неотрицательное число a: ";
    cin >> a;

    while (cin.fail()) {
        cin.clear();
        cin.ignore(32767, '\n');
        cout << string_bad_integer;
        cin >> a;
    }

    if (a == -0 || a == +0)
        a = 0;

    while (a < 0){
        cout << string_bad_integer;
        cin >> a;
        if (a == -0 || a == +0) {
            a = 0;
        }
    }

    cout << "Введите число b: ";
    cin >> b;
    b = check_fail_input(b);

    cout << "Введите число x: ";
    cin >> x;
    x = check_fail_input(x);

    cout << "Вы ввели значения: " << "a = " << a << ", b = " << b << ", x = " << x << endl;

    temp_result_a = sqrt(sqrt(a) + 3.3);

    y = (sin(x) + 1.5) / (2 * x - 1);
    z = (pow(y, 3) + temp_result_a) / (b + temp_result_a);

    cout << f1 << y << endl;
    cout << f2 << z << endl;

    // тестовый набор 1 (a = 9; b = 2.4; x = -3)
    // f1 = -0.194126; f2 = 0.50971;

    // тестовый набор 2 (a = 4; b = 0.8; x = 0)
    // f1 = -1.5; f2 = -0.345831;

    // тестовый набор 3 (a = 20; b = -2; x = 4)
    // f1 = 0.106171; f2 = 3.54006;

    return 0;
}

float check_fail_input(float s){
    while (cin.fail()) {
        cin.clear();
        cin.ignore(32767, '\n');
        cout << "\nВы ввели не допустимое значение.\nВведите число заново: ";
        cin >> s;
    }
    return s;
}
Соседние файлы в папке 2 курс - Основы алгоритмизации _ вариант 3