Przerabiając kurs C++ staram się dodać coś od siebie do każdego programu, aby lepiej utrwalić informacje. Więc do początkowego programu podliczającego rozmnażanie bakterii dodałem możliwość wprowadzenia przez użytkownika danych:
1. Ile wynosi populacja bakterii na początku.
2. Jaką populację chcesz osiągnąć.
3. W jakich odstępach czasowych bakterie się rozmnażają
Po wprowadzeniu danych program przeprowadza symulację i podaje wynik (razem ze słownym podsumowaniem). Kod wygląda tak:
#include <iostream>
using namespace std;
int warunek; int populacja; int czas=0; int czestotliwosc;
int main()
{
cout << "Ponizszy program stanowi symulacje rozmnazania bakterii. Bakterie rozmnazaja sie co jedna godzine." << endl;
cout << "Podaj poczatkowa populacje bakterii:" ;
cin >> populacja ;
cout << "Ile bakterii chcesz aby populacja osiagnela:" ;
cin >> warunek ;
cout << "Jak czesto Twoje bakterie sie rozmnazaja (podaj w sekundach):" ;
cin >> czestotliwosc;
while (populacja<=warunek)
{
czas = czas+czestotliwosc ;
populacja = populacja*2 ;
cout << "Minelo " << czas << " sekund. Populacja bakterii wynosi: " << populacja << "." << endl;
}
cout << "Bakterie osiagna zadana przez Ciebie populacje po " << czas << " sekundach." << endl;
return 0;
}
Program działa tak jak powinien, do momentu w którym podaje jakieś ogromne wartości (np populacja>10mld) i wtedy się zawiesza.Wyświetla wartości ujemne a potem pętla leci w nieskończoność z wynikiem 0. Zastanawiam się czy nie chodzi po prostu o możliwości obliczeniowe komputera, ale z drugiej strony podejrzane wydaje mi się żeby komputer nie poradził sobie z działaniem 1mld*1mld. Jeśli to wina kodu to dajcie proszę znać co mogę poprawić.