2! 4! 6!
8! 10! 12!
14! 16! 18!
Üstteki gibi ekran çıktısı olacak şekilde faktoriyel hesabı yapan programı yazınız?
Öncelikle bunu yazarken dinamik hale getirebileğimizi de düşünerek ona göre komutları yazalım. Yani dizinin boyutlarını kendimiz belirleyelim. üstteki gibi 3×3 lük matris de olabilsin, 4×4 5×3 gibi matrisleride yazabilelim.
matris adında bir fonksiyon oluşturup boyutlarını parametre olarak isteyelim. Aşağıdaki komut satırındaki açıklamaları okuyarak algoritmayı anlayabilirsiniz. Anlamadığınız birşey olursa yorum yazarak sorunuzu iletebilirsiniz.
[java] private static void matris(int x, int y) {// TODO Auto-generated method stub
int dizi[][] = new int [x][y]; // istenilen boyutta dizi yaratıyoruz
int baslangic = 2; // soruda istenildiği gibi 2 faktoriyel hesabıyla başlıyoruz
int faktoriyel = 1; // faktoriyel hesabının sonucunun atıldığı değişken
int i,j, fak; // sürekli nesne oluşturmasın diye değişkenlerimizi burada tanımlıyoruz.
for (i = 0; i < x; i++) {
for (j = 0; j < y; j++) {
for (fak = 2; fak <= baslangic; fak++) { //faktoriyel hesabı
faktoriyel = faktoriyel * fak;
}
dizi[i][j] = faktoriyel; // faktoriyel sonucunu diziye atıyoruz
faktoriyel = 1; // faktoriyel hesabını baştan yapacağımız için 1 e eşitliyoruz
baslangic = baslangic + 2; // faktoriyel hesabını yapacağımız sayıyı 2 arttırarak isteneni elde ediyoruz
}
}
for (i = 0; i < y; i++) {
System.out.println(Arrays.toString(dizi[i])); // dizimizi ekrana yazdırıyoruz. İstersek iki for ile de yapabiliriz. Bu kısa yolu.
}
}
}
[/java]
Daha sonra main fonksiyonumuzu yazıyoruz.
[java] public static void main(String[] args) {matris(3, 3); // dinamik bir şekilde çıkardım.
System.out.println("—————-");
matris(4, 4);
}
[/java]
Ve aşağıdaki sonucu konsolumuzdan alıyoruz..
Gördüğünüz gibi – değerler de var. bunun sebebi int’ın boyutunu aşacak değerler olmasıdır. Ama istediğimizi elde ettiğimizi görebiliriz. Okuduğunuz için teşekkürler..