• 06-04-2009, 15:36:40
    #1
    Arkadaslar 1 den 8 e kadar olan sayilari rastgele sectirme ile ayni sayi tekrar gelmemek kosulu ile ornekteki gibi sectirmek istiyorum,asagida gonderdigim kodda bunu yapmiyor,ben 2 gundur nedinini arastiriyorum fakat bulamadim,
    alternatif yollar aramiyorum,asagidaki kodu duzeltmem lazim cunku sitemdeki mantik bu,bu sadece deneme yapabilmek icin basite indirgenmis hali.

    <%
    dim dizi(10)
    for m=1 to 10
    dizi(m)=0
    next
    for i=1 to 8
    sanslikisi=kura
    response.write "sanslikisi= " & sanslikisi %><br><%
    dizi(i)=sanslikisi
    next
    %>
    
    <%
    function kura
    tutkura=kuracek
    response.write "fonksiyona gelen tutkura= " & tutkura %><br><%
    for k=1 to 8
    if dizi(k)=tutkura then
    response.write "ayni geldi " & tutkura %><br><%
    kura
    end if
    next
    response.write "ayni gelmedi " & tutkura %><br><%
    kura = tutkura
    end function
    %>
    
    <%
    function kuracek
    randomize
    max=8
    min=1
    sayi=Int((max-min+1)*Rnd+min)
    response.write "kuracek= " & sayi %><br><%
    kuracek= sayi
    end function
    %>
    
    <br>dizinin sonucu<br>
    <%
    for u=1 to 8
    response.write dizi(u)%><br><%
    next
    %>
  • 06-04-2009, 16:33:21
    #2
    hatalari gormek icin responsw.write satirlarini ekledim,
    kura fonksiyonunda ayni sayi gelmedikce sorun yok,ayni sayi geldiginde
    tekrar kuracek fonksiyonu caliyior ve olmayan sayi bulunana kadar bu devam ediyor fakat
    ayni olmayan sayi geldiginde bu sefer kura fonksiyonu cagirildigi yere deger gondermiyor,
  • 06-04-2009, 17:37:02
    #3
    swordfish adlı üyeden alıntı: mesajı görüntüle
    hatalari gormek icin responsw.write satirlarini ekledim,
    kura fonksiyonunda ayni sayi gelmedikce sorun yok,ayni sayi geldiginde
    tekrar kuracek fonksiyonu caliyior ve olmayan sayi bulunana kadar bu devam ediyor fakat
    ayni olmayan sayi geldiginde bu sefer kura fonksiyonu cagirildigi yere deger gondermiyor,
    Döngüyü 8 tane olarak belirtmişsin ki bunu bilemezsin 8 defa üst üstede aynı rakam gelebilir. Tam olarak koduna bakmadım bana uzak bir dil zaten. Ama mantık yeterli sorunundan anlıyorum ve 2 sey kesin cozumu getirebilir.

    Birincisi dongu 8 tane olmicak while ile yapılacak taki aynı sayı gelmeyince kadar.
    İkincisi randomize ifadesinden sonra eger uyutma yapabiliyorsan 100 mili saniye falan uyut programı calısır diye dusunuyorum dene bakalım napacak..
  • 06-04-2009, 17:53:25
    #4
    eger yukaridaki kodun ilk for dongusunu diyorsan orada 1 den 8 e dedim cunku dizide 8 tane deger olmasini istiyorum,

    eger kura fonksiyonunun icindeki for dogusu icin dediysen,
    orada da durum soyle,zaten dizide 8 tane deger olacak kuracek fonksiyonundan gelen sayi eger bu dizinin 8 elemanindan biridne varsa tekrar kura fonksiyonu devreye girsin dedim

    uyutma nasil yapiliyor bilmiyorum ama ne faydasi olacak,eger calisma hizini yavaslatacaksa, sitede bu islem cok kez tekrarlanacak ve eger yavaslamaya sebep olacaksa asp nin 100sn lik program calistirma suresinin uzerine cikip hata verebilir
  • 06-04-2009, 20:06:12
    #5
    randomize den sonra Sleep(100) desene 100 sn demedim zaten mili saniyedir bu.

    koda bunu ekle bi bakalım napacak.
  • 06-04-2009, 20:07:14
    #6
    Asp mi bu ? İlk başta basic'e benzettim.
  • 06-04-2009, 20:45:38
    #7
    vbscript icin sleep fonksiyonunu bulamadim ama nasil yardimci olacaginida anlamis degilim.

    Asp icinde vbscript kullanilmistir Zafi
  • 07-04-2009, 20:10:07
    #8
    DarKPeArL adlı üyeden alıntı: mesajı görüntüle
    Döngüyü 8 tane olarak belirtmişsin ki bunu bilemezsin 8 defa üst üstede aynı rakam gelebilir. Tam olarak koduna bakmadım bana uzak bir dil zaten. Ama mantık yeterli sorunundan anlıyorum ve 2 sey kesin cozumu getirebilir.
    Birincisi dongu 8 tane olmicak while ile yapılacak taki aynı sayı gelmeyince kadar.
    İkincisi randomize ifadesinden sonra eger uyutma yapabiliyorsan 100 mili saniye falan uyut programı calısır diye dusunuyorum dene bakalım napacak..
    DarKPeArL, en sonunda sleep yapmayi da basardim,ama yine ayni,randomize dan sonra 1sn sleep koydu yine olmadi,bu arada bu sleep kodunu buluncaya kadar canim cikti.

    Hataya gelince,program bir hata cevabi vermiyo sadece yanlis sonuclar veriyo,

    yukaridaki program cikti olarak 1 le 8 arasinda birbirinden farkli 8 sayi yazdirmali fakat ayni sayilar geliyor,
  • 07-04-2009, 20:13:29
    #9
    programin bir calismis ciktisini veriyorum,
    response.write lari kritik her yere koydum ki hatanin nerede oldugnu anlayalim,
    asagidaki ciktiya dikkat ederseniz goreceksiniz ki ayni sayi geldigi zaman tekrar kura cektirdigi ve gelen sayi eger farkli ise yeni sayi farkli dedikten sonra bir onceki ayni olan sayiyada farkli deyip cagirildigi yere ayni olan sayiyi gondermesi


    kuracek= 4
    fonksiyona gelen tutkura= 4
    ayni gelmedi 4
    sanslikisi= 4
    kuracek= 1
    fonksiyona gelen tutkura= 1
    ayni gelmedi 1
    sanslikisi= 1
    kuracek= 7
    fonksiyona gelen tutkura= 7
    ayni gelmedi 7
    sanslikisi= 7
    kuracek= 3
    fonksiyona gelen tutkura= 3
    ayni gelmedi 3
    sanslikisi= 3
    kuracek= 1
    fonksiyona gelen tutkura= 1
    ayni geldi 1
    kuracek= 8
    fonksiyona gelen tutkura= 8
    ayni gelmedi 8
    ayni gelmedi 1
    sanslikisi= 1
    kuracek= 2
    fonksiyona gelen tutkura= 2
    ayni gelmedi 2
    sanslikisi= 2
    kuracek= 2
    fonksiyona gelen tutkura= 2
    ayni geldi 2
    kuracek= 8
    fonksiyona gelen tutkura= 8
    ayni gelmedi 8
    ayni gelmedi 2
    sanslikisi= 2
    kuracek= 8
    fonksiyona gelen tutkura= 8
    ayni gelmedi 8
    sanslikisi= 8

    dizinin sonucu
    4
    1
    7
    3
    1
    2
    2
    8