C # Ev Yapımı

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


İisaa

Üyecik
Katılım
8 Şub 2017
Mesajlar
7
Puanları
1
Konum
Gölbaşı
Hızlı Resim - Hızlı ve Kolay Resim Paylaşımı - resim yükle - resim paylaş
Şekilde de görüldüğü gibi evin genişliği 25 karakterdir. Evin yüksekliği, genişliğinin yarısı kadardır. (25/2 = 12) Evin bir de çatısı vardır. Çatının yüksekliği, evin yüksekliğinin yarısının 1 fazlasıdır. (12/2+1 = 7) Çatının sol tarafı “/” karakteri ile sağ tarafı “\” karakteri ile çizilmelidir. Çatının merkezi ise “+” karakteri ile çizilmelidir.
Evin kapısının genişliği, çatının yüksekliği ile aynıdır. (7 karakter) Kapının yüksekliği ise kapı genişliğinin yarısının bir fazlasıdır. (7/2+1 =4) Kapı evin taban kısmının tam ortasında yer almaktadır. Kapı kısmının ortası “*” karakteri ile ve evin geri kalanı “0” karakteri ile doldurulmalıdır.
bu kosula uygun sekılde sadece kapı yapamadım kapıyı nasıl yapacagım hakkında fıkır verebılecek var mı?
 

chnkyn

Üyecik
Katılım
11 Ocak 2018
Mesajlar
46
Puanları
8
Konum
Diyarbakır
kapının genişliği , yüksekliği değerlerini değişkenlere attığını varsayarsak
genişlik=7
yükseklik=4
tabanın genişliği (kapı + sağ sıfırlar + sol sıfırlar) tabangenislik dersek (resimde 25 görünüyor)
yukarıdan bir döngü ( 0 dan 4 e kadar) =yukseklik için
soldan sağa bir döngü ( 0 dan 25 e kadar)=taban genisliği için


solsıfırlar=9 adet =(tabangenisligi(25) / 2 ) - kapıgenisligi(7)/2 + 1 formülü ile bulunur.
* işaretinin sol ve sağında taban genişliğinin yarısı kadar eleman var(kendisini sayma ve tek sayı olacağından üste yuvarlama yapmaz alta yuvarlama yapar yani 25/2=12 olur)

kapıbosluk=3=(tabangenisligi/2) - solsıfırlar şeklinde bulunur.

for(int i=0;i<yukseklik;i++)
{
for(int j=0 ; j < tabangenisligi ; j++)
{

if( j < solsıfırlar || j>= (tabangenisligi/2)+kapıbosluk ; j++)
{
-- burada sağ ve sol sıfırlar yazılır.
-- yüklediğin resim için uyarlarsak j < 9 veya j > 25/2 +3 yani j>15 olduğunda sıfır yaz
console.write("0");
}
if( j>= solsıfırlar && j =<tabangenisligi - solsıfırlar)
{
-- kapı için olan kısmı burada ortadaki boşluk ve yıldız dahil.
-- j > 9 ve j =< 25-9 yani 16
--bu döngü içinde yıldız ise kontrolü yapacağız.

if( j== tabangenisligi/2+1) yani 13 ise yıldız demek
{
console.write("*");
break;
-- burada break kullandık çünkü 9-16 aralığında kapı var.bu aralık için hep boşluk yazdırıyoruz.burada eğer 13 elemanda isek j nin bu döngüsünü bitir diğerine git diyoruz.yani alttaki console.write(" "); kısmını okuma diyoruz.aksi halde 1 boşluk fazla yazılmış olur.
}
console.write(" ");
}
}
}

algoritmayı test etmedim.
 

İisaa

Üyecik
Katılım
8 Şub 2017
Mesajlar
7
Puanları
1
Konum
Gölbaşı
Tamadır kardesım soruyu dun gece cozdum ben yınede sagolasın tesekkurler ılgı ve alakan ıcın
 
Üst
stat counter