Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Dizi elemanlarından tekrar edenleri nasıl ayıklarım

Arkadaşlar;
10 luk bir diziyi random ile 10 farklı sayı ile doldurmak istiyorum.

Kodlar aşağıda;

DIM GeciciDizi(20)

e = 0
Do While e<10
	Randomize
	RASGELE = int((Rnd*ToplamSoruSayisi)+1)
	If e<>0 Then
			For ee=0 To e-1
				If RASGELE = GeciciDizi(ee) Then
					Durum = False
					exit for
				End If
			Next
	End If

	If Durum = False Then
		e = e+0
	Else
		GeciciDizi(e) = Cint(RASGELE)
		e = e + 1
	End If
Loop



Hata şu şekilde,

Response object error 'ASP 0251 : 80004005'
Response Buffer Limit Exceeded
/Hazirlik/Konu/icerik.asp, line 0
Execution of the ASP page caused the Response Buffer to exceed its configured limit.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Frauzer adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    40 cevap - 37 soru
    Tekrar derken eğer dizinin herhangi. index'e sahip elemanının içeriğinden bahsediyorsanız.Döngü sırasında içeriği bir değişkene atayın.Diğer index geldiğinde karşılaştırın Mesela

    dizi=array('ahmet','mehmet','sabri');

    for (i=0;i<=2;i++) {

    if (kontrol==dizi[i]) {

    }
    else {
    -Buraya dizi ile yaptırmak istediğiniz-
    }
    kontrol=dizi[i]
    }

    Amatörce fikir vermeye çalıştım kolay gelsin
    • nurullah2006 adlı üyenin fotoğrafı nurullah2006
      est. ne amatörü, ilginize teşekkürler
      ama yazdığınız kodlar javada mı anlamadım, bendeki kodlar asp de.

      1. sorun aldığım hata sebebini bulamadım.
      2. si ise benim yapmak istediğim sadece dizide tekrar edenleri elemek değil.
      Diziyi random ile farklı 10 sayı ile doldurmak.
      Yani sayı üretecek, eğer önceden üretilmedi ise diziye atayacak, üretidi ise tekrar yen sayı üretip tekrar kontrol edecek falan .
      teşekkürler
      12 yıl önce yazılmış
  • xandercage adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    6 cevap - 0 soru
    senin döngün işlemi bitiremiyor. sonsuz döngü.

    bu iş için iki yol var en basiti array list kullanmak.

    Dim ToplamSoruSayisi As Integer = 100
            Dim h As New ArrayList
            Dim ArrayLimiti As Integer = 10 'listeye 10 tane rastgele sayı ekler
            Randomize()
            While True
                Dim r As Integer = Int((Rnd() * ToplamSoruSayisi) + 1)
                If Not h.Contains(r) Then 'bu sayı listede yok
                    h.Add(r) 'listeye ekledik.
                End If
                If h.Count > ArrayLimiti Then
                    Exit While
                End If
            End While
    
            'ekrana basalım
            For Each i As Integer In h
                Debug.WriteLine(i.ToString)
            Next
    


    bu şekilde istediğin sonucu alabilirsin, istediğin kadar eşşiz rastgele sayı oluşturur.

    bu da senin istediğin gibi array versiyonu.

    Dim ToplamSoruSayisi As Integer = 100
            Dim r As Integer = 0
            Dim bFound As Boolean
            Dim ArrayLimiti As Integer = 10 'listeye 10 tane rastgele sayı ekler
            Dim GeciciDizi(ArrayLimiti)
            Dim DiziIndex As Integer = 0
    
            Randomize()
            Do While True
                r = Int((Rnd() * ToplamSoruSayisi) + 1)
    
                bFound = False
                For i = 0 To DiziIndex
                    If r = GeciciDizi(i) Then
                        bFound = True
                        Exit For
                    End If
                Next
                If Not bFound Then
                    GeciciDizi(DiziIndex) = r
                    DiziIndex += 1
                End If
                If DiziIndex > ArrayLimiti Then Exit Do
            Loop
    
            'ekrana basalım
            For Each i As Integer In GeciciDizi
                Debug.WriteLine(i.ToString)
            Next
    


    ikisi de aynı işi görür ama ben üsttekini öneririm.

    kolay gelsin.