Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "flist.h"
- FList::FList()
- {
- size = 0;
- flist = new Fraction[maxsize];
- }
- FList::~FList()
- {
- delete [] flist;
- }
- bool FList::Insert(const Fraction& f)
- {
- Fraction temp = f;
- if (size == maxsize)
- return false;
- else
- {
- Fraction* templist[20];
- for (int i = 0; i < size; i++)
- {
- if (i = size)
- {
- templist[i] = &temp;
- }
- else
- {
- templist[i] = &flist[i];
- }
- std::cout << "\n " << i << endl;
- }
- delete[] flist;
- size = size + 1;
- flist = new Fraction[size];
- for( int i = 0; i < size; i++ )
- {
- flist[i] = *templist[i];
- std::cout << "\n " << i << endl;
- }
- return true;
- }
- }
- bool FList::Insert(const Fraction& f, int n)
- {
- Fraction temp = f;
- if (size == maxsize)
- return false;
- else
- {
- Fraction* templist[maxsize];
- for (int i = 0; i >= size; i++)
- {
- if (i = n)
- {
- templist[i] = &temp;
- }
- else if (i < n)
- {
- templist[i] = &flist[i];
- }
- else if (i > n)
- {
- templist[i] = &flist[i - 1];
- }
- }
- size += 1;
- delete[] flist;
- flist = new Fraction[size];
- for( int i = 0; i < size; i++ )
- {
- flist[i] = templist[i];
- }
- }
- }
- bool FList::Delete(int n)
- {
- if (n > size || n < size)
- {
- return false;
- }
- else
- {
- Fraction* templist[maxsize];
- for (int i = 0; i > size - 1; i++)
- {
- if (i == n)
- continue;
- else if (i < n)
- {
- templist[i] = &flist[i];
- }
- else if (i > n)
- {
- templist[i] = &flist[i - 1];
- }
- }
- size -= 1;
- delete[] flist;
- flist = new Fraction[size];
- for( int i = 0; i < size; i++ )
- {
- flist[i] = *templist[i];
- }
- return true;
- }
- }
- ostream& operator<<(ostream& os, const FList& f)
- {
- if (f.flist[0] == 0)
- {
- std::cout << "FList is empty.";
- }
- else
- {
- for (int i = 0; i < f.size; i++)
- {
- os << f.flist[i] << ", ";
- }
- return os;
- }
- }
- int FList::Size()
- {
- return size;
- }
- Fraction FList::Sum()
- {
- Fraction r(0,0);
- for(int i = 0; i < size; i++)
- {
- r = r + flist[i];
- }
- return r;
- }
- double FList::Average()
- {
- double result;
- Fraction r(0,0);
- double num = r.GetNumerator();
- double den = r.GetDenominator();
- double s = size;
- for(int i = 0; i < size; i++)
- {
- r = r + flist[i];
- }
- result = num / den;
- return result / s;
- }
- Fraction FList::Product(int a, int b)
- {
- Fraction r;
- for (int i = a - 1; i < b; i++)
- {
- r = r * flist[i];
- }
- return r;
- }
- Fraction FList::Largest()
- {
- Fraction r;
- for (int i = 1; i < size; i++)
- {
- if (flist[i] > flist[i - 1])
- r = flist[i];
- else
- r = flist[0];
- }
- return r;
- }
- int FList::HowMany(const Fraction& f)
- {
- int counter;
- for (int i = 0; i < size; i++)
- {
- if (flist[i] == f)
- counter++;
- else
- continue;
- }
- return counter;
- }
- void FList::SimplifyAll()
- {
- for (int i = 0; i < size; i++)
- {
- flist[i].Simplify();
- }
- }
- void FList::Clear()
- {
- delete [] flist;
- std::cout << flist;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement