Rasgele Sayı Üretme

Rasgele Sayı Üretme

Merhaba arkadaşlar,

Bugün ki yazımızda sizlerle birlikte C Programlama dilini ve CodeBlocks derleyicisini kullanarak rastgele sayı üreten bir örnek uygulama hazırlayacağız.

C Programlama dilinde rastgele sayı üretmek için “stdlib.h” kütüphanesinde bulunan “rand();” fonksiyonu kullanılmaktadır. Fakat “rand();” fonksiyonunun genel sorunu sürekli aynı değeri veya belirli bir aralıktaki sayıları vermesidir. Biz bu konuda 4 adet örnek örnek kodlayacağız bunlar:

  1. rand() fonksiyonu ile sayı üretmek.
  2. rand() fonksiyonu ile belirli bir aralıkta sayı üretmek.
  3. srand() fonksiyonu ile başlangıç değeri kullanarak rastgele sayı üretmek.
  4. srand() fonksiyonu ile başlangıç değeri kullanarak belirli bir aralıkta sayı üretmek.

İlk örneğimize başlayalım.

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rastgele;
rastgele=rand();
printf("%d",rastgele);
return 0;
}

rand() Fonksiyonu İle Sayı Üretmek

rand() fonksiyonunu kullanabilmek için ilk olarak “stdlib” kütüphanemizi dahil ediyoruz. Kütüphanemizi dahil ettikten sonra rand() fonksiyonumuzu kullanabiliriz.

Rastgele oluşacak sayımızı hafızada tutmak için bir adet integer değişken oluşturalım. Ben bu değişkene “rastgele” ismini vereceğim. Ardından rastgele değişkenimize rand() fonksiyonunu eşitleyerek rastgele bir sayı oluşturalım ve oluşturduğumuz sayıyı ekrana basalım.


Kod


Rastgele bir sayı ürettik fakat programı kapatıp tekrar başlattığımızda aynı değeri üretiyor bunun sebebini 3. örnekte detaylıca inceleyeceğiz. Şimdi kendi belirlediğimiz değer aralığında “rand()” fonksiyonu ile değer üretelim.


rand() Fonksiyonu İle Belirli Bir Aralıkta Sayı Üretmek

Aralık belirlemek için temel matematik formüllerinden yararlanacağız. Bu örneğimizde ise 150 ile 200 sayıları arasında bir rastgele sayı üretmeye çalışacağız. Başlangıç aralığımız belli olduğu için bir adet “baslangic” adında integer değişken oluşturalım. Oluşturduğumuz değişkene başlangıç değerimizi verebiliriz. Artık başlangıç değerimiz belirlendi.

Peki bitiş değerimizi nasıl tespit edeceğiz? Çok basit bir mod alma yöntemi ile bitiş belirlediğimiz aralıkta sabit kalabiliriz. Bunun için ilk olarak bitiş değerinden başlangıç değerini çıkarım.

Fark = 200 – 150

Fark = 50

Bizim üreteceğimiz sayının en fazla 50 olması gerekiyor. Peki bunu nasıl yapabiliriz ? Bunu yapabilmek için mod alma işlemi gerçekleştireceğiz. Üreteceğimiz sayının 51 e göre modunu alırsak. Yeni oluşacak sayımız en fazla 50 değerini alabilir. Artık rastgele bir sayı üretmiş olduk. Üretmiş olduğumuz sayıyı başlangıç değerimiz ile toplarsak 150 ile 200 arasında bir sayı üretmiş olacağız.


Kod

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int rastgele;
int baslangic = 150;
rastgele=rand() % 50;
printf("%d",rastgele);
return 0;
}

150 ile 200 arasında rastgele bir sayı ürettik fakat programı tekrar başlattığımızda sürekli aynı değeri ürettiğini göreceksiniz. Bunun sebebini 3. örneğimiz olan “srand() fonksiyonu ile başlangıç değeri kullanarak rastgele sayı üretmek” başlığı altında inceleyeceğiz.


srand() Fonksiyonu İle Başlangıç Değeri Kullanarak Rastgele Sayı Üretmek

Biz ilk örneklerimizde sürekli aynı değerin üretildiğinden şikayetçiydik. Bunun sebebi srand değeri belirlememiş olmamızdan kaynaklanıyordu. rand() fonksiyonu kullanıldığında eğer ki srand() (başlangıç değeri) belirlenmediyse varsayılan olarak srand(1) şeklinde kabul edilmektedir.

Biz bu değerin sürekli farklı bir başlangıç değeri olması için başlangıç değerimize “time.h” kütüphanemizi kullanarak zamanı gönderiyoruz bu sayede benzersiz sonuçlar elde edebiliyoruz.

Örneğimize ilk olarak “time.h” kütüphanesini dahil edelim. Artık başlangıç değerimizi (srand()) verebiliriz. Burada iç içe fonksiyon kullanacağız ve time kütüphanesinden gelen time() fonksiyonu ile srand() fonksiyonunu beraber kullanacağız.

Kullanım:

srand(time(NULL)); 

Kod

/* Engin Yenice
*  enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"

int main()
{
srand(time(NULL));
int rastgele;
rastgele=rand();
printf("%d",rastgele);
return 0;
}

srand() Fonksiyonu İle Başlangıç Değeri Kullanarak Belirli Bir Aralıkta Sayı Üretmek

Bir önceki örneğimizde her çalıştırıldığında rastgele değer üreten bir örnek oluşturmuştuk. Bu örneğimizde ise 150 ile 200 arasında rastgele sayılar üretmeye çalışacağız. Başlangıç aralığımız belli olduğu için bir adet “baslangic” adında integer değişken oluşturalım. Oluşturduğumuz değişkene başlangıç değerimizi verebiliriz. Artık başlangıç değerimiz belirlendi.

Peki bitiş değerimizi nasıl tespit edeceğiz? Çok basit bir mod alma yöntemi ile bitiş belirlediğimiz aralıkta sabit kalabiliriz. Bunun için ilk olarak bitiş değerinden başlangıç değerini çıkarım.

Fark = 200 – 150

Fark = 50

Bizim üreteceğimiz sayının en fazla 50 olması gerekiyor. Peki bunu nasıl yapabiliriz ? Bunu yapabilmek için mod alma işlemi gerçekleştireceğiz. Üreteceğimiz sayının 51 e göre modunu alırsak. Yeni oluşacak sayımız en fazla 50 değerini alabilir. Artık rastgele bir sayı üretmiş olduk. Üretmiş olduğumuz sayıyı başlangıç değerimiz ile toplarsak 150 ile 200 arasında bir sayı üretmiş olacağız.

İlk olarak time.h kütüphanesini dahil ediyoruz. Ardından srand() ve time() fonksiyonlarımızı bir arada kullanarak başlangıç değeri atıyoruz. Artık 150 ile 200 değerleri arasında rastgele değerler üretebiliriz.

Kod

/* Engin Yenice
enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"

int main()
{
srand(time(NULL));
int baslangic = 150;
int rastgele;
rastgele=baslangic + rand()%51;
printf("%d",rastgele);
return 0;
}


Rastgele sayı üretme örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yayımlayan

2 Replies to “Rasgele Sayı Üretme

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir