TASODIFIY QIYMATLARNI KELTIRIB CHIQARISH Kompyuter faning ko'p sohalarida tasodifiy qiymatlar bilan ishlash kerak bo'ladi. Masalan o'yin tuzganda, ma'lum bir tabiiy hodisani modellashtirganda va hokazo. Bunda dasturlash tasodifiy qiymatni olishga asoslangan. Va o'sha tasodifiy qiymatga bog'langan holda biror bir funksiya bajariladi yoki ifoda hisoblanadi. Tasodifiy qiymatni standart kutubhonaning rand() funksiyasi bilan
olsa bo'ladi. rand() 0...RAND_NAX orasida yotgan butun son qiymatini qaytaradi. RAND_MAX da aniqlangan simvolik konstantadir. Uning kattaligi 32767 dan kichik bo'lmasligi kerak. rand() qaytaradigan qiymat
aslini olganda psevdo-tasodifiydir. Yani dastur qayta-qayta ishlatilganda ayni qiymatlarni beraveradi. To'la tasodifiy qilish uchun dastur har gal ishlatilganda ma'lum bir o'zgaruvchan qiymatga asoslanib boshlanishi kerak.Buning uchun srand() funksiyasi qo'llaniladi. srand() dasturda faqat bir marta chaqirilsa yetarlidir. Dastur ishlash davomida esa ehtiyojga qarab, rand() chaqirilaveradi. Tasodifiy qiymatlar bilan ishlash uchun ni include bilan e'lon qilishimiz kerak. Yuqoridagi funksiyalarning prototiplarini berib o'taylik:
void srand(unsigned int seed);
int rand();
Biz har gal dastur ishlaganda srand() ga seed o'zgaruvchisini klaviaturadan
kiritishimiz mumkin, yoki buni avtomatik tarzda bo'ladigan qilishimiz mumkin.
Buning bir yo'li
srand( time(NULL) );
deb yozishdir. Bunda kompyuter avtomatik ravishda o'z ichidagi soatning qiymatini time() funksiyasi yordamida o'qiydi va srand() ga parametr sifatida beradi. time() ni NULL yoki 0 argument bilan chaqirganimizda kompyuter
soatining joriy vaqti sekundlar ko'rinishida qaytaradi. Vaqt bilan ishlash uchun ni e'lon qilish kerak bo'ladi. Nardaning 6 lik toshidek ishlaydigan dastur yozaylik.
//rand()/srand() bilan ishlash.
# include # include # include