Advertisement
Julia_S

2.6_option17

Dec 1st, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. //-----------------------------------MAIN------------------------------
  2. //Реализуйте модуль, подключение которого перегружает операции помещения в
  3. //поток вывода и извлечение из потока ввода для класса, содержащего методы разложения
  4. //функции exp(x) + exp(ax) в ряд Тейлора.На экран должно выводиться n первых слагаемых
  5. //формулы Тейлора.Значения a и n определяет пользователь.
  6. #include "pch.h"
  7. #include <iostream>
  8. #include "Header.h"
  9.  
  10.  
  11. int main() {
  12. setlocale(LC_ALL, "Russian");
  13.  
  14. ac ac;
  15. cin >> ac;
  16. cout << ac;
  17.  
  18. system("pause");
  19. }
  20. //----------------------------Header.h-----------------------------------------
  21. #pragma once
  22. #include <iostream>
  23. using std::istream;
  24. using std::ostream;
  25. using std::cin;
  26. using std::cout;
  27. class ac {
  28. float a;
  29. float n;
  30. float x;
  31.  
  32. public:
  33. friend istream& operator >> (istream&, ac&); //Прототип функции, сама функция вынесена за класс (ввод)
  34. friend ostream& operator << (ostream&, ac&); //Прототип функции, сама функция вынесена за класс (вывод)
  35. ac();
  36.  
  37. };
  38.  
  39. ac::ac() {
  40. a = 0;
  41. n = 0;
  42. x = 0;
  43. }
  44.  
  45.  
  46. istream& operator >> (istream& stream, ac& ac) { //Сама функция, перегрузка операции >>
  47. cout << "Введите a: \t";
  48. stream >> ac.a; //сейчас stream вместо cin, но в ином случае вместо cin могут другие объекта потока ввода
  49.  
  50. cout << "Введите n: \t";
  51. stream >> ac.n;
  52. cout << "Введите x: \t";
  53. stream >> ac.x;
  54. return stream;
  55. }
  56.  
  57. ostream& operator << (ostream& stream, ac& ac) { //Сама функция, перегрузка операции <<
  58. float gh = 0.0;
  59. int w = 1;
  60. for (int st = 0; st < ac.n; st++) {
  61. gh = (exp(st*(log(ac.a*ac.x))) / w + exp(st*(log(ac.x))) / w);
  62. w = 1;
  63. for (int j = 1;j <= (st + 1);j++) {
  64. w = w * j;
  65. }
  66. if (st < (ac.n - 1)) {
  67. stream << gh << " + ";
  68. }
  69.  
  70. if (st == (ac.n - 1)) stream << gh << " \n";
  71. }
  72. return stream;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement