#include <iostream> using namespace std; class Polynomial{ public: int *degCoeff; int capacity; // Default constructor Polynomial (){ this->degCoeff = new int[6]{0}; this->capacity = 6; // for(int i = 0;i<capacity;i++){ // cout<<degCoeff[i]<<" "; // } // cout<<endl; } // Copy constructor Polynomial (Polynomial const & p1){ this->degCoeff = new int[p1.capacity]; this->capacity = p1.capacity; for(int i = 0;i<capacity;i++){ this->degCoeff[i] = p1.degCoeff[i]; } } //Function to set the coefficient void setCoefficient(int degree , int coefficient){ if(degree>=this->capacity){ int*newdegCoeff = new int[degree+this->capacity]; int newCapacity = degree+this->capacity; for(int i = 0;i<this->capacity;i++){ newdegCoeff[i] = this->degCoeff[i]; } this->degCoeff = newdegCoeff; this->capacity = newCapacity; } this->degCoeff[degree] = coefficient; } //Overloading the + operator Polynomial operator + (Polynomial & p3){ Polynomial p4; int*newdegCoeff = new int[max(this->capacity , p3.capacity)]{0}; p4.degCoeff = newdegCoeff; p4.capacity = max(this->capacity , p3.capacity); for(int i = 0;i<p4.capacity;i++){ if(i == this->capacity ){ p4.degCoeff[i] = p3.degCoeff[i]; } else if(i == p3.capacity){ p4.degCoeff[i] = this->degCoeff[i]; } else{ p4.degCoeff[i] = this->degCoeff[i]+p3.degCoeff[i]; } } return p4; } Polynomial operator * (Polynomial const & p5){ int maxCapacity = max(this->capacity,p5.capacity); Polynomial p6; p6.capacity = 2*maxCapacity; p6.degCoeff = new int[2*maxCapacity]; for(int i = 0;i<this->capacity;i++){ int degree = 0; for(int j = 0;j<p5.capacity;j++){ degree = i+j; p6.degCoeff[degree] += this->degCoeff[i]*p5.degCoeff[j]; } } return p6; } Polynomial operator - (Polynomial const & p3){ Polynomial p4; int*newdegCoeff = new int[max(this->capacity , p3.capacity)]{0}; p4.degCoeff = newdegCoeff; p4.capacity = max(this->capacity , p3.capacity); for(int i = 0;i<p4.capacity;i++){ if(i == this->capacity ){ p4.degCoeff[i] = p3.degCoeff[i]; } else if(i == p3.capacity ){ p4.degCoeff[i] = this->degCoeff[i]; } else{ p4.degCoeff[i] = this->degCoeff[i]-p3.degCoeff[i]; } } return p4; } Polynomial operator == (Polynomial &p6){ int * newdegCoeff = new int[this->capacity]; p6.degCoeff = newdegCoeff; p6.capacity = this->capacity; for(int i = 0;i<this->capacity;i++){ p6.degCoeff[i] = this->degCoeff[i]; } } void print(){ for(int i = 0;i<this->capacity;i++){ if(this->degCoeff[i]!=0){ cout<<this->degCoeff[i]<<"x"<<i<<" "; } } cout<<endl; } }; int main() { int count1,count2,choice; cin >> count1; int *degree1 = new int[count1]; int *coeff1 = new int[count1]; for(int i=0;i < count1; i++) { cin >> degree1[i]; } for(int i=0;i < count1; i++) { cin >> coeff1[i]; } Polynomial first; for(int i = 0; i < count1; i++){ first.setCoefficient(degree1[i],coeff1[i]); } first.print(); cin >> count2; int *degree2 = new int[count2]; int *coeff2 = new int[count2]; for(int i=0;i < count2; i++) { cin >> degree2[i]; } for(int i=0;i < count2; i++) { cin >> coeff2[i]; } Polynomial second; for(int i = 0; i < count2; i++){ second.setCoefficient(degree2[i],coeff2[i]); } second.print(); cin >> choice; Polynomial result; switch(choice){ // Add case 1: result = first + second; result.print(); break; // Subtract case 2 : result = first - second; result.print(); break; // Multiply case 3 : result = first * second; result.print(); break; case 4 : // Copy constructor { Polynomial third(first); if(third.degCoeff == first.degCoeff) { cout << "false" << endl; } else { cout << "true" << endl; } break; } case 5 : // Copy assignment operator { Polynomial fourth(first); if(fourth.degCoeff == first.degCoeff) { cout << "false" << endl; } else { cout << "true" << endl; } break; } } return 0; }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}