Pokaż wyniki 1 do 4 z 4

Temat: Prosty "Symulator"

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie Prosty "Symulator"

    Witajcie.
    Wpadłem na pomysł stworzenia prostego programu który ma na celu symulowanie wzrostu populacji komórek.
    Oto kod:
    Kod:
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int pier_gen;        /*pierwsza generacja*/
        int ost_gen;         /*do ktorej gen symulujemy*/
        float czerwona_wsp;     /*wspolczynnik wzrostu kom czerwonej*/
        float niebieska_wsp;   /*wspolczynnik wzrostu kom niebieskiej*/
        int czerwona=1;        /*ilosc kom czerwonych 1-gen*/
        int niebieska=2;       /*ilosc kom niebieskich 1-gen*/
        /*int nowaczerwona;
        int nowaniebieska;*/       
        cout<<"Podaj ilosc symulacji: ";
        cin >>ost_gen;   
        for (pier_gen=0; pier_gen < ost_gen; pier_gen+=1)
            {
                         czerwona_wsp=0.2;
                         niebieska_wsp=0.196;
                         czerwona=czerwona+(czerwona*czerwona_wsp);
                         niebieska=niebieska+(niebieska*niebieska_wsp);
                         
            
                         cout<<"Czerwonych Komorek: "<< czerwona << endl;
                         cout<<"-----------------------------------------"<<endl;
                         cout<<"Niebieskich Komorek: "<< niebieska << endl;
                         cout<<"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"<<endl;
                         
            }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Trudno to jeszcze nazwac symulatorem bo choćby współczynnik wzrostu komórek jest stały(narazie), ale problem tkwi w zliczaniu nowych komórek.
    W pętli są współczynniki wzrostu później mnożę pierwotna ilość komórek przez współczynnik wzrostu czyli:
    Kod:
    czerwona=czerwona+(czerwona*czerwona_wsp)
    Przy kolejnej symulacji czerwona powinna wynosić 1.2, a raczej 1 bo z float na int.
    Nawet po setnej symulacji wynik nadal wynosi 1 dla czerwonej i 2 dla niebieskiej.
    Moje pytanie co jest nie tak?
    Mam dodac nową zmienna by liczyła mi komórki czy jeszcze jedną zagnieżdżoną pętlę do zliczania nowych komórek

  2. #2
    Zarejestrowany
    Oct 2009
    Skąd
    Poland
    Postów
    59

    Domyślnie

    błąd tkwi w typie danych "czerwona" i "niebieska", musisz zmienić typ na np double, wtedy coś się będzie tam działo :>

  3. #3

    Domyślnie

    Ok wszystko działa, ale mam kolejne pytanie.
    Otóż chce by zmienne czerwona_wsp i niebieska_wsp były generowane losowo tylko mam jeden problem jak mam funkcje rand
    to żeby mieć przedział losowanych liczb od 0.00000001 do 2 to
    Kod:
    rand() % 2 + 0.00000001

  4. #4

    Domyślnie

    Możesz to zrobić całkiem inaczej:
    Kod:
    rand()%20000000
    A później dzielisz wynik.
    Prawdziwy hacking (czytaj) ma się nijak do włamywania.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj