Untitled
unknown
plain_text
2 years ago
2.5 kB
11
Indexable
#include<iostream>
using namespace std;
class Term{
private:
int value;
int position;
char sign;
bool isLast = false;
public:
Term(){
}
Term(int value, int position, char sign){
this->value = value;
this->position = position;
this->sign = sign;
}
~Term(){
cout << "Getting Destructed!!!!" << endl;
}
void setValue(int value){
this->value = value;
}
int getValue(){
return this->value;
}
void setPosition(int position){
this->position = position;
}
int getPosition(){
return this->position;
}
void setSign(char sign){
this->sign = sign;
}
char getSign(){
return this->sign;
}
void setIsLast(bool isLast){
this->isLast = isLast;
}
bool getIsLast(){
return this->isLast;
}
void printTerm(){
//cout << "Value of is Last: " << this->isLast << endl;
if(this->isLast){
cout << this->sign << " " << this->value << " = ";
}
else{
if(this->position == 0){
cout << this->value << " ";
}
else{
cout << this->sign << " " << this->value << " ";
}
}
}
};
int main(void){
int number,sum=0;
cout << "Enter The Number of Terms You want to Sum:" << endl;
cin >> number;
Term* termBeforePreviousTerm = new Term();
Term* previousTerm = new Term();
for(int index = 0; index < number; index++){
bool isEvenPosTerm = (index % 2 == 0);
Term* currentTerm = new Term();
if(index < 2){
currentTerm = new Term(index, index, isEvenPosTerm ? '+' : '-');
}
else{
int value = previousTerm->getValue() + termBeforePreviousTerm->getValue();
currentTerm = new Term(value, index, isEvenPosTerm ? '+' : '-');
}
if(index == number - 1){
currentTerm->setIsLast(true);
}
currentTerm->printTerm();
if(currentTerm->getSign() == '+'){
sum += currentTerm->getValue();
}
else{
sum -= currentTerm->getValue();
}
termBeforePreviousTerm = previousTerm;
previousTerm = currentTerm;
if(index == number - 1){
cout << sum << endl;
delete termBeforePreviousTerm;
delete previousTerm;
delete currentTerm;
}
}
return 0;
}Editor is loading...
Leave a Comment