blastermak

Algo3_v0.6

May 15th, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class koers {
  8.     public:
  9.     koers();
  10.     void berekenkoers(int bedrag);
  11.     void leesbestand();
  12.     int kiesaandelen(int dag, int bedrag);
  13.     int bitstring(int dag);
  14.    
  15.     ifstream invoer;
  16.     string invoernaam;
  17.     int n, doeldag, dag, bedrag;        //int voor n en Tw en huidige dag
  18.     float bnul;         //float voor B0
  19.     int aandelen;
  20.     float koersmatrix[100][100];    //matrix voor koersen van de dagen [dag][koers[
  21.     float rente[100];       //array voor het opslaan van de rentes [dag]
  22.     bool bezit[10];         //array voor bezit van aandelen
  23.    
  24. }; //class koers
  25.  
  26.  
  27. koers::koers(){
  28.     invoernaam = "";
  29.     dag = 0;
  30.     bedrag = 0;
  31.     for(int i = 0; i < 10; i++){
  32.         bezit[i] = false;
  33.     }//for
  34. }//koers::koers
  35.  
  36. int koers::kiesaandelen(int dag, int bedrag){
  37.     int tijdelijk = 0;
  38.     for(int i = 0; i < n; i++){
  39.         if( bezit[i] == false && (koersmatrix[dag+1][i] > koersmatrix[dag][i] && bedrag > koersmatrix[dag][i])){
  40.             tijdelijk = bedrag - koersmatrix[dag][i];
  41.             cout << "Koop " << i << endl;
  42.             bezit[i] = true;
  43.             for(int j = i+1; j < n; j++){
  44.                 if(bezit[j] == false && (koersmatrix[dag+1][j] > koersmatrix[dag][j] && tijdelijk > koersmatrix[dag][j])){
  45.                     tijdelijk = tijdelijk - koersmatrix[dag][j];
  46.                     cout << "Koop " << j << endl;
  47.                     bezit[j] = true;
  48.                 }//if
  49.             }//for
  50.         }//if
  51.     }//for
  52.     return tijdelijk;
  53. }//void kiesaandelen
  54.  
  55. int koers::bitstring(int dag){
  56.     int tijdelijk = 0;
  57.     if(dag < (doeldag + 1)){
  58.         for(int i = 0; i < n; i++){
  59.             if(bezit[i] == true){
  60.                 tijdelijk = tijdelijk + koersmatrix[dag][i];
  61.                 bezit[i] = false;
  62.                 cout << "Verkoop " << i << endl;
  63.             }//if
  64.         }//for
  65.         return tijdelijk;
  66.     }//if
  67.     if(dag == (doeldag +1)){
  68.         return 0;
  69.     }//if  
  70. }//void bitstring
  71.  
  72. void koers::berekenkoers(int bedrag){
  73.     for(int dag = 0; dag < doeldag + 1; dag++){
  74.         cout << "Dag " << dag << endl;
  75.         bedrag = bedrag * rente[dag];
  76.         cout << "Rente " << bedrag << endl;
  77.         bedrag = bedrag + koers::bitstring(dag);
  78.         cout << "Verkoop aandelen " << bedrag << endl;
  79.         bedrag = koers::kiesaandelen(dag, bedrag); 
  80.     }//for
  81.     cout << bedrag;
  82. }//void berekenkoers
  83.  
  84. //functie voor het inlezen van een doelbestand met daarin de benodigde waardes
  85. //invoernaam wordt dynamisch bepaald, en de waardes worden naar de goede
  86. //variabelen weggeschreven
  87. void koers::leesbestand(){
  88.     cout << "Welk bestand wil je openen?" << endl;
  89.     cin >> invoernaam;
  90.     invoer.open(invoernaam.c_str(), ios::in);
  91.         if( !invoer ){
  92.             cout << "Bestand bestaat niet";
  93.             return;
  94.         }//if
  95.     invoer >> doeldag; 
  96.     invoer >> n;
  97.     invoer >> bnul;
  98.     for(int i = 0; i < (doeldag + 1); i++){
  99.         for(int j = 0; j < n; j++){
  100.             invoer >> koersmatrix[i][j];
  101.         }
  102.     }
  103.     for(int i = 0; i < (doeldag ); i++){
  104.         invoer >> rente[i];
  105.     }//for
  106. }//void leesbestand
  107.  
  108. int main (){
  109.     koers start;
  110.     start.leesbestand();
  111.     start.berekenkoers(start.bnul);
  112.  
  113. }//main
Advertisement
Add Comment
Please, Sign In to add comment