C de Rasgele Sayı Üretmek
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;
}