Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. #include "flist.h"
  2.  
  3. FList::FList()
  4. {
  5.     size = 0;
  6.     flist = new Fraction[maxsize];
  7. }
  8. FList::~FList()
  9. {
  10.     delete [] flist;
  11. }
  12. bool FList::Insert(const Fraction& f)
  13. {
  14.     Fraction temp = f;
  15.     if (size == maxsize)
  16.         return false;
  17.     else
  18.     {
  19.         Fraction* templist[20];
  20.         for (int i = 0; i < size; i++)
  21.         {
  22.             if (i = size)
  23.             {
  24.                 templist[i] = &temp;
  25.             }
  26.             else
  27.             {
  28.                 templist[i] = &flist[i];
  29.             }
  30.             std::cout << "\n " << i << endl;
  31.         }
  32.         delete[] flist;
  33.         size = size + 1;
  34.         flist = new Fraction[size];
  35.         for( int i = 0; i < size; i++ )
  36.         {
  37.             flist[i] = *templist[i];
  38.             std::cout << "\n " << i << endl;
  39.         }
  40.         return true;
  41.     }
  42.  
  43. }
  44. bool FList::Insert(const Fraction& f, int n)
  45. {
  46.     Fraction temp = f;
  47.     if (size == maxsize)
  48.         return false;
  49.     else
  50.     {
  51.         Fraction* templist[maxsize];
  52.         for (int i = 0; i >= size; i++)
  53.         {
  54.             if (i = n)
  55.             {
  56.                 templist[i] = &temp;
  57.             }
  58.             else if (i < n)
  59.             {
  60.                 templist[i] = &flist[i];
  61.             }
  62.             else if (i > n)
  63.             {
  64.                 templist[i] = &flist[i - 1];
  65.             }
  66.         }
  67.         size += 1;
  68.         delete[] flist;
  69.         flist = new Fraction[size];
  70.         for( int i = 0; i < size; i++ )
  71.         {
  72.             flist[i] = templist[i];
  73.         }
  74.     }
  75.  
  76. }
  77.  
  78. bool FList::Delete(int n)
  79. {
  80.     if (n > size || n < size)
  81.     {
  82.         return false;
  83.     }
  84.     else
  85.     {
  86.         Fraction* templist[maxsize];
  87.         for (int i = 0; i > size - 1; i++)
  88.         {
  89.             if (i == n)
  90.             continue;
  91.             else if (i < n)
  92.             {
  93.                 templist[i] = &flist[i];
  94.             }
  95.             else if (i > n)
  96.             {
  97.                 templist[i] = &flist[i - 1];
  98.             }
  99.         }
  100.         size -= 1;
  101.         delete[] flist;
  102.         flist = new Fraction[size];
  103.         for( int i = 0; i < size; i++ )
  104.         {
  105.             flist[i] = *templist[i];
  106.         }
  107.         return true;
  108.     }
  109. }
  110.  
  111. ostream& operator<<(ostream& os, const FList& f)
  112. {
  113.     if (f.flist[0] == 0)
  114.     {
  115.         std::cout << "FList is empty.";
  116.     }
  117.     else
  118.     {
  119.         for (int i = 0; i < f.size; i++)
  120.         {
  121.             os << f.flist[i] << ", ";
  122.         }
  123.         return os;
  124.     }
  125. }
  126.  
  127. int FList::Size()
  128. {
  129.     return size;
  130. }
  131.  
  132. Fraction FList::Sum()
  133. {
  134.     Fraction r(0,0);
  135.     for(int i = 0; i < size; i++)
  136.     {
  137.             r = r + flist[i];
  138.     }
  139.     return r;
  140. }
  141.  
  142. double FList::Average()
  143. {
  144.     double result;
  145.     Fraction r(0,0);
  146.     double num = r.GetNumerator();
  147.     double den = r.GetDenominator();
  148.     double s = size;
  149.     for(int i = 0; i < size; i++)
  150.     {
  151.             r = r + flist[i];
  152.     }
  153.     result = num / den;
  154.     return result / s;
  155. }
  156.  
  157. Fraction FList::Product(int a, int b)
  158. {
  159.     Fraction r;
  160.     for (int i = a - 1; i < b; i++)
  161.     {
  162.         r = r * flist[i];
  163.     }
  164.     return r;
  165. }
  166.  
  167. Fraction FList::Largest()
  168. {
  169.     Fraction r;
  170.     for (int i = 1; i < size; i++)
  171.     {
  172.         if (flist[i] > flist[i - 1])
  173.             r = flist[i];
  174.         else
  175.             r = flist[0];
  176.     }
  177.     return r;
  178. }
  179.  
  180. int FList::HowMany(const Fraction& f)
  181. {
  182.     int counter;
  183.     for (int i = 0; i < size; i++)
  184.     {
  185.         if (flist[i] == f)
  186.             counter++;
  187.         else
  188.             continue;
  189.     }
  190.     return counter;
  191. }
  192.  
  193. void FList::SimplifyAll()
  194. {
  195.     for (int i = 0; i < size; i++)
  196.     {
  197.         flist[i].Simplify();
  198.     }
  199. }
  200.  
  201. void FList::Clear()
  202. {
  203.     delete [] flist;
  204.     std::cout << flist;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement