Alican Çağıl

Kişisel bir sayfa ile Hayata Haykırış ;)

C de Rasgele Sayı Üretmek

Mayıs11

Merhaba.

Bugun c ve Sistem programcıları derneğinde Necati ergin tarafından aldığımız derste ise c de rasgele sayı üretmeyi işledik. kodu aşağıda veriyorum.

kodda önişlemci komutu olarak <time.h> i ve <stlib.h> ı extradan ekliyoruz. tabili printf kullandığımızdan <stdio.h> başlık dosyasınıda ekliyoruz.

alttaki size 100 ile kaç farklı rastgele sayı üreteceğinizi seçiyorsunuz. ilgiç yan ise az öncede bahsettiğim <time.h> başlık dosyası. Bu dosya programı her açtığınızda rastgele sayı üretilmesini sağlıyor.

Şöyle yani; Mesela normalde rastgele sayı üretmek isteseniz, örnek veriyorum 465466545 sayısının karekökünü alıp ortadan 4 rakamı çekerdiniz. ancak bu alogritimada (kitap yanımda değil tam hatırlamıyorum rakam veremeyeceğim ama) belli bir rakamdan başlıyor. ancak <time.h> başlık dosyasını ekleyip random kısaltması olan rand komutusu srand olarak kullanıpta kodu aşağıdaki gibi derlediğimizde

srand((unsigned)time(0));

rasgele sayı üretiliyor. Peki time zamanla ne alakası var? Hemen söyliyeyim. Zaman bilgisayarın standart saati olan 1-1-1970 yani C nin oluşum tarihini işaret ediyor. burdaki saniye o günden bu güne kadar olan saniyeyi varsayıyor. Eğer program saniyede 2 kez çalıştırılmaz ise, program her açıldığından rastgele sayı üretimi geçekleşiyor.

Fazla uzatmıyor kodu veriyorum;

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SIZE	100

int main()
{
int a[SIZE];
int k;
int sum = 0;

srand((unsigned)time(0));

for (k = 0; k < SIZE; ++k)
a[k] = rand() % 1000;
//////////////////////////////////////
for (k = 0; k < SIZE; ++k)
printf("%3d ", a[k]);
printf("\n*******************************************************************************\n");

for (k = 0; k < SIZE; ++k)
sum += a[k];
printf("toplam = %d\n", sum);

return 0;
}
posted under C

Email will not be published

Website example

Your Comment: