Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıdan, 10 sorudan oluşan bir sınav kağıdındaki soruların sırasının rastgele değiştiren bir program yazması isteniyor. Bu sayede, B grubundaki soruların sıralarının kolayca belirlenmesi amaçlanıyor.

    Örnek

    Girdi Çıktı
    A Grubu: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B Grubu: 5, 7, 3, 1, 4, 6, 9, 10, 2, 8
    A Grubu: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B Grubu: 4, 3, 10, 8, 7, 9, 1, 2, 5, 6

    Çözüm - C#

    using System;
    using System.Collections.Generic;
    
    class Program
    {
        static void Main()
        {
            int toplamSoruSayisi = 10;
            Random rastgeleSayi = new Random();
            List<int> bGrubu = new List<int>();
    
            for (int i = 0; i < toplamSoruSayisi; i++)
            {
                // Toplam soru sayısı kadar rastgele sayı oluştur
                int olusturulanSayi = rastgeleSayi.Next(1, toplamSoruSayisi + 1);
    
                // Oluşturulan sayı dizide yoksa ekle
                if (!bGrubu.Contains(olusturulanSayi))
                    bGrubu.Add(olusturulanSayi);
                // Oluşturulan sayı dizide varsa bu turu sayma
                else
                    i--;
            }
    
            // Mevcut sonuçları yan yana yazdır
            Console.WriteLine("A - B");
            for (int i = 0; i < toplamSoruSayisi; i++)
            {
                Console.WriteLine("{0} - {1}", i + 1, bGrubu[i]);
            }
    
            Console.Read();
        }
    }
    

    Çözüm - Java

    import java.util.ArrayList;
    import java.util.Random;
    
    public class App {
        public static void main(String[] args) throws Exception 
        {
            Integer toplamSoruSayisi = 10;
            Random rastgeleSayi = new Random();
            ArrayList<Integer> bGrubu = new ArrayList<>();
    
            for (int i = 0; i < toplamSoruSayisi; i++) 
            {
                // Toplam soru sayısı kadar rastgele sayı oluştur
                int olusturulanSayi = rastgeleSayi.nextInt(toplamSoruSayisi + 1);
    
                // Oluşturulan sayı dizide yoksa ekle
                if (!bGrubu.contains(olusturulanSayi) && olusturulanSayi != 0)
                    bGrubu.add(olusturulanSayi);
                // Oluşturulan sayı dizide varsa bu turu sayma
                else
                    i--;
            }
    
            // Mevcut sonuçları yan yana yazdır
            System.out.println("A - B");
            for (int i = 0; i < toplamSoruSayisi; i++) 
            {
                System.out.println((i + 1) + " - " + bGrubu.get(i));
            }
        }
    }