SteelK

7_3

Nov 21st, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.77 KB | None | 0 0
  1. //#include "stdafx.h" // Если запускаем программу в Visual Studio, убираем первые "//" перед #
  2. #include <iostream>
  3. #include "cmath"
  4. #include <conio.h> // Для функции getch()
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.     setlocale(LC_ALL, "rus_rus.1251");
  10.  
  11.     cout << "Введите номер нужного пункта. (Любая другая клавиша - выход)" << endl << endl;
  12.     cout << "\t1. Вычисление значений функции для некоторого промежутка значений X" << endl;
  13.     cout << "\t2. Вычисления определенного интеграла методом прямоугольника" << endl;
  14.    
  15.     //getch() сразу принимает символ от пользователя и отправляет его в switch
  16.     switch(getch()){
  17.        
  18.         //Пункт, в котором происходит вычисление значений функции для некоторого промежутка значений X
  19.         case '1':{
  20.             cout << endl;
  21.             long double x1, x2, n, func; // x1, x2 - границы, n - шаг, func - значение функции
  22.             cout << endl << "Введите начало промежутка и конец промежутка значений X" << endl;
  23.             cin >> x1;
  24.             cin >> x2;
  25.             cout << endl << "Введите точность перебора значений X" << endl;
  26.             cin >> n;
  27.            
  28.             //Если вдруг начало промежутка больше конца, то их значения будут поменяны местами
  29.             if (x2 < x1){
  30.                 int bufer = x1;
  31.                 x1 = x2;
  32.                 x2 = bufer;
  33.             }
  34.            
  35.             //Проверка n>0 для того, что бы исключить существование нулевого шага
  36.             if (n > 0){
  37.                 for (long double x = x1; x <= x2; x += n){
  38.                     func = (5+2*cos(2*x))/(sqrt(11)-sin(x+1));
  39.                     cout << "Значение функции при X = " << x << " равно " << func << endl << endl;
  40.                 }
  41.             }
  42.             else{
  43.                 cout << "Точность перебора не может быть равна нулю..." << endl;
  44.                 exit(1);
  45.             }
  46.         }
  47.         break;
  48.    
  49.         //Пункт, в котором происходит вычисление определенного интеграла методом прямоугольника
  50.         case '2':{
  51.             cout << endl;
  52.             cout << "Введите границы a и b для нахождения интеграла функции" << endl;
  53.             // a, b - границы, n - шаг, fx - значение функции, integr - сумма значений функции, endResult - требуемый результат
  54.             long double a, b, n, fx, integr = 0, endResult;
  55.             cin >> a;
  56.             cin >> b;
  57.             cout << "Введите точность расчета n\n";
  58.             cin >> n;
  59.            
  60.             //Если вдруг начало промежутка больше конца, то их значения будут поменяны местами
  61.             if (b < a){
  62.                 int bufer = b;
  63.                 b = a;
  64.                 a = bufer;
  65.             }
  66.            
  67.             //Проверка n>0 для того, что бы исключить существование нулевого шага
  68.             if (n > 0){
  69.                 for (long double x = a; x <= b; x += n){
  70.                     fx = (5+2*cos(2*x))/(sqrt(11)-sin(x+1));
  71.                     integr += fx;
  72.                 }
  73.                 endResult = ((b-a)/n)*integr;
  74.                 cout <<"Интеграл функции = " << endResult << endl;
  75.             }
  76.             else{
  77.                 cout << "Точность расчета не может быть равна нулю..." << endl;
  78.                 exit(1);
  79.             }
  80.         }
  81.         break;
  82.        
  83.         //При любой клавише, кроме '1' и '2', выполняется это
  84.         default:{
  85.             cout << endl;
  86.             cout << "Выход..." << endl;
  87.         }
  88.         break;
  89.     }
  90.     return 0;
  91. }
Add Comment
Please, Sign In to add comment