Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <ctime>
  3. #include <string>
  4. #include <iostream>
  5. #include <stdio.h>
  6. #include <cmath>
  7.  
  8. using namespace std;
  9.  
  10. class Osobnik
  11. {
  12. private:
  13.     int rozmiar;
  14.     string wylosowany_napis;
  15.     int przystosowanie;
  16. public:
  17.     Osobnik(int rozmiar);
  18.     void wyswietl_napis();
  19.     int przydatnosc(string napis);
  20. };
  21.  
  22. class Populacja
  23. {
  24. private:
  25.     int rozmiar_populacji;
  26.     Osobnik **tablica_osobnikow;
  27. public:
  28.     Populacja(int rozmiar_populacji , string cel, float mutacja);
  29. };
  30.  
  31.  
  32. int main()
  33. {
  34.     Osobnik losowy_osobnik(5);
  35.     losowy_osobnik.wyswietl_napis();
  36.  
  37.     cout << endl;
  38.  
  39.     cout << losowy_osobnik.przydatnosc("Karol") << endl;
  40.  
  41.  
  42.  
  43.     return 0;
  44. }
  45.  
  46. Populacja::Populacja(int rozmiar_populacji, string cel, float mutacja)
  47. {
  48.     this->rozmiar_populacji = rozmiar_populacji;
  49.     this->tablica_osobnikow = new Osobnik*[rozmiar_populacji];
  50.  
  51.     for(int i = 0 ; i < rozmiar_populacji ; i++)
  52.     {
  53.         tablica_osobnikow[i] = new Osobnik(cel.length());
  54.     }
  55. }
  56.  
  57.  
  58. ///////////////////////////////////////////////
  59.  
  60. void Osobnik::wyswietl_napis()
  61. {
  62.     cout << this->wylosowany_napis;
  63. }
  64.  
  65. Osobnik::Osobnik(int rozmiar)
  66. {
  67.     int a;
  68.     char c;
  69.     this->rozmiar = rozmiar;
  70.  
  71.     srand(time(NULL));
  72.  
  73.     if(a >= 91 && a <= 93)
  74.     {
  75.         c = '.';
  76.     }
  77.     else if(a > 93 && a <= 96)
  78.     {
  79.         c = ' ';
  80.     }
  81.     else
  82.     {
  83.         c = a;
  84.     }
  85.  
  86.     for(int i = 0 ; i < rozmiar ; i++)
  87.     {
  88.         a = (rand() % 57) + 65;
  89.  
  90.         if(a >= 91 && a <= 93)
  91.         {
  92.             c = '.';
  93.         }
  94.         else if(a > 93 && a <= 96)
  95.         {
  96.             c = ' ';
  97.         }
  98.         else
  99.         {
  100.             c = a;
  101.         }
  102.  
  103.         wylosowany_napis += c;
  104.     }
  105.  
  106. }
  107.  
  108. int Osobnik::przydatnosc(string napis)
  109. {
  110.     int stopien_przydatnosci=0,ret;
  111.     for(int i = 0 ; i < napis.length() ; i++)
  112.     {
  113.         if(napis[i] == wylosowany_napis[i])
  114.         {
  115.             stopien_przydatnosci++;
  116.         }
  117.     }
  118.     ret = pow(2,stopien_przydatnosci);
  119.  
  120.     return ret;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement