Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Poly {double x,y,z;};
- class arr_Poly {
- private:
- double *x;
- double *y;
- double *z;
- int n;
- public:
- arr_Poly(int);
- ~arr_Poly();
- void set(int,Poly);
- Poly operator[](int) const;
- friend arr_Poly operator+(const arr_Poly&,const arr_Poly&);
- friend arr_Poly operator*(const arr_Poly&,double);
- friend arr_Poly operator*(double,const arr_Poly&);
- void show();
- };
- Poly operator+(Poly a, Poly b);
- Poly operator*(Poly a, double b);
- Poly toPoly(double x,double y, double z) {
- Poly tmp;
- tmp.x=x;
- tmp.y=y;
- tmp.z=z;
- return tmp;
- }
- arr_Poly::arr_Poly(int N) {
- n=N;
- x=new double[n];
- y=new double[n];
- z=new double[n];
- for(int i=0;i<n;i++) {x[i]=i; y[i]=i+1; z[i]=i+2;} //по умолчанию.
- }
- arr_Poly::~arr_Poly() {
- delete[]x;
- delete[]y;
- delete[]z;
- }
- void arr_Poly::set(int N, Poly tmp) {
- if(n<N) return;
- x[N]=tmp.x;
- y[N]=tmp.y;
- z[N]=tmp.z;
- }
- Poly arr_Poly::operator [](int N) const {
- return toPoly(x[N],y[N],z[N]);
- }
- arr_Poly operator+(const arr_Poly& a,const arr_Poly& b) {
- arr_Poly c(a.n);
- for(int i=0; i<c.n; i++)
- c.set(i,a[i]+b[i]);
- return c;
- }
- Poly operator+(Poly a, Poly b) {
- return toPoly(a.x+b.x,a.y+b.y,a.z+b.z);
- }
- Poly operator*(Poly a, double b) {
- return toPoly(a.x*b,a.y*b,a.z*b);
- }
- arr_Poly operator*(const arr_Poly& a,double k) {
- arr_Poly c(a.n);
- for(int i=0; i<c.n; i++) {
- c.set(i,a[i]*k);
- }
- return c;
- }
- arr_Poly operator*(double k, const arr_Poly& a) {
- return a*k;
- }
- void arr_Poly::show() {
- cout<<endl<<"(a) X^2: "; for(int i=0;i<n;i++) cout<<x[i]<<" ";
- cout<<endl<<"(b) X: "; for(int i=0;i<n;i++) cout<<y[i]<<" ";
- cout<<endl<<"(c) : "; for(int i=0;i<n;i++) cout<<z[i]<<" ";
- cout<<endl;
- }
- int main() {
- arr_Poly a(2),b(2);
- Poly a1,a2,a3,a4;
- a1=toPoly(1,1,1);
- a2=toPoly(2,1,0);
- a3=toPoly(4,3,5);
- a4=toPoly(1,-1,9);
- a.set(0,a1);
- a.set(1,a2);
- b.set(0,a3);
- b.set(1,a4);
- a.show();
- b.show();
- (a+b).show();
- a.show();
- (a*5).show();
- }
Advertisement
Add Comment
Please, Sign In to add comment