Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
#include <iostream> //cin, cout, cin.get(), endl
#include <cstdlib> //rand(), srand()
#include <ctime> //time()
using namespace std; //cin/cout ipv std::cin/std::cout
//de mainfunctie = het programma dat wordt uitgevoerd
int main()
{
//een basiswaarde voor de 'random' getallenreeks vastleggen
//de randomfunctie berekent eigenlijk een reeks getallen volgens een wiskundige formule
//met srand kan je een andere reeks bekomen (srand = seed random)
//hier heb ik als basiswaarde de huidige systeemtijd in seconden genomen (time(0)), voor de meeste
//gevallen zal dit volstaan, maar niet als je programma meerdere malen per seconde moet
//uitgevoerd worden
//probeer maar eens om bvb srand(5) te gebruiken, en je zal altijd dezelfde getallenreeks krijgen
srand(time(0));
//alles binnen de forloop 10 keer uitvoeren
for (unsigned short i = 0; i < 10; i++){
//weergeven de hoeveelste keer we in de lus zijn en de berekende random waarde tonen
//de rand() functie geeft het volgende geheel getal in de randomreeks weer
//daarvan nemen we de rest van deling door 6, zo is het resultaat nu enkel een getal
//van 0 tem 5. Daar tellen we 1 bij, want een dobbelsteen gaat van 1-6
//endl is de code die ervoor zorgt dat de er een nieuwe lijn wordt gestart in de output
cout << "getal " << i+1 << " = " << rand()%6 + 1 << endl;
}
cin.get(); //wachten op een toets
return 0; //programma werd afgewerkt zonder fouten
}
Ik weet niet goed hoe ik het je moet uitleggen zonder je vraag al helemaal op te lossen, dus hier komt een voorbeeldprogramma: 10 keer gooien met 1 dobbelsteen
Ik heb een hele hoop commentaar toegevoegd
Code:#include <iostream> //cin, cout, cin.get(), endl #include <cstdlib> //rand(), srand() #include <ctime> //time() using namespace std; //cin/cout ipv std::cin/std::cout //de mainfunctie = het programma dat wordt uitgevoerd int main() { //een basiswaarde voor de 'random' getallenreeks vastleggen //de randomfunctie berekent eigenlijk een reeks getallen volgens een wiskundige formule //met srand kan je een andere reeks bekomen (srand = seed random) //hier heb ik als basiswaarde de huidige systeemtijd in seconden genomen (time(0)), voor de meeste //gevallen zal dit volstaan, maar niet als je programma meerdere malen per seconde moet //uitgevoerd worden //probeer maar eens om bvb srand(5) te gebruiken, en je zal altijd dezelfde getallenreeks krijgen srand(time(0)); //alles binnen de forloop 10 keer uitvoeren for (unsigned short i = 0; i < 10; i++){ //weergeven de hoeveelste keer we in de lus zijn en de berekende random waarde tonen //de rand() functie geeft het volgende geheel getal in de randomreeks weer //daarvan nemen we de rest van deling door 6, zo is het resultaat nu enkel een getal //van 0 tem 5. Daar tellen we 1 bij, want een dobbelsteen gaat van 1-6 //endl is de code die ervoor zorgt dat de er een nieuwe lijn wordt gestart in de output cout << "getal " << i+1 << " = " << rand()%6 + 1 << endl; } cin.get(); //wachten op een toets return 0; //programma werd afgewerkt zonder fouten }
Hopelijk heb je hier wat aan,
--Johan
int GetRandNR( BOOL mayrtrn0, const int low = 1, const int high = 6 );
int GetRandNR( BOOL mayrtrn0, const int low, const int high )
{
int number = 0;
if( mayrtrn0 )
{
time_t seconds;
time(&seconds);
srand(seconds+rand()-(rand() % (high - low + 1) + low));
number = rand() % (high - low + 1) + low;
return number;
}
else
{
while ( number < 1 && number > -1 )
{
time_t seconds;
time(&seconds);
srand(seconds+rand()-(rand() % (high - low + 1) + low));
number = rand() % (high - low + 1) + low;
}
return number;
}
}
ZO AAN TE ROEPEN
int thisroll;
thisroll = GetRandNR( false );
Ik vroeg me gewoon af waarom je er eerst 1 aftrekt en daarna weer 1 optelt. (in het geval van deze dobbelsteen in ieder geval)
#define RANDOM(LOW, HIGH) (rand() % (HIGH - LOW + 1)) + 1
int nummer = RANDOM(LOW, HIGH); // -> GetRandNR(true)
while(nummer < 1 && nummer > -1) nummer = RANDOM(LOW, HIGH); // -> GetRandNR(false)
Je zou er ook makkelijk een macro van kunnen maken.
Code:#define RANDOM(LOW, HIGH) (rand() % (HIGH - LOW + 1)) + 1 int nummer = RANDOM(LOW, HIGH); // -> GetRandNR(true) while(nummer < 1 && nummer > -1) nummer = RANDOM(LOW, HIGH); // -> GetRandNR(false)
Qua resultaat maakt het verder niks uit.
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.