• 28-05-2022, 10:55:36
    #1
    Merhaba dostlar,
    yaşım 33 yazılıma yeni başladım ve başlıktan anlaşılacağı üzere C# öğreniyorum.
    Sorunum şu ki benzersiz sayılar üretme uygulaması yapıyordum kodlarım aşağıdaki gibidir. Sayılarımı üretiyordum fakat farkettim ki arada benzer sayılar geliyor diziyi düzenlemek isterken kod bozuldu bütün sayıları aynı veriyor şuan. Hatayı nerede yapmış olabilirim çok oynadım kodlarla kafam durdu.

    static void Main(string[] args)
            {
                Console.Title = "Rastgele Sayılar";
                Console.BackgroundColor = ConsoleColor.Blue;
                RastgeleSayi();
                Console.ReadLine();
            }
    
            public static void RastgeleSayi()
            {
                while (true)
                {
                    try
                    {
    
                        Console.WriteLine("Kaç Adet Sayı Yazmak İstiyorsun:");
                        int adet = int.Parse(Console.ReadLine());
                        Console.WriteLine("Minimum Değer Girin: ");
                        int minDeger = int.Parse(Console.ReadLine());
                        Console.WriteLine("Maximum Değer Girin: ");
                        int maxDeger = int.Parse(Console.ReadLine());
                        int[] rastgele = new int[adet];
                        for (int i = 0; i < adet; i++)
                        {
                            Random sayi = new Random();
                            rastgele[i] = sayi.Next(minDeger, maxDeger);
                        }
    
                        Array.Sort(rastgele);//Numaraları sıralama metodumuz
    
    
                        for (int i = 0; i < adet; i++)
                        {
                            Console.Write(rastgele.[i] + " ");
                            System.Threading.Thread.Sleep(500);
                        }
    
                    }
    
                    catch (System.FormatException)
                    {
                        Console.WriteLine("String Olarak Girildi. HATA...!");
    
                    }
                    catch (System.OverflowException)
                    {
                        Console.WriteLine("Değer bir Int32 için çok büyük ya da çok küçüktü.");
    
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("Bilinmeyen Hata Oluştu..");
    
                    }
                    break;
                }
    
            }
  • 28-05-2022, 10:59:51
    #2
    satır 34 rastgele.[i] değil rastgele[i] olması gerek
  • 28-05-2022, 11:00:36
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Console.Write(rastgele.[i] + " "); kısmında . yı silin
  • 28-05-2022, 11:02:20
    #4
    KodLock01 adlı üyeden alıntı: mesajı görüntüle
    satır 34 rastgele.[i] değil rastgele[i] olması gerek
    petri adlı üyeden alıntı: mesajı görüntüle
    Console.Write(rastgele.[i] + " "); kısmında . yı silin
    Onu sildim ama üretilen sayılar hep aynı esas problemim bu
  • 28-05-2022, 11:04:22
    #5
    SametAkkaya adlı üyeden alıntı: mesajı görüntüle
    Onu sildim ama üretilen sayılar hep aynı esas problemim bu
    sayılar aynı gelmiyor sadece siz sanırım 5000 tane sayı üretmeye çalıştığınızda aralarında tekrar edenler oluyor bunu benzersiz yapmanız için öncelikle ürettiğiniz sayıları bir şekilde tutup yada üretilecek olan sayıyı daha önce üretilenler ile kıyaslayarak mevcut olması halinde yazdırmamasını sağlamanız gerek .
  • 28-05-2022, 11:07:34
    #6
    KodLock01 adlı üyeden alıntı: mesajı görüntüle
    sayılar aynı gelmiyor sadece siz sanırım 5000 tane sayı üretmeye çalıştığınızda aralarında tekrar edenler oluyor bunu benzersiz yapmanız için öncelikle ürettiğiniz sayıları bir şekilde tutup yada üretilecek olan sayıyı daha önce üretilenler ile kıyaslayarak mevcut olması halinde yazdırmamasını sağlamanız gerek .
    Hocam diziye çekip eşletirme yapmaya çalışıyordum baktım sürekli aynısını veriyor. Laptop 15 yıllık dedim heralde çerezler gibi takılı kaldı online denedim orada da aynı 1 saat önce çalışıyordu geriye ala ala yaptığım değişikler de gitti

    Edit:
    Random sayi = new Random();
    satırını for un üstüne alınca sorun düzeldi ama 10 adet ürettiğimde mesela 2 defa 68 yazıyor bazen
  • 28-05-2022, 11:30:37
    #8
    SametAkkaya adlı üyeden alıntı: mesajı görüntüle

    Edit:
    Random sayi = new Random();
    satırını for un üstüne alınca sorun düzeldi ama 10 adet ürettiğimde mesela 2 defa 68 yazıyor bazen
    Bunun için her sayı üretildiğinde Arrayde olup olmadığını da kontrol etmeniz lazım. Alternatif olarak array.Distinct() fonksiyonu ile yazdırma işleminden önce duplicate değerleri silebilirsiniz
  • 28-05-2022, 11:48:47
    #9
    darness adlı üyeden alıntı: mesajı görüntüle
    petri adlı üyeden alıntı: mesajı görüntüle
    Bunun için her sayı üretildiğinde Arrayde olup olmadığını da kontrol etmeniz lazım. Alternatif olarak array.Distinct() fonksiyonu ile yazdırma işleminden önce duplicate değerleri silebilirsiniz
    @darness; hocamın editlediği kısım çalıştı teşekkür ediyorum
    @petri; hocam foreach kullanıp düzenlemiş projeyi tekrar bozmamak için kullanamadım ama teşekkür ediyorum
    Sorun düzeldi şimdi tekrar üzerinde düzenlemeler yapmam lazım çünkü üretilecek sayı adedini 10 yapıp maks ve min değer aralığını dar seçersem hata veriyor