JAVA Dizi Örnekleri – 1 – Takım Karşılaştırması

Bu konuda Java için dizilerin nasıl oluşturulduğunu görmüştük.  Şimdi ise Java’nın Math.random() komutunu kullanarak bir dizi örneği yapalım.  Math.random() komutu rast gelen sayılar üreten bir komuttur. Ürettiği sayılar Double türündedi ve 0.0000…- 0.99999.. arasında bir değer alır.

Basit şekilde 1 haftalık fikstür karşılaştırması yapacak bir program yazalım. Temel olarak şu adımları izlememiz gerekecektir;

  1. İlk olarak 18 takım için 18 elemanlı takim adında bir dizi oluşturuyoruz.
  2. Math.random() komutu ile 1-18 arasında rastgele bir sayı belirliyoruz ve rs değişkenine kaydediyoruz.
  3. Tekrar Math.random() komutu ile 1-18 arasında rastgele bir sayı belirliyoruz ve rs1 değişkenine kaydediyoruz.
  4. Rastgele belirlediğimiz bu sayıları takim dizisinin indisinden çağrıyoruz.(takim[rs] – takim[rs1])
  5. Bu işlemleri 0’dan 9’a kadar gider bir for döngüsüne alarak 9 adet karşılaşma olmasını sağlıyoruz.

 

Bu şekilde aslında olması gerektiği gibi 9 karşılaştırma yapıyoruz ama bu durumda herhangi bir takım kendisiyle eşleşebilir ya da ard arda iki üç maç yapabilir. Bunun önüne geçmek için;

  1. Yukarıda 3. adımdan sonra rs ve rs1 değişkenlerinin birbirine eşit olup olmadığını kontrol eden, eşitse tekrar Math.random() komutunu çalıştıran bir do-while döngüsü yazıyoruz. Bu şekilde herhangi takımın kendisi ile eşleşmesini önleriz.
  2. Ardından elde edilen değerlerle takim dizi indislerini çağırarak karşılaştırmayı ekrana yazdırırız.
  3. Ekrana yazılan karşılaşmadaki takımların tekrar maç yapmalarını engellemek için bu takımlara “kullanıldı” string değerini atarız.
  4. 1. adımdaki do-while döngüsüne “veya – ||” operatörü ekleyerek, “kullanıldı” değerine sahip olan takımlar tekrar Math.random() sonucu gelirse o takımları eşleştirmek yerine random komutunu başka takım gelene kadar çalıştırırız. Böylece hiç bir takım 2. defa karşılaşma yapamaz.

Örnek kodlar aşağıdaki gibidir;

  1. package odev;
  2. import java.util.Arrays;
  3. public class takimlar {
  4. /**
  5. * @author ilkerguven - ilkerguven.com
  6. */
  7. public static void main(String[] args) {
  8. int rs,rs1,sayac=1;
  9. String takim[]=new String[18];
  10. takim[0]="Fenerbahçe";
  11. takim[1]="Galatasaray";
  12. takim[2]="Beşiktaş";
  13. takim[3]="Sivasspor";
  14. takim[4]="Kasımpaşa";
  15. takim[5]="Trabzonspor";
  16. takim[6]="KDÇ Karabük";
  17. takim[7]="Eskişehirspor";
  18. takim[8]="Gençlerbirliği";
  19. takim[9]="Akhisar Bld.";
  20. takim[10]="Gaziantepspor";
  21. takim[11]="Bursaspor";
  22. takim[12]="Torku Konya";
  23. takim[13]="Ç. Rizespor";
  24. takim[14]="Elazığspor";
  25. takim[15]="MP Antalya";
  26. takim[16]="K Erciyesspor";
  27. takim[17]="Kayserispor";
  28. for (int i=0;i<9;i++){
  29. do{
  30. rs=(int)(Math.random()*18);
  31. rs1=(int)(Math.random()*18);
  32. }while(rs==rs1 || takim[rs].equals("kullanıldı") || takim[rs1].equals("kullanıldı"));
  33. System.out.println(sayac+". Maç " +takim[rs]+" tvs t"+takim[rs1]);
  34. sayac++;
  35. takim[rs]= "kullanıldı";
  36. takim[rs1]= "kullanıldı";
  37. }
  38. }
  39. }

Posted in JAVA and tagged , , , , , , , , , , , , , , , , , .

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Güvenlik Sorusu *

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>