Sol taraftaki üçgeni yaptığınızı varsayıyorum. Sağ taraftaki üçgen için bu sefer tabandan yukarıya doğru başlayabilirsiniz.
Döngüye sokup tepe noktasını sabit bir değer ile belirleyip (gösterdiğiniz görsele göre tepe değeri 1 olabilir) ona geldiğinde yıldız koyma işlemini durdurabilirsiniz.
Bir diğer yöntem ise satır satır yapacaksanız sol ve sağ tarafta bulunan üçgenlerin tepe noktaları arasındaki mesafe, verilen değerin 2 katının 2 eksiği şeklinde oluyor. Her iki üçgeninde tepe noktalarını, tabandaki işaretlerin toplamından çıkardığınızda aradaki mesafeyi de satırlarda bir döngüye sokarak sıralı bir döngüye sokabilirsiniz.
Örnek şu şekilde;
Girilen değer 5 olduğu zaman tepe noktaları arasındaki mesafe (2 x 5 - 2) 8 oluyor ve bu sayı her satırda 2'nin katlarınca azalıyor. İlk adımda yukarıda çizdiğim kırmızı çizgiye düşebilecek noktaların toplamını bulduk. Sonrasında ise mavi çizgiye düşen toplam nokta sayısı ise (2 x 4 - 2) 6 oluyor.
Fonksiyon ise (2 x #satırnumarasi - 2) şeklinde oluyor. Örneğin 3. satırdaki kahverengi çizgili yere düşen nokta sayısını bulmak için (2 x 3 - 2) 4 yapmalısınız. Satır numaralarını alttan sayman gerekiyor, çünkü tepe noktası sabit ama girilen değer pozitif tam sayılardan başlatıp sonsuza kadar gidebilir. Yani satır numarası yukarıdan aşağı geldikçe azalacaktır.
Şimdi bu ne işe yaradı diyeceksin. :)
Satır satır noktalar yazdırdığını düşünelim.
Birinci satırda bir nokta yazdın, sonrasında ise yukarıda anlattığım denkleme göre çıkan sayı kadar boşluk koydun ve bir nokta daha yazdırdın. (Bu işlem ile her iki üçgenin tepe noktasını oluşturmuş oldun.)
İkinci satırda da iki nokta yazdın, sonrasında ise yine verdiğim denkleme göre çıkan sayı kadar boşluk koyup iki tane daha nokta koydun.
En altın birinci satır olduğunu varsayıyorum demiştim. İki üçgeninde tabanları arasında boşluk olmadığı için denklemi uyguladığında (2 x 1 - 2) 0 boşluk koyman gerektiğini anlayabilirsin. Yani 1. satıra geldiğinde yada fonksiyon 0 boşluk koyman gerektiğini söylediğinde döngüyü durdurup sonuçları sunabilirsin.
Z. satırda A kadar nokta yazdırıp (2 x Z - 2) kadar boşluk koyup A kadar nokta yazdırıp bir alt satıra geçeceksin. 1. satıra geldiğinde (aynı zamanda verdiğim denklemle oluşturduğun fonksiyonun cevabı 0 boşluk koyman gerektiğini söyleyene kadar) döngüyü çalıştırdığında olay tamamdır.
(Yukarıdaki genel ifadedeki A yukarıdan aşağıya doğru sayılan satır numarasıdır. Z ise aşağıdan yukarı olanı, bu kısım önemli.)
Bu işlemi verilen değere kadar devam ettirirsen sıkıntısız şekilde simetrik görüntülü üçgen üretebilirsin. :)
Sadece belirli şekilde algoritmayı açıklamak istedim, madem ödev bunu dökmek ise size kalsın. :)