Yazilim Öğrenmenin Tek Adresi...
Daha İyi Bir Hizmet İçin Lütfen Üye Olunuz...
Yazilim Öğrenmenin Tek Adresi...
Daha İyi Bir Hizmet İçin Lütfen Üye Olunuz...
Yazilim Öğrenmenin Tek Adresi...
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Yazilim Öğrenmenin Tek Adresi...

En Kapsamlı Visual Basic Sitesi
 
AnasayfaAramaLatest imagesKayıt OlGiriş yap
Giriş yap
Kullanıcı Adı:
Şifre:
Beni hatırla: 
:: Şifremi unuttum
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» C İle Banka Otomasyonu Acill
C'de stdlib.h Kütüphanesi Icon_minitimeC.tesi Ocak 09, 2010 4:51 pm tarafından Ebubekir_Kara

» C++'la yapılmış basit ATM programı
C'de stdlib.h Kütüphanesi Icon_minitimeÇarş. Ara. 02, 2009 4:43 am tarafından 1221ibrahim

» Bir Oyunda Puan Sistemi Yapma
C'de stdlib.h Kütüphanesi Icon_minitimePtsi Kas. 02, 2009 1:49 pm tarafından KonYalıCoder

» Ipconfig Komutu
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:33 pm tarafından OguzhanUyanik

» Çalıştır Komutları
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:33 pm tarafından OguzhanUyanik

» Domain Adresleri
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:32 pm tarafından OguzhanUyanik

» Msconfig Nedir? Ayarları ve Özellikleri
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:32 pm tarafından OguzhanUyanik

» Windows Vista & Türkçe Kurulumu Resimli anlatım!
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:31 pm tarafından OguzhanUyanik

» Format atmak ve Türkçe windows xp kurulumu (resimli anlatım)
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:31 pm tarafından OguzhanUyanik

» Windows Xp Hızlandırma
C'de stdlib.h Kütüphanesi Icon_minitimePaz Eyl. 13, 2009 5:30 pm tarafından OguzhanUyanik

En iyi yollayıcılar
OguzhanUyanik (472)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
mehmet bozer (78)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
asi_esra (4)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
mysterious_el (4)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
1221ibrahim (3)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
igny (3)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
tarkantr2000 (2)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
myildiz.16 (2)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
KAPORTACI (2)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 
tolgakesan (2)
C'de stdlib.h Kütüphanesi Vote_lcapC'de stdlib.h Kütüphanesi I_voting_barC'de stdlib.h Kütüphanesi Vote_rcap 

 

 C'de stdlib.h Kütüphanesi

Aşağa gitmek 
YazarMesaj
OguzhanUyanik
Mareşal
Mareşal
OguzhanUyanik


Yengeç Mesaj Sayısı : 472
Kayıt tarihi : 31/08/09
Yaş : 32
Nerden : Konya
İş/Hobiler : Bilgisyar-Yazılım
Lakap : Nediz

C'de stdlib.h Kütüphanesi Empty
MesajKonu: C'de stdlib.h Kütüphanesi   C'de stdlib.h Kütüphanesi Icon_minitimeÇarş. Eyl. 09, 2009 2:25 pm

Oyun kodlayan ya da kodlama işine sırf oyun yazabilmek için girmiş programcıların en çok sevdiği kütüphaneyi inceliyoruz, rand() / srand() rasgele sayı üretme fonksiyonlarıyla birlikte!

Stdlib.h Kütüphanesi

Bu kütüphanede yine matematiksel işlemler için kullanılmaktadır ancak kütüphanesi math.h dan farklıdır.Bu kısımda göreceğimiz fonksiyonları kullanabilmek için stdlib.h kütüphanesini programınıza #include<stdlib> şeklinde entegre etmeniz gerekmektedir.

ABS() Fonksiyonu

Absolute kelimesinin kısaltılmışı olan bu fonksiyon aynı İngilizce anlamı gibi mutlak değer anlamına gelmektedir. Daha önceki makalemde Fabs() fonksiyonundan bahsetmiştim şimdide abs fonksiyonununda aynı işlevi gördüğünden bahsediyorum arada tek bir fark diğer makalemde double türünde değer alıp vermeniz gerektiğini söylemiştim bu fonksiyonda ise int türünde değer alıp vermeniz gerekmektedir. Kısaca aradaki tek fark parametre değerlerinin farkıdır...

RAND() Fonksiyonu

Rand() fonksiyonu özellikle oyun türü simülasyonlarda rasgele sayı üretmek için bol bol kullanılan ve çok da sevilen bir fonksiyondur çünkü şöyle bir düşündüğümüzde hemen hemen bütün oyunlarda ihtiyaç duyulur ve bu fonksiyonun en güzel özelliği belirli bir aralıkta tutabilmemizdir sonucu. Bir tavla oyununda mesela zar en fazla 6 gelebilir böyle bir durumda sonucu sınırlayabilmek bize büyük avantaj kazandırır.RAND() fonksiyonu İngilizce random yani rasgele kelimesinden gelmektedir. Rand() fonksiyonunda integer deger döndürüp hiçbir parametre almamsına dikkat etmeliyiz. Daha önce kullandıgımız fonksiyonlarda () kısmına hangi sayı için işlem yapıyorsak onu alıyorduk ama artık rand() fonksiyonu için bir şey yazmayacağız. Birkaç örnekle devam edelim..

#include<stdio.h>
#include<stdlib.h>
int sayisal();
int main()
{ int x;
do{
printf("Bu Haftanin Sansli Sayilari Siralamak icin 1 e basin";
scanf("%d",&x);
}while(x!=1);

sayisal();


getchar();getchar();
return 0;
}

int sayisal()
{
int i,a;

for(i=0;i<6;++i)
{
a = (rand()%49)+1;
printf("Bu haftanin sansli %d. rakami: %d \n",i+1,a);

}



}



şimdi burada kodlara biraz göz atarsak şu noktalara dikkat çekmemiz gerekiyor.

1.si #include<stdlib.h> kütüphanesini kesinlikle entegre ediyoruz.

2.si rand() fonksiyonunu int olarak aldık ama parametre kısmı boş yani void olmalı biz void yazmayıp boş bırakmayı tercih ettik.

3.sü rand() fonksiyonunu 49 tane rakam ve 1 den 49 a kadar olması için mod yöntemini kullandık ve 0 dan değil de 1 den başlasın diye 1 ekledik...

Ve çok önemli bir açık var programımızda çok şanlı iseniz programın bazen aynı sayıyı tekrar ürettiğini göreceksiniz ee sayısal lotoda aynı sayıyı 2 kez yazamayacağınıza göre bunu engellemek için bir kısım daha yazmalısınız.. Bunu 2 şekilde yapabilirsiniz. Ya dizi oluşturup ayrıca dizide birbirine benzeyen varmı kontrol edersiniz yada switch Case yapısı ile 6 farklı değişkene her bir üretilen sayıyı atayıp eğer aynı sayıya denk geldiyseniz tekrar başa dönüp yeni bir değer daha bulmasını isteyebilirsiniz.

Şimdi dikkatli kullanıcıyla dikkatsiz kullanıcıyı burada ayırdık sanırım. Aslında 2 kez arka arkaya programı çalıştırırsanız görürsünüz ki program hep aynı sayıyı üretiyor yani 6 sayıda hiç değişmiyor bunun için başka bir fonksiyona geçiyoruz..

SRAND() Fonksiyonu

Bu fonksiyon rand() fonksiyonu ile birlikte çalışır ve bu fonksiyon aldığı değere göre rand() fonksiyonuna bir değer çıkarttırır. Şöyle ki; az önceki programımızın fonksiyon kısmını şöyle değiştirirsek:

#include<stdio.h>
#include<stdlib.h>
int sayisal();
int main()
{ int x;
do{
printf("Bu Haftanin Sansli Sayilari Siralamak icin 1 e basin";
scanf("%d",&x);
}while(x!=1);


sayisal();


getchar();getchar();
return 0;
}

int sayisal()
{

int i,a;
srand(5);
for(i=0;i<6;++i)
{
a = (rand()%49)+1;
printf("Bu haftanin sansli %d. rakami: %d \n",i+1,a);

}



}



Yeni üretilen sayıların farklı olduğunu görürsünüz ancak yine bir sorun var bu seferde srand() fonksiyonu farklı değer almazsa yine hep aynı değer alacaktır.. BU aslında çok büyük bir sorundur ancak çözümüde bir o kadar güzeldir.BU mantığı özenerek anlatmak istiyorum çünkü hemen hemen tüm programlama dillerinde bunun kullanıldığını biliyorum. Hayatımızda sürekli değişen ve hiçbir zaman aynısı olmayacak birşeye ihtiyacımız var değil mi? Çünkü srand() fonksiyonu sürekli yeni değer almalı o zaman ona sürekli değişen bir şey bulmalı derken sağ olsun C 'nin yaratıcıları bize time() fonksiyonunu sunmuş. Evet sürekli değişen şey zamandır ve bunu srand() fonksiyonu için kullanacağız. Neresi ilginç bunun diyen sesler duyuyorum peki bu zaman yani time() fonksiyonun 1 Ocak 1970 tarihinden bu güne kadar olan Saniyelerden herhangi birini seçtiğini söylersem

Bu kadar bilgiden sonra srand() fonksiyonunu zamana göre değiştiren kodu görelim:

degistir = time(NULL);
srand(degistir);
rand()%49+1



İşte bu artık sürekli yeni sayı elde edebiliriz...Az önceki kodumuzu yeni haline göre modifiye edersek. Time.h kütüphanesini eklemeyi unutmayalım.

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

int sayisal();
int main()
{ int x;
do{
printf("Bu Haftanin Sansli Sayilari Siralamak icin 1 e basin";
scanf("%d",&x);
}while(x!=1);

sayisal();


getchar();getchar();
return 0;
}

int sayisal()
{
int i,a;
int degistir;
degistir=time(NULL);
srand(degistir);
for(i=0;i<6;++i)
{
a = (rand()%49)+1;
printf("Bu haftanin sansli %d. rakami: %d \n",i+1,a);

}



}
Sayfa başına dön Aşağa gitmek
https://yazilimnet.yetkin-forum.com
 
C'de stdlib.h Kütüphanesi
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Hazır Ses Kütüphanesi
» C'de Math.h Kütüphanesi (Bölüm2)
» C'de Math.h Kütüphanesi (Bölüm1)

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Yazilim Öğrenmenin Tek Adresi... :: Masaüstü Programlama :: C / C++-
Buraya geçin: