Advertisement
Hamikadze

Untitled

Oct 3rd, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. // LETIINF3.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "cmath"
  6. #include "iostream"
  7.  
  8. double a, a_abs, b, r;
  9.  
  10. double f_line(double x)
  11. {
  12.     double x1 = 0;
  13.     double y1 = b;
  14.     double x2 = 2 * a_abs;
  15.     double y2 = -b;
  16.     return  ((y1 - y2)*x + (x1*y2 - x2*y1)) / (x1 - x2);
  17. }
  18. double s_line(double x)
  19. {
  20.     double x1 = 2 * a_abs;
  21.     double y1 = -b;
  22.     double x2 = 4 * a_abs;
  23.     double y2 = b;
  24.     return  ((y1 - y2)*x + (x1*y2 - x2*y1)) / (x1 - x2);
  25. }
  26. double get_y(double x)
  27. {
  28.     a_abs = fabs(a);
  29.  
  30.     if (x <= 0)
  31.     {
  32.         return get_y(4 * a_abs - fmod(x, 4 * a_abs));
  33.     }
  34.     else {
  35.         if (x <= 2 * a_abs)
  36.         {
  37.             return  f_line(x);
  38.         }
  39.         else
  40.         {
  41.             if (x <= 4 * a_abs)
  42.             {
  43.                 return s_line(x);
  44.             }
  45.             else
  46.             {
  47.                 return get_y(fmod(x, 4 * a_abs));
  48.             }
  49.         }
  50.     }
  51. }
  52.  
  53. void main()
  54. {
  55.     setlocale(LC_CTYPE, "Russian");
  56.  
  57.     std::cout <<
  58.         "Определение значение y для заданного значения x по переодическому графику." << "\n" <<
  59.         "С использованием параметров a и b" << "\n" <<
  60.         "Автор : Визгунов Андрей Дмитриевич ФКТИ 7302" << "\n" <<
  61.         "Версия : 23Б.1" << "\n";
  62.     setlocale(LC_CTYPE, "Russian");
  63.     double x, y;
  64.     std::cout << "Введите зачение параметра a : ";
  65.     std::cin >> a;
  66.     std::cout << "Введите зачение параметра b : ";
  67.     std::cin >> b;
  68.     std::cout << "Введите зачение переменной x : ";
  69.     std::cin >> x;
  70.  
  71.     y = get_y(x);
  72.     y = y == -0 ? fabs(y) : y;
  73.     std::cout << "Для переменной x = " << x << " и параметров a = " << a << " , b = " << b << " значение y = " << y << "\n";
  74.     system("PAUSE");
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement