Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ArtanAzalanEskenarYildiz
{
class Program
{
static void Main(string[] args)
{
int sayac=0,digerSayac=0,yildizSayisi,azalanYildiz;
int ortaSatir,ikiliArtan=1;
Console.Write("1-19 arası bir sayı giriniz=");
byte sayi = byte.Parse(Console.ReadLine());
Console.WriteLine("\n");
ortaSatir = sayi % 2;
//ortaki satiri bulduk
if (ortaSatir == 0)
{
ortaSatir = sayi / 2;
yildizSayisi = sayi - 3; //Aşağı doğru yazdırırken kullanıcaz çiftlerde
}
else
{
ortaSatir = (sayi / 2) + 1;
//ortadaki satir sonu
yildizSayisi = sayi - 2;//Yine aşağıda kullanacağımız teklerde
}
do
{
sayac++;
do
{
digerSayac++;
Console.Write(" ");
} while (digerSayac <= (ortaSatir - sayac));
digerSayac = 0;
for (int i = 0; i < ikiliArtan; i++) //2 artar şekilde yazdırmaya başlayalım
{
Console.Write("*");
}
Console.WriteLine("\n");
ikiliArtan += 2;
} while (sayac < ortaSatir);
//değişkenleri tekrar kullanmak için sıfırlıyoruz
sayac = 0;
digerSayac = 1;
ikiliArtan = 0;
do
{
digerSayac++;
do
{
//Önce azalan boşlukları yapıyoruz
Console.Write(" ");
sayac++;
} while (sayac < digerSayac);
sayac = 0;
do
{
sayac++;
//Burada orta kısmın bir alt satırına iniyoruz
azalanYildiz = yildizSayisi - sayac;
Console.Write("*");
} while (azalanYildiz > 0);
sayac = 0;
//satırlara yıldız basmak için 2 azaltıyoruz.
yildizSayisi -= 2;
Console.WriteLine("\n");
} while (digerSayac < ortaSatir);
}
}
}
Kod:
*
***
*****
*******
*********
*******
*****
***
*
Az önce yazdığım bir kod parçası,sorunsuz çalışmaktadır.C# yeni başlamak isteyenler için yararlı olabilir.Kodların arasına açıklama kodları ekledim.Ayrıca anlamadığınız yer olursa sorabilirsiniz.
Program girilen satır uzunluğu kadar yukarıda eşkenar dörgen şeklini basmaktadır.