Добавил:
wso_studf
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
cout << "Вариант №3" << endl;
cout << "Лабораторная работа №4(1)" << endl;
double N = 12.0;
double a = 2.0;
double x_start = 0.3;
double x_end = 0.35;
double eps, x, y;
int i = 1;
int choice;
cout << "Выберите вариант цикла для исполнения программы:\n\t1 - цикл с предусловием\n\t2 - цикл с постусловием\n";
cin >> choice;
while ((choice <= 0 || choice > 2) || cin.fail())
{
cin.clear();
cin.ignore(32767, '\n');
cout << "\nВы ввели не допустимое значение.\n1 или 2?: ";
cin >> choice;
}
cout << "\nВыберите значение для переменной эпсилон, бесконечно малое число больше 0: ";
cin >> eps;
while (eps <= 0 || cin.fail()) {
cin.clear();
cin.ignore(32767, '\n');
cout << "\nВы ввели не допустимое значение.\nВведите любое бесконечно малое число больше 0: ";
cin >> eps;
}
x = x_start + eps;
cout << endl;
switch (choice)
{
case 1:
{
cout << "Выполняется цикл с предусловием.\n" << endl;
if (x > x_end)
{
cout << "Вы ввели слишком большое число. Попробуйте 0.001, например.\nПроисходит завершение работы программы ..." << endl;
return 0;
}
while (i <= N)
{
if (i == 1) cout << "Таблица вычислений\n" << endl;
cout << "Итерация " << i << '\t';
cout << "x = " << x << '\t';
y = (tan(a*x) - pow(x, 2)) / (2 + pow(a, 2));
cout << "Значение функции f(x) = " << y << endl;
x += eps;
i++;
if (x > x_end)
{
cout << "Дальнейшее вычисление не возможно, значение функции выходит за предел установленный заданием." << endl;
break;
}
}
break;
}
case 2:
{
cout << "Выполняется цикл с постусловием.\n" << endl;
do{
if (x > x_end && i == 1)
{
cout << "Вы ввели слишком большое число. Попробуйте 0.001, например.\nПроисходит завершение работы программы ..." << endl;
return 0;
}
else
{
if (i == 1) cout << "Таблица вычислений\n" << endl;
cout << "Итерация " << i << '\t';
cout << "x = " << x << '\t';
y = (tan(a*x) - pow(x, 2)) / (2 + pow(a, 2));
cout << "Значение функции f(x) = " << y << endl;
x += eps;
i++;
if (x > x_end)
{
cout << "Дальнейшее вычисление не возможно, значение функции выходит за предел установленный заданием." << endl;
break;
}
}
}
while (i <= N);
}
}
return 0;
}
Соседние файлы в папке 2 курс - Основы алгоритмизации _ вариант 3