C/C++ Rastgele Sayı Üretme

C ve C++ ile rastgele sayı üretmek için kullanılan kütüphane dosyası ve fonksiyonu ile ilgili bilgiler yer alıyor.

Rastgele sayı üretme

C ve C++ ile rastgele sayı üretme işlemi için rand ve srand fonksiyonları kullanılır.

#include <iostream>

using namespace std;

int main() {

  for(int i = 0; i < 10; i++){
    cout << rand() << endl;
  }

  return 0;
}

C ile;

#include <stdio.h>

int main(){

  int i = 0;

  for(i = 0; i < 10; i++){
    printf("%d\n", rand());
  }

  return 0;
}

Ancak rand fonksiyonu her programın çalıştırılmasında benzer sayılar üretecektir.

Bu sorunun önüne geçebilmek için srand fonksiyonu kullanılır.

#include <iostream>
#include <ctime>

using namespace std;

int main() {

  srand(time(0));

  for(int i = 0; i < 10; i++){
    cout << rand() << endl;
  }

  return 0;
}

C ile;

#include <stdio.h>

int main(){

  int i = 0;

  srand(time(0));

  for(i = 0; i < 10; i++){
    printf("%d\n", rand());
  }

  return 0;
}

Belirli bir aralıkta sayılar üretmek için modüler aritmetik operatörü kullanılır.

#include <iostream>
#include <ctime>

using namespace std;

int main() {

  int enFazla = 250, enAz = 100;

  srand(time(0));

  for(int i = 0; i < 10; i++){
    cout << rand() % (enFazla - enAz + 1 ) + enAz << endl;
  }

  return 0;
}

Program 100 ila 250 arasında sayılar üretecektir.

C ile;

#include <stdio.h>

int main(){

  int i = 0;

  srand(time(0));

  for(i = 0; i < 10; i++){
    printf("%d\n", rand() % 100);
  }

  return 0;
}

Program 0 ila 99 sayısı arasında sayılar üretecektir.

C++ rastgele harf üretmek için üretilen sayının 26 sayısına göre modüler aritmetiği alınarak 97 eklenmesi yeterli olacaktır.

#include <iostream>
#include <ctime>

using namespace std;

int main() {

  srand(time(0));

  for(int i = 0; i < 10; i++){
    char harf = (char)(rand() % 26) + 97;
    cout << harf << endl;
  }

  return 0;
}

NOT: Harfler ASCII tablosuna göre üretilir.

Programlama örneklerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!