Java Eğitimleri 22-Üçgen Oluşturma

 

Merhabalar. Bugünkü sorumuz algoritma bilgilerimizi tazeleyecek bir konuyla ilgili. Karışık bir algoritması var bana göre, fakat anlayınca sürekli buna benzer sorular çözmekten kendinizi alamayacaksınız  🙂

Klavyeden bir sayı gireceğiz ve o sayı sayesinde “*” işaretiyle bir üçgen oluşturmuş olacağız.

Örneğin; klavyeden 15 sayısını girdiğimizde çıktımız şöyle olacak:

Kodlarımızı yazmaya başlamadan önce algoritmanın mantığını çözmeye çalışalım. Fark ettiyseniz * sayımız belli bir kurala göre dizilmiş.

1 – 3 – 5 – 7 – 9 gibi. Yani koda dönüştürmek isteseydik bunun kuralı 2*i+1 şeklinde olacaktı.

Diğer bir kural ise boşluklar. Boşluklar da bir kurala göre oluşmuş oluyor bu durumda.

10 – 9 – 8 – 7 – 6 gibi. Boşlukları da for döngüsü ile koda dönüştüreceğiz. Algoritma mantığını anladığımıza göre sorumuzu çözmeye başlayalım.

Java Kodlarımız:

  • İlk adımımızda Scanner komutu ile klavyeden veri girişini sağlamış oluyoruz.      

                  Scanner klavye=new Scanner( System.in);
                  System.out.println(“Bir Sayı Giriniz :”); 

                  int n=klavye. nextInt();

  • Boşluklar için iç içe 2 for döngüsünü açıyoruz.

                for(int i=0;i<=n-1; i++){           
                for(int j=0;j<=n-i; j++){               
                System.out.print(” “);

  • For döngümüz boşlukların hangi satırda olacağını belirlerken, 2. for döngümüz boşlukların satırdaki sıralarını belirliyor. Bunu bir dizi gibi düşünürsek dizi[i][j]= ” ” olarak atıyor. Yani bu adımımızda sol kısımdaki boşluğu oluşturmuş olduk.

 

  • İkinci adımımızda * işaretlerinin hangi yerlerde olması gerektiğini kodlayacağız. Buradaki kuralımızı 2*i+1 şeklinde belirlemiştik. Buna göre;     

                for(int k=1;k<=(2*i+1);k++){
                System.out.print(“*”); 

Bu şekilde kodlamamızı tamamlamış olduk. Programımızı çalıştırdığımızda çeşitli çıktılar elde edebiliyoruz.

Üçgen oluşturma algoritmasını ve Java kodlarını bu şekilde öğrenmiş olduk. Bir sonraki yazımızda görüşmek üzere, iyi çalışmalar 🙂