Sınırsız zar atma (C dili)

erencan144
30-10-2010, 22:31   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

Arkadaşlar merhaba. Bir sorum olacaktı. Kullanıcı zar adetini giriyor ve siz de kaç tane zar varsa gelen sayıların permütasyon kombinasyonlarını ekrana yazdırıyorsunuz. Mesela kullanıcı zar adetine 4 girdi gelen zarların permütasyonları 1246 3145 4325 5234... gibi... Algoritmayı oluşturamadım, yardımcı olursanız çok sevinirim. Kolay gelsin.

muh34
31-10-2010, 00:10   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Yukarıdaki sorunun pseudo kodu asagıdaki gibi olabilir.
1 .Oncelikle kullanıcıdan zar adedini isteyen bir input fonksiyonu olustur.

2.while(1) gibi bir sonsuz dongu olusturulur(Normalde sonsuz(olü) donguler CPU mekanizmasını yordugu icin tavsiye edilmez)
3.Sonsuz dongunun icerisine bir for dongusu ile zarları turet. -> rand()%6+1
4.Turetilen zarları yanyana ekrana bastır.

Verilen bu kaba koda gore programın gercek kodu aşagıdaki gibidir.

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

main() {

       srand(time(NULL));
       int adet=0;
       printf("Lutfen zar adedini Giriniz:");
       scanf("%d",&adet);

       while(1) {
       for(int i=0;i<4;i++) {
       int zar=rand()%6+1;
       printf("%d",zar);
       }
       printf(" ");
       }
       return 0;
       }
Yukarıdaki programdaki for dongusu(loop) kac kez zar atılacagını belirlerken,while() dongusu bu işlemi surekli calistiracaktır.
Başarılar

erencan144
31-10-2010, 01:01   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

Yanıtınız için teşekkürler. Birincisi benim o while döngüsünden zamanı geldiğinde çıkmam gerekiyor, başka fonksiyonlara gitmek için :) İkincisi randomla üretmeyeceğim, çünkü gelecek rakamlar ve oluşan permütasyon kombinasyon sayıları zar sayısı verilince kesinleşiyor. mesela 2 zar atılıyor
bütün permütasyon sonuçları : 11 12 13 14 15 16 21 22 23 24 25 26 31 32 33 34 35 36 41 42 43 44 45 46 51 52 53 54 55 56 61 62 63 64 65 66.

Tüm kombinasyon sonuçları ise : 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66.

Bu durum zar sayısı 3, 4 ... gibi belli olan zar sayısı durumlarında yazdırılacak. Teşekkür ederim.

muh34
02-11-2010, 12:09   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Anladım,sorunuzun cevabı http://www.bilgisayarkavramlari. ... syon-algoritmasi-2/ adli sitede Yrd.Doç.Dr Şadi Evren Şeker tarafından detaylı olarak anlatılmıştır.
Başarılar

erencan144
03-11-2010, 00:46   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

Çok teşekkür ederim kolay gelsin.