Şimdi Ara

C# RANDOM SIRA (YARDIM EDİN ÖDEV)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
552
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Öncelikle Merhaba Arkadaşlar. Forumda yeniyim. Kuralları tam bilmiyorum. Konuyu yanlış yere açtıysam affola.

    Arkadaşlar şimdi benim hocam, sınıfta yer değişikliği yapacak. Bu yer değişikliği için benden yardım istedi. Bir program yapcakmışım. Rastgele birilerini sıraya oturtacakmışım. Yani;

    1/1 : Mert
    1/2 (Mert'in yanına oturacak kişi) :C# RANDOM SIRA (YARDIM EDİN ÖDEV) Kazım

    şimdi bir sıraya 2 kişi oturacağından 1/2 de bitiyor ve 2/1 den başlıyor tekrar.

    Abime sordum o bana çoklu dizileri anlattı ama pek anlamadım.

    Böyle bir sistem nasıl yapabilirim?

    [simage]https://store.donanimhaber.com/46/d2/13/46d2136846e0cbb215c23a6d8fccf116.png [/simage]







  • benzer bir örnek

    int[,] kisiler = new int[10,2];

    Random rnd = new Random();

    for(int i=0;i<10;i++)
    {
    for(int j=0;j<2;j++)
    {
    kisiler[i,j] = rnd.Next(0,10);
    }
    }


    for (int i = 0; i < 10; i++)
    {
    for (int j = 0; j < 2; j++)
    {
    listBox1.Items.Add(kisiler[i,j].ToString());
    }
    }

    rnd.next() yerine en üstte kişileri tutan bir dizi tanımla.rnd.next(0,kisidizisi.length) ile o diziden birini seç.dizi[i,j] = kisiler[secilen] şeklinde kaydedersin.daha sonra kişiler dizisinden bu elemanı silersen hallolur.başka yöntemler de var zaten dizinin genişliklerini kendimiz girdiğimizden esnek bir çözüm değil ama istenileni karşılar




  • Dağıt butonunun click olayıdır.
     

    int elemanSayisi = listBox1.Items.Count; // listedeki kişi sayısı
    int siraSayisi = elemanSayisi / 2; // eleman sayısının yarısı kadar sıra olur. tek ise ondalık alınmaz. 11 kişi ise 5.5 olur. buçuk atılır 5 kalır

    string[,] sinif = new string[siraSayisi, 2]; // sıra sayısı kadar ve her sırada 2 kişi olacak kadar bir iki boyutlu dizidir

    Random rs = new Random();
    int secim; // listeden rastgele seçilen kişinin index numarası
    int sira=0; // dağıtım yapılacak sıranın numarası
    int oturan; // dağıtım yapılan sıranın kaçıncı kişisi olduğu. 0 yada 1 olur. 0-> ilk kişi 1->ikinci kişi

    for (int i = 0; i < elemanSayisi; i++)
    {
    sira = (int)Math.Floor(i / 2.0); // eleman sayısının yarısı dağıtım yapılacak sıranın numarasıdır.
    oturan = i % 2; // sıradaki kaçıncı kişi olduğunu bulur. 0 yada 1 olur.

    secim = rs.Next(0, listBox1.Items.Count); // listeden rastgele birini seç
    sinif[sira, oturan] = listBox1.Items[secim].ToString(); // seçilen kişiyi diziye koy
    listBox1.Items.RemoveAt(secim); // seçilmiş kişiyi listeden kaldır
    }

    // dağıtım bitti. aşağıda ekrana yazdırılıyor
    // sıra kadar dön. her sırada 2 kişi için dön
    label1.Text += "\n";

    for (int i = 0; i <= sira; i++)
    {
    label1.Text += (i + 1) + ".SIRA: \n-----------\n";
    for (int j = 0; j < 2; j++)
    {
    label1.Text += (j+1)+".kişi: "+sinif[i, j]+"\n";
    }
    label1.Text += "\n";
    }





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.