Advertisement
SteelK

Untitled

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