Verilecek Kenar Uzunluğuna Göre Kare Çizen C Programı

09/19/20202 dakikalık okuma

Merhabalar arkadaşlar,

Sizlere C programlama dilinde kullanıcıdan aldığımız kenar uzunluğuna eşdeğer olarak “*” (yıldız) karakteriyle kare çizmeyi anlatacağım.Ezbere gitmek bize hiçbir şey kazandırmaz. O yüzden bu işin mantığınıda anlatıyor olacağım. İlk olarak matris kavramını daha önceden biliyorsak anlamakta zorluk çekmeyeceğiz. Bilmeyenler için matris in ne olduğunu sadece şu görselle açıklamak bizim için yeterli olacaktır.



Şekil Ada a11 den kasıt a nın 1.satır 1.sütunda olduğunu göstermektir. Örnek olarak a23 2.satır 3.sütünda olduğunu gösterir bunu bilmek bize yeticektir.Matris kavramını açıklamamın nedeni örneğimizin bu şekilde daha iyi anlıyor olucağınızı düşündüğümden.



Şimdi ise örnek olarak;

Kullanıcının karenin kenarlarının 4 birim uzunluğunda olmasını istediğini düşünelim. Ve bizimde ekranda ona göstermek istediğimiz şey şekil B deki gibi olmalı peki ya nasıl? Bazı koşullar var elbette. Bazı yerlere yıldız bazı yerlere ise boşluk karekterinin gelmesi gerekiyor bu koşulları şimdi anlamaya çalışalım şekle biraz dikkat edersek yıldız nerelere gelmeli? Tabi bu şeklide bir matris olarak düşünelim 1.satır ve 4. Satır yani son satırımızn ek olarak 1.sütun ve 4.sütun yani son sütunumuzn komple yıldızlarla dolması gerekiyor. Evet yavaştan anladığınızı hissediyorum.

Biraz daha açarsak bazı koşullarımız oluşuyor gibi.Öyle ise ;



  • İlk satır da yıldız basılmalı
  • Son satırda yıldız basılmalı
  • İlk sütünlarda yıldız basılmalı
  • Son sutünlarda yıldız basılmalı



Aksi durumlarda ise boşluk gelmeli.şimdi bunları bilgisayarın anlayacağı dile çevirmek kaldı. Kodlarımız şu şekilde olmalı



#include<stdio.h>

int main() {

int sayi,i,j;

printf("Karenin kenar uzunluğunu giriniz:");

scanf("%d",&sayi);

for(i=1; i<=sayi; i++) // Burayı satır olarak düşünmeliyiz. {

for(j=1; j<=sayi; j++) // Burası i. satırın j. sırasındaki * yada bosluk karakteri

{

if(i==1||i==sayi || j==1||j==sayi) // Eğer ilk satırda yada son satırda ise veya ilk sutun ve son sutunda ise

printf("*"); // yıldız yaz

else //aksi halde boşluk bırak

printf(" "); // bosluk yaz

} printf("\n");

}

}

https://bylge-images.s3-eu-west-1.amazonaws.com/5a428800-e095-11ea-bb4d-45fcae9b8198.jpeginadınayazar senin desteğini bekliyor.
İçerik paylaşarak para kazanmanın kolay yolu 💰