Skip to main content

Java Programlama : Sayılardan Üçgen Çizimi

Şimdi paylasacağım kod  okullarda  yada programlama eğitimi verilen kurumlarda eğitmenler tarafından sıkça  öğrencilere sorular bir kod.  Bu işi asteriks   “*”  karakteri kullanarak yapmanızı da isteyebilirler tabiki. Ama zaten aynı şeyi yaptığımızdan bunun pekte bir önemi yok. Şimdi kod parçasının ne iş yapacağını söyleyelim.

Program kullanıcıdan bir sayi alacak.  Örneğin kullanıcı  Klavyeden 10 girdiği zaman  programın çıktısı şu şekilde olacaktır.

1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

 

Böyle bir çıktıyı nasıl alabiliriz.  Öncelikle hem yatayda hemde düşeyde işlem yapacağımızda iç içe  kullanmamız gerektiği açıktır.  Dıştaki döngümüz  ile düşey sırayı tutarken  , içteki döngü ile yatay süreyi tutacağımızı varsayalım.  Yazıyla dile getirmek biraz zor olsa da algoritmayı adım adım analiz ettiğinizde anlamanız çok daha kolay olacaktır. Bu işi yapmak  gerekli kodları paylaşalım.  Programınız Anaprogram ve UcgenCiz() isimli fonksiyondan oluşuyor. Ana programda kullanıcının girdiği sayiya göre UcgenCiz() fonksiyonu  gerekli islemleri yapiyor ve program sonlanıyor.

 

 

 
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ucgen;
 
import javax.swing.JOptionPane;
 
/**
 *
 * @author Aytac
 */
public class Ucgen {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Kullanıcıdan İnputBox ile kaca kadar olan sayılardan ücgen çizilmek istediğini alınıyor
        // VE ucgenCiz(int) isimli fonksyon cağrılıyor.
        ucgenCiz(Integer.parseInt(JOptionPane.showInputDialog("Ücgen Kaca Kadar Olan sayılardan olusacak")));
    }
 
 public static void ucgenCiz(int n)
         /** Bu fonksiyon ana programdan girilen sayıya göre (n)  bir ücgen cizecek.
          Diyelim ki kullanıcı 10 girdi çıktı aşağıdaki gibi olacaktır.. 
          * 
          * 1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 
1 2 3 4 5 6 
1 2 3 4 5 
1 2 3 4 
1 2 3 
1 2 
1 
 
          */
 
 {
     int i;
     int j;
     for(i=1; i<=n; i++)
     {
         for(j=1;j<=i; j++)
         {
             System.out.print(j + " ");
         }
          System.out.print("\n");   
     }
     // Ücgenin İlk Kısmı Cizildi Şimdi Birde Aynı İşlemi Tersten Yaptıralim
 
/** Dikkat neden N-1 Cünkü eğer N den baslatsa  idik ortadaki kısmı  bir daha yazardı  
 * misal 10 girildiğini varsayalim
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 
*  iki tane yazardı ve sekil istediğimiz biçimde olmazdı.  */
      for(i=n-1; i>=1; i--)
 
     {
         for(j=1;j<=i; j++)
         {
             System.out.print(j + " ");
         }
          System.out.print("\n");   
     }   
 }
}

Başka bir örnekte görüşmek dileğiyle hoşçakalın 🙂

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print