Исходник программы - класс многочлен от одной переменной на Си(C++)


Добавил:DMT
Дата создания:30 апреля 2008, 21:37
Дата обновления:30 апреля 2008, 21:37
Просмотров:14089 последний сегодня, 4:28
Комментариев: 4
Исходник программы - класс многочлен от одной переменной
Определены как дружественные функции подпрограммы ввода с клавиатуры и вывода на экран данных, определяющих объекты этого класса. Перегружены операции: произведение,сумма, разность, свободный коэффициент и функции с помощью составных функций класса.
Многочлен от одной переменной задается массивом вещественных коэффициентов и степенью многочлена.
Код на C++
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <math.h>
  4.  
  5. class mn
  6. {
  7. private:
  8. int n;
  9. double *x;
  10. public:
  11. mn();
  12. ~mn();
  13. mn(int n,double *x);
  14. double cs();
  15.  
  16. mn &operator=(const mn &Object); // Перегрузка =
  17. mn operator+(mn &); // Сложение
  18. mn operator-(mn &); // Вычитание
  19. mn operator*(mn &); // Перемножение
  20.  
  21. // Перегрузка оператора << для вывода
  22. friend ostream &operator<<(ostream &, mn &);
  23. // Перегрузка оператора >> для ввода матрицы
  24. friend istream &operator>>(istream &, mn &);
  25.  
  26. };
  27.  
  28. mn::mn(int nn,double *xx)
  29. {
  30. unsigned char i;
  31. n=nn;
  32. x=new double[n+1];
  33. for(i=0;i<=n;x[i++]=xx[i]);
  34. }
  35.  
  36. mn::mn()
  37. {
  38. double x[1]={0};
  39. mn::mn(0,x);
  40. }
  41.  
  42. mn::~mn()
  43. {
  44. delete []x;
  45. }
  46.  
  47. double mn::cs()
  48. {
  49. return x[0];
  50. }
  51.  
  52.  
  53. // Перегрузка оператора =
  54. mn& mn::operator=(const mn &Object)
  55. {
  56. n = Object.n;
  57. delete []x;
  58. x=new double[n+1];
  59. for(int i=0;i<=n;)x[i++]=Object.x[i];
  60. return *this;
  61. }
  62.  
  63. // Перегрузка оператора +
  64. mn mn::operator+(mn &fp1)
  65. {
  66. mn ret;
  67. ret=(n>fp1.n)?*this:fp1;
  68. int minind=(n>fp1.n)?fp1.n:n;
  69.  
  70. for(int i=0;i<=minind;ret.x[i++]+=x[i]);
  71.  
  72. return ret;
  73. }
  74.  
  75. // Перегрузка оператора -
  76. mn mn::operator-(mn &fp1)
  77. {
  78. mn ret;
  79. int i;
  80. ret=(n>fp1.n)?*this:fp1;
  81. if(fp1.n>n) for(i=n;i<=ret.n;ret.x[i++]=-ret.x[i]);
  82. int minind=(n>fp1.n)?fp1.n:n;
  83.  
  84. for(i=0;i<=minind;ret.x[i++]=x[i]-fp1.x[i]);
  85. return ret;
  86.  
  87. }
  88.  
  89. // Перегрузка оператора *
  90. mn mn::operator*(mn &fp1)
  91. {
  92. int newindex=fp1.n+n;
  93. double *empty=new double[newindex+1];
  94. for(int i=0;i<=newindex;empty[i++]=0);
  95.  
  96. mn ret(newindex,empty);
  97.  
  98. for(i=0;i<=fp1.n;i+=1)
  99. for(int j=0;j<=n;j+=1) ret.x[i+j]+=fp1.x[i]*x[j];
  100.  
  101. return ret;
  102.  
  103. }
  104.  
  105. // Перегрузка оператора >>
  106. istream &operator>>(istream &fi, mn &fp)
  107. {
  108. cout<<"n=";
  109. fi >> fp.n;
  110.  
  111. delete []fp.x;
  112. fp.x=new double[fp.n+1];
  113. for(int i=0;i<=fp.n;)
  114. {
  115. cout<<"x["<<i<<"]=";
  116. fi >> fp.x[i++];
  117.  
  118. }
  119.  
  120. return fi;
  121. }
  122.  
  123. // Перегрузка оператора <<
  124. ostream &operator<<(ostream &fo, mn &fp)
  125. {
  126.  
  127. for(int i=0;i<=fp.n;i+=1) fo <<"x["<<i<<"]="<<int(fp.x[i])<<endl;
  128. return fo;
  129. }
  130.  
  131. void main()
  132. {
  133. clrscr();
  134. double x[]={6,3,8};
  135.  
  136. mn m1(2,x);
  137. cout<<"Первый многочлен:"<<endl;
  138. cout<<m1<<endl;
  139. cout<<"Введите второй многочлен:"<<endl;
  140. mn m2;
  141. cin>>m2;
  142.  
  143. cout<<endl<<"Сумма m1 и m2:"<<endl<<m1+m2<<endl;
  144.  
  145.  
  146. getch();
  147. cout<<"Разность m1 и m2:"<<endl<<m1-m2<<endl;
  148. getch();
  149. mn m3;
  150. m3=m1*m2;
  151. cout<<"Произведение m1 и m2:"<<endl<<m3<<endl;
  152. getch();
  153. cout<<"Свободный коэффициент произведения m1 и m2: "<<m3.cs()<<endl;
  154. m1.~mn();
  155. m2.~mn();
  156. m3.~mn();
  157. }
При использовании обязательна ссылка на http://DMTSoft.ru
up

Комментарии для "Исходник программы - класс многочлен от одной переменной на Си(C++)"


Пользователь: la_vie_in_rose
Сообщений: 2
Статус: Пользователь
Зарегистрирован:
1 октября 2008, 4:35
Был:1 октября 2008, 6:01
la_vie_in_rose
smsup
Дата: 1 октября 2008, 4:50 Сообщение № 1
Хачу весь код!!! Зачет завтра!!!sm [B]
Пользователь: i386
Сообщений: 6
Статус: Незримый
Зарегистрирован:
2 декабря 2008, 17:13
Был:7 декабря 2008, 16:34
i386
smsup
Дата: 3 декабря 2008, 18:35 Сообщение № 2
Завтра сдача проги...плиз дайте цельеый код...!!!
Пользователь: i386
Сообщений: 6
Статус: Незримый
Зарегистрирован:
2 декабря 2008, 17:13
Был:7 декабря 2008, 16:34
i386
smsup
Дата: 3 декабря 2008, 19:14 Сообщение № 3
плиз...откроете:
Пользователь: mihail55555
Сообщений: 1
Статус: Незримый
Зарегистрирован:
17 мая 2015, 22:35
Был:17 мая 2015, 22:46
mihail55555
smsup
Дата: 17 мая 2015, 22:44 Сообщение № 4
Код на C++
  1.  
При использовании обязательна ссылка на http://DMTSoft.ru
[B]

Срочно нужен целый код!!!