• 26-11-2009, 00:32:54
    #1
    arkadaşlar ufak bir projemde diziler ile çalışırken hata alıyorum yardım edecek varsa sevinirim

    <%
    yemek = array ("yemek 1","yemek 2","yemek 3","yemek 4","yemek 5","yemek 6","yemek 7","yemek 8","yemek 9","yemek 10")
    
    s=0
    for i=1 to 10
    	s=s+10
    		if i=1 then
    		s=1
    		end if
    			randomize()
    			adet=rnd(16)+5
    			kac_adet(i)=adet
    				for a=1 to adet
    					randomize()
    					seviye=rnd(11)+s*1
    					randomize()
    					enerji=rnd(21)+10
    					randomize()
    					fiyat=rnd(16)+5
    					randomize()
    					cesit=rnd(10)
    				
    					c_yemek(i,a)=yemek(cesit)
    					c_yemek2(i,a,1)=seviye
    					c_yemek2(i,a,2)=seviye*enerji
    					c_yemek2(i,a,3)=seviye*enerji*fiyat/10
    				next
    			
    			if i=1 then
    			s=0
    			end if
    next
    
    for b=1 to 10
    	response.Write(i &". serinin yemekleri")
    	for c=1 to kacadet(b)
    	response.Write(c_yemek(b,c) &"<br>")
    	response.Write(c_yemek2(b,c,1) &"<br>")
    	response.Write(c_yemek2(b,c,2) &"<br>")
    	response.Write(c_yemek2(b,c,3)&"<br><br><br>")
    	next
    next
    
    %>

    kodlar üstteki gibi hiç bir veritabanı bağlantısı olmadan
    randomize ile sayilar üreterek işlemler yapan bir sistem var
    fakat üstteki kodlarda gerek kac_adet(i)=adet kısmında
    gerekse c_yemek(i,a)=yemek(cesit) kısmında tür uyuşmazlığı hatası alıyorum
    diziler konusunda biraz zayıfım yardımlarınızı bekliyorum
  • 26-11-2009, 17:49:32
    #2
    arkadaşlar yardımınızı bekliyorum
  • 26-11-2009, 18:48:00
    #3
    Eposta Aktivasyonu Gerekmekte
    (16)+5 neden dedin burdaki değer , virgüllü geliyor cint ile integer a çevirmeyi denedin mi ?
  • 26-11-2009, 18:51:33
    #4
    kartonkafa adlı üyeden alıntı: mesajı görüntüle
    (16)+5 neden dedin burdaki değer , virgüllü geliyor cint ile integer a çevirmeyi denedin mi ?
    (16)+5 dememdeki amaç 5 ile 20 arasında bir sayı üretmek
    son olarak aşağıdaki gibi bir kod yazdım ama sorun devam ediyor


    <%
    yemek = array ("yemek 1","yemek 2","yemek 3","yemek 4","yemek 5","yemek 6","yemek 7","yemek 8","yemek 9","yemek 10")
    
    s=0
    for i=1 to 10
    	s=s+10
    		if i=1 then
    		s=1
    		end if
    			randomize()
    			sayi=int((Rnd*16)+5)
    			kacadet(i-1) = sayi
    				for a=1 to sayi
    					randomize()
    					seviye=int((Rnd*11)+s*1)
    					randomize()
    					enerji=int((Rnd*21)+10)
    					randomize()
    					fiyat=int((Rnd*16)+5)
    					randomize()
    					cesit=int(Rnd*10)
    				
    					c_yemek(i-1,a-1)=yemek(cesit)
    					c_yemek2(i-1,a-1,0)=seviye
    					c_yemek2(i-1,a-1,1)=seviye*enerji
    					c_yemek2(i-1,a-1,2)=seviye*enerji*fiyat/10
    				next
    			
    			if i=1 then
    			s=0
    			end if
    next
    
    for b=1 to 10
    	response.Write(b &". serinin yemekleri")
    	for c=1 to kacadet(b-1)
    	response.Write(c_yemek(b-1,c-1) &"<br>")
    	response.Write(c_yemek2(b-1,c-1,0) &"<br>")
    	response.Write(c_yemek2(b-1,c-1,1) &"<br>")
    	response.Write(c_yemek2(b,c,2)&"<br><br><br>")
    	next
    next
    
    %>

    dizide o dan başladığını unutmuşum ilk verdiğim kodda 1 den başlatmaya çalışmışım ama 0 dan başlatsamda sorun devam ediyor
  • 27-11-2009, 00:09:18
    #5
    cevap beklerken bende uğraşıyorum arkadaşlar ama şu uyumsuz tür olayını hala geçemedim
    hazırladığım kodun son hali aşağıda ilk koddaki hatam dizinin boyutunu her defasında değiştirmeye çalışmam diye düşündüm
    o hatayı düzeltmeme rağmen sorun ortadan kalkmış değil
    neyse arkadaşlar sorunumun çözümü için yardımlarınıza ihtiyacım var sürekli online ım bekliyorum



    <%
    yemek = array ("yemek 1","yemek 2","yemek 3","yemek 4","yemek 5","yemek 6","yemek 7","yemek 8","yemek 9","yemek 10")
    
    s=0
    randomize()
    sayi=cint((Rnd*16)+5)
    
    for i=0 to 9
    	s=s+10
    		if i=0 then
    		s=1
    		end if
    			
    				for a=0 to sayi
    					randomize()
    					seviye=cint((Rnd*11)+s)
    					randomize()
    					enerji=cint((Rnd*21)+10)
    					randomize()
    					fiyat=cint((Rnd*16)+5)
    					randomize()
    					cesit=cint(Rnd*10)
    				
    					c_yemek(i,a)=cint(cesit)
    					c_yemek2(i,a,0)=cint(seviye)
    					c_yemek2(i,a,1)=cint(seviye)*cint(enerji)
    					c_yemek2(i,a,2)=cint(seviye)*cint(enerji)*cint(fiyat)/10
    					
    				next
    			
    			if i=0 then
    			s=0
    			end if
    next
    
    for b=0 to 9
    	response.Write(b &". serinin yemekleri")
    	for c=0 to sayi
    	response.Write(yemek(c_yemek(b,c)) &"<br>")
    	response.Write(c_yemek2(b,c,0) &"<br>")
    	response.Write(c_yemek2(b,c,1) &"<br>")
    	response.Write(c_yemek2(b,c,2)&"<br><br><br>")
    	next
    next
    
    %>
  • 27-11-2009, 04:40:38
    #6
    Edit : arkadaşlar dizilerin tanımlanmak zorunda olduğunu unutmuşum kafayı yiyecektim sorunu halletim sanırım koddaki son düzenlemeleri yaptıktan sonra burda da yayınlayacağım belki işine yarayacak olan arkadaşlar olabilir.



    Son olarak şu şekilde bir kod hazırladım sorunsuz çalışıyor
    şuanda tam olarak kullanacağım şekil bu değil ama ufacık birşeyi unutmak böyle uğraştırıyor adamı ne yaparsın

    <%
    yemek = array ("yemek 1","yemek 2","yemek 3","yemek 4","yemek 5","yemek 6","yemek 7","yemek 8","yemek 9","yemek 10")
    
    dim c_yemek(9,10)
    dim c_yemek2(9,10,2)
    s=0
    for i=0 to 9
    	s=s+10
    		if i=0 then
    		s=1
    		end if
    			
    				for a=0 to 10
    					randomize()
    					seviye=int((Rnd*11)+s)
    					enerji=int((Rnd*21)+10)
    					fiyat=int((Rnd*16)+5)
    					cesit=int(Rnd*10)
    					
    					c_yemek(i,a)=cesit
    					c_yemek2(i,a,0)=seviye
    					c_yemek2(i,a,1)=seviye*enerji
    					c_yemek2(i,a,2)=int(seviye*enerji*fiyat/10)
    					
    				next
    			
    			if i=0 then
    			s=0
    			end if
    next
    
    for b=0 to 9
    	response.Write(b &". serinin yemekleri <br>")
    	for c=0 to 10
    	response.Write(yemek(c_yemek(b,c)) &"<br>")
    	response.Write("Seviyesi ="&c_yemek2(b,c,0) &"<br>")
    	response.Write("Enerjisi ="&c_yemek2(b,c,1) &"<br>")
    	response.Write("Fiyatı ="&c_yemek2(b,c,2)&"<br><br>")
    	next
    next
    
    %>
  • 27-11-2009, 20:56:16
    #7
    Eposta Aktivasyonu Gerekmekte
    çözdüğüne sevindim hocam sanırım oyun scripti hazırlıyorsun. kolay gelsin.
  • 28-11-2009, 21:02:50
    #8
    Üyeliği durduruldu
    dizi halinde değişkene atamak yerine direkman for döngüsü içerisindeyken verileri response.write ettirsen daha kolay olmazmıydı ?