08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

int main()<br />

{<br />

int k;<br />

for (k = 0; k < 10; ++k)<br />

printf("%d\n", zar_at());<br />

}<br />

return 0;<br />

Yukarıda yazılan programda yer alan zar_at isimli işlev, bir çift zar atıldığında elde iki<br />

zarın toplamı değeriyle geri dönüyor. srand(time(0)) çağrısı zar_at işlevi içinde yapılıyor.<br />

main işlevi içinde oluşturulan for döngüsüyle 10 kez zar_at işlevi çağrılıyor. İşlevin her<br />

çağrısında time işlevi hep aynı geri dönüş değerini üretir. Bu durumda srand işlevine hep<br />

aynı argüman geçildiğinden rand işlevi çağrıları da hep aynı iki sayıyı üretir. Yani ekrana<br />

10 kez aynı değer yazdırılır. srand(time(0)) çağrısının main işlevi içindeki for<br />

döngüsünden önce yapılması gerekirdi, değil mi?<br />

Aşağıdaki main işlevinde uzunlukları 3 - 8 harf arasında değişen İngiliz alfabesindeki<br />

harfler ile oluşturulmuş rastgele 10 sözcük ekrana yazdırılıyor:<br />

#include <br />

#include <br />

#include <br />

#define TIMES 10<br />

#define MIN_WORD_LEN 3<br />

#define MAX_WORD_LEN 8<br />

void write_word(void)<br />

{<br />

int len = rand() % (MAX_WORD_LEN - MIN_WORD_LEN + 1) + MIN_WORD_LEN;<br />

}<br />

while (len--)<br />

putchar('A' + rand() % 26);<br />

int main()<br />

{<br />

int k;<br />

}<br />

srand(time(0));<br />

for (k = 0; k < TIMES; ++k) {<br />

write_word();<br />

putchar('\n');<br />

}<br />

return 0;<br />

Aşağıda bu kez yazdırılan sözcüklerin içinde sesli harf olmaması sağlanıyor:<br />

int isvowel(int c)<br />

{<br />

return c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U';<br />

}<br />

void write_word(void)<br />

{<br />

int len = rand() % (MAX_WORD_LEN - MIN_WORD_LEN + 1) + MIN_WORD_LEN;<br />

int ch;<br />

193

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!