Asp`de rastgele sayi üretmek icin Randomize ve Rdn komutlarini kullaniyoruz. Görev olarak bazen cok karmasik bir uygulamayi yüklensede tesadüfi (rastgele) sayi üretmek Asp`de cok kolaydir.
Hemen ilk örnegimizi yapalim;
Dim rastgeleSayi Randomize rastgeleSayi = Rnd response.write rastgeleSayi
iste bu kadar.
Isin mantigini anlatmak gerekirse;
ilk once Randomize komutunu yazmamamiz gerekiyor bu bir kuraldir yani rastgele sayi icin starti vermis oluyoruz sonraki adimda degiskenimizi Rnd `ye esitleyerek tesadüfi sayimizi elde ediyoruz.
Yalniz dikkat etmememiz gereken bir husus var; ürettigimiz bu sayi tamsayi veya büyük bir ihtimalle kesirli (küsüratli) sayi olabilir. Eger sadece tam sayi istiyorsaniz Int ve Round komutlarindan birini kullanarak sayimizi tam sayiya cevirebilirsiniz.
Dim rastgeleSayi Randomize rastgeleSayi = Rnd response.write Int(rastgeleSayi) 'veya response.write Round (rastgeleSayi)
Int ve Round komutlarindan kisaca bahsetmek gerekirse;
-
Int –> Bu fonksiyon ile sayinin kusuratini atabilirsiniz. Örnegin 158,675 gibi bir sayi 158 olarak dönüstürülür. yani kusurat atilir.
-
Round –> Round ise küsüratina göre tam sayiya dönüstürür. Örnegin 158,675 sayisi 159 olarak dünüstürülür veya 47,3 sayisi 46 olarak deger alir.
Son olarak bazende iki sayi araliginda bir deger olusturmak isteyebirsiniz.
Örnegin 50 ile 100 arasinda rastgele bir sayi üretmek istiyorum;
Dim rastgeleSayi, max, min, islem max = 100 min = 50 islem = (max - min) + 1 Randomize rastgeleSayi = int((Rnd * islem)+min) response.write Int(rastgeleSayi)
yukaridaki örnegi tarayicinizda denerseniz ekranda 50 ile 100 arasi bir sayi yazdigini göreceksiniz. Yenile düğmesine tiklayarak tekrar tekrar test edebilirsiniz.
Buradaki iki sayi arsinda rastgele bir değer elde etmemizi sağlayan formul (Rnd * 50) + 50 ‘dür. Bu formulün mantigini anlatmak gerekirse;
Sayımız en düsük olabileceği değere +50 ilave ediyoruz böylece sayımız 50 ‘nin altina düşmüyor.
Yukarıdaki formulde (rnd * 50) dikkatinizi çekmiştir aslinda rastgele sayimiz 50 ile çarpilmiyor bunu bir kod formulu olarak düsünebilrsiniz. Çarpi isareti ( * ) sonrasinda en yüksek değeri belirtmeniz yeterli olacaktir.


















Oldukça faydalı bir çalışma benim için.
Emeği geçen arkadaşalara teşekkürler…
güzel çalışma eline sağlık ama virgülü nasıl kaldıracağımız hakkında bilgi verebilirmisin
Dim rastgeleSayi
Randomize
rastgeleSayi = (Rnd * 100) + 50
rastgeleSayi = Int(rastgeleSayi)
response.write (rastgeleSayi)
bu oluşturulan sayıdan en büyüğünü altına nasıl yazdırabilriz…
bu kodda hata var arkadaşlar…
rnd*100 komutu ile en fazla yüze kadar olan rakamı program rastgele üretiyor. buraya kadar ok. ancak +50 komutu ile üretilen sayıya 50 daha ekleniyor. program 1 sayısını üretirse üzerine 50 koyunca 51 eder. peki program 80 sayını ürettiğini düşünün.. 80+ 50= 130 eder. dolayısı ile program 50 ile 100 arasında rastgele bir sayı üretmiş OLMAZ. Kodu denedim. 130, 128, 146, 103 ürettiği rakamlar arasındaydı.
Evet Haklısın Salih ESKİOĞLU aslinda yukaridaki yorumda int ve round fonksiyonlarini anlatirken bu yanlisligi fark etmemisim 50 ile 100 arasinda bir sayi üretmek icin asagidaki yolu izlemek gerekiyor;
max = 100
min = 50
islem = (max – min) + 1
Randomize
rastgeleSayi = int((Rnd * islem)+min)
Sonuc= rastgeleSayi
arkadaşlar ben ürettiğim rastgele sayıların en büyüğünü nasıl elde edebilirim…acil yardım lütfen…
Rasgele ürettigin sayilardan en büyügünü bulabilmen için öncelikle örettiğin sayıları bir array içerisine almanız gerekiyor.
Örneğin diyelimki 3 tane rastgele sayı ürettiniz;
rasgeleSayılar=new Array("57","64","82" );
sirala=rasgeleSayılar.sort( );
Bu şekilde bir uyguladığınızda sirala isimli bir array oluşur ve küçükten büyüğe doğru sıralar ve siz arrayın 3. elemanını alarak en büyük sayıyı elde etmis olursunuz
enbuyuksayı = sirala(2)
Asap `de Array kullanimi için aşağıdaki linki inceleyebilirsiniz. http://www.flashcentury.net/asp-dizi-degiskenleri...
<body>
<%
randomize
dim sayi
sayi=int(rnd*10+1)
response.write(sayi)
%>
</body>
bu işlemdeki mantığı anlatırmısınız?r n d rastgele bir sayı ve 11 ile mi çarpılıyor.cevaplarsanız sevinirim şimdiden teşekkürler…
bildiğiniz gibi rnd özel bir ASP fonksiyonudur. (rnd*10+1) gibi bir kodlama ASP 'ye rastgele bir sayı oldugunu fakat bu sayının alabileceği en yüksek sayının 10 olduğunu bildirir.
Yani kesinlikle rasgele sayı ile çarpılma gibi bir durum yok (rnd*10) formulu 0 ile 10 arası bir sayı üretir. (rnd*10+1) gibi bir formul ise 1 ile 11 arası bir sayı üretir. Formulun sonundaki +1 minimum rakam olarak düşünebilirsin (en düşük rakam 0 olacağı için +1 ekleyerek minimum rakamı yükseltmiş oluyoruz)
cevabınız için çok tesekkür ederim inanın çok açıklayıcı ve anlasılır olmuş…..birde siz bilgisayar öğretmenimisiniz? sakıncası yoksa öğrenebilir miyim…
Rica ederim yardımcı olabildiysem ne mutlu fakat size tavsiyem eğer ASP 'ye yeni başladıysanız bence PHP veya ASP.NET 'e yönelmeniz çünkü Microsoft ASP 'yi geliştirmeyi uzun zamandır durdurdu ve belki birkaç yıl içerisinde tamamen yok olup gidecek bu yüzden ASP 'ye yatırım yapmamanızı tavsiye ederim.
Hayır bilgisayar öğretmeni değilim, sadece 10 seneden fazladır web programlama konusunda çalışsan bir programcıyım. Vakit buldukça deneyimlerimi paylaşıyorum…
Dim rastgeleSayi
Randomize
rastgeleSayi = (Rnd * 100) + 50
rastgeleSayi = Int(rastgeleSayi)
response.write (rastgeleSayip
peki bu kodda ki parantez dışına yazılan 50 sayısı ne için kullanılıyor bu da 50 ile 100 arası bir sayımı üretiyor….parantez dışına yazılması kafamı karıştırdı.
Evet (Rnd * 100) + 50 ile (Rnd * 100 + 50) aynı sonucu veriyor fakat (Rnd * 100) + 50 haliyle daha anlaşılır bir sonuç veriyor fakat bu formul 50 ile 100 değil 50 ile 150 arasında bir sonuç verir.
Aşağıdaki gibi bir folmul hem anlaşılır hemde düzenlemesi kolay olabilir.
max = 100
min = 50
islem = (max – min) +1
Randomize
rastgeleSayi = int((Rnd * islem)+min)
response.write (rastgeleSayi)
yani şöyle bir işlem oluyor;
max = 100
min = 50
islem = (100 – 50) —–> (50 sonucu cıkıyor)
Randomize
rastgeleSayi = int((Rnd * 50)+50) —-> (farzedinki rastgele sayı 15 oldu (15+50=65) sonucu cıkıyor)
response.write (rastgeleSayi) —> (ve ekranda 65 rakamı gösteriliyor)
Yukarıdaki formulde rastgele sayı en fazla 50 olabilir (50+50=100 sonucu cıkar)
En düşük 0 olabilir (0+50=50) sonucu çıkar yani maxsimum 100 minimum 50 rakamlarını elde ederiz…