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

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ına değinmek istiyorum çünkü konuyu matrisler üzerinden anlatacağım merak etmeyin sadece matrislere ilgili bir iki terim kullanacağım bunları biliyor olmamız lazım.

Matris Nedir?

Matematikte matris , dikdörtgen bir sayılar tablosu veya daha genel bir açıklamayla, toplanabilir veya çarpılabilir soyut miktarlar tablosudur.Matrisler daha çok doğrusal denklemleri tanımlamak, doğrusal dönüşümlerde çarpanların takibi ve iki parametreye bağlı verilerin kaydedilmesi amacıyla kullanılırlar. Tabi bizim bunlarla hiç bir işimiz yok genel bir bilgi olsun diye ekledim .Matrisin ne olduğunu sadece şu görselle açıklamak bizim için yeterli olacaktır.

A matrisi

Görselde bir A matrisi görüyorsunuz matrisler satır ve sütunlardan oluşur. Örnek verecek olursak 1.satır 1. sütunda 1 elemanı var, 2.satır 3. sütunda da 4 elemanı var anlamanızı istediğim şey satır ve sütün kavramı zaten görsele bakınca çoktan anlamışsınızdır.

Şimdi ise programımıza geçelim.Kullanıcının karenin kenarlarının 5 birim uzunluğunda olmasını istediğini düşünelim ve bizimde ekranda ona göstermek istediğimiz şey resim:b deki gibi olmalı peki ya nasıl?

resim:b

Tabikide bu şekil bazı yazacağımız şartlar dahilinde ekrana çıkacak.Şekli matris olarak düşünelim .Bazı satırlara yıldız bazı sütunlara ise boşluk karekterinin gelmesi gerekiyor bu koşulları şimdi anlamaya çalışalım şekle biraz daha dikkat edersek yıldız nerelere gelmeli? 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.

Bu şartları net bi şekilde sıralamak gerekirse;

  • 1.satırda 1.2.3.4. ve 5. sütuna yani tüm sütunlara yıldız basılmalı
  • Son satırda tüm sütunlara yıldız basılmalı
  • İlk sütunlarda yıldız basılmalı
  • Son sutnlarda yıldız basılmalı

Şartlarımızı oluşturduk gelin bunları bir de kaynak kodumuzun içinde görelim.

#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");   
   }

Please Post Your Comments & Reviews

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