230 likes | 484 Views
BİL 112 Programlamaya Giriş: C. Temel Kavramlar ve C ’ye Giriş. Öğrt. Gör . Dr. Ahmet Cengizhan Dirican Enformatik. Atom Kavramı (1/2). Bir programlama dili için anlam taşıyan en küçük birime atom denir.
E N D
BİL 112 Programlamaya Giriş: C Temel Kavramlar ve C’ye Giriş Öğrt. Gör. Dr. Ahmet Cengizhan Dirican Enformatik
Atom Kavramı (1/2) Bir programlama dili için anlam taşıyan en küçük birime atom denir. Atomlar programlama dillerinin daha fazla anlamlı parçaya bölünemeyen en yalın elemanlarıdır. Derleyiciler derleme işleminin ilk aşamasında çözümleme amacıyla kaynak kodu atomlarına ayırır. Örn:
Atom Kavramı (2/2) • Atomları kendi aralarında gruplara ayırabiliriz. • Anahtar Sözcükler (Keywords, Reservedwords): Bunlar dil için belirli bir anlam taşıyan ve başka yerde (değişken olarak) kullanılması yasaklanmış sözcüklerdir. • Örn: include, int, for • Değişkenler (Identifiers, Variables): Bellekte bir adres belirten ve ismi belirlenen kurallara göre verilen atomlardır. • Örn: main, n, k, printf • Operatörler (Operators): Önceden tanımlanmış bir takım işleri yapan atomlardır. • Örn: +, -, *, /, <, >, ^ • Sabitler (Constants): Doğrudan işleme sokulan, değişken bilgi içermeyen atomlardır. • Örn: c= a + 10 ifadesinde 10 sabittir. • Karakter Katarları (Strings): İki tırnak arasında karakterlerden oluşan atomlardır. • “LÜTFEN BİR SAYI GİRİNİZ”, “%d”, “%d\n” • Ayraçlar ve Noktalama İşaretleri (Seperators, Punctuators): Ayraç ve sonlandırıcı olarak kullanılan atomlardır. • Örn: {, ; , }
Nesne Nesne İsmi Değeri Türü Faaliyet Alanı Ömrü • Bellekte yer kaplayan ve içeriklerine erişilebilen alanlara nesne denir. • Nesnelere isimleri kullanılarak erişilir. • Aşağıda verilen prgramda a, b, c, d ve e birer nesnedir. • a = b + c; • d = 100; • e[1] = 500;
İfade (Expression) • Değişken, operatör ve sabitlerin kombinasyonlarına ifade denir. • Örn: • a + b / 2 • g* b[i] – 25 • k = l + m * 9
Sol Taraf Değeri (LeftValue) • Nesne gösteren ifadeler denir. • Bir ifadenin sol taraf değeri olabilmesi için bellekte yer göstermesi, gerekir. • Aşağıdaki örnekler her zaman sol taraf değeridir. Fakat bunlardan oluşturulan ifadeler sol taraf değeri olmazlar. • Değişkenler • a, b, adet, ad, soyad, no, i, j, … • Dizi elemanları • g[i], t[j], … • Göstericiler • *p, **k,…
Sağ Taraf Değeri (RightValue) • Nesne göstermeyen ifadeler sağ taraf değerdir. • Örn: • a+ b • g[i] + 5 • Sabitler her zaman sağ taraf değerdirler. • 10, 100, 5.05 • Örn: Bu örnekte “10” ve “a + 10” sağ taraf değeriyken “a” ve “b” tek başlarına sol taraf değerleridir. • a = 10; • b = a + 10;
C’ye Merhaba “Stdio.h” isimli dosyayı derlemeye dahil et. “main” fonksiyonu. Bu programın çalışmaya başladığı ana fonksiyondur. Diğer fonksiyonlardan başka bir farkı yoktur. Ekrana yazdırma fonksiyonu. Blok (…) fonksiyon operatörüdür. “main” tanımlanmış “printf” ise çağırılmış bir fonksiyondur. Bunu “main” isimden sonra gelen “{}” blok işaretlerinden ve fonksiyon operatöründen sonrda gelen “;” işaretlerinden anlıyoruz.
Fonksiyon Tanımlanması ve Çağırılması Tanımlanmış fonksiyonlar bizim tarafımızdan yazılmış fonksiyonlardır. Fonksiyonu çağırılması onun yapısına göre parametreli veya parametresiz olarak çalıştırılması manasına gelir. Fonksiyonlar her zaman tanımlanmış fonksiyonlar içerisinde çağırılabilir.
C’de Genel Yazım Kuralları • En iyi C programı birkaç sene sonra bakıldığında hemen anlaşılabilendir. • C büyük küçük harf duyarlılığına sahiptir (casesensitive). • sum, Sum, sUm, suM, SUm, sUM, SuM ve SUM hesp farklı olarak ele alınır. • Üç çeşit boşluk karakteri vardır. • Ara tuşu (space), desimal 32 • Tab tuşu (tab), desimal 9 • Enter (carriagereturn + linefeed): carriagereturn (CR), desimal 13, linefeed LF, desimal 10 • C’de programlar atomlar arası istenildiği kadar boşluk bırakılarak veya bitişik (#’li ifadeler hariç) yazılabilir.
Kod Yazarken Dikkat Edilecek Husular İsim verme: Özellikle değişkenlere ve fonksiyonlara program uzadığında ayırt edilmelerini sağlayacak veya koda daha sonra bakıldığında kolay hatırlanacak mantıklı isimler verilmelidir. Açıklama yazma: Programın gereken yerlerine açıklayıcı notlar düşülmelidir. İndent yazma: Her yeni { ile birlikte kod bir tabiçe yazılmalıdır. Bölümlere Ayırma: kodunuzu yazarken mantıksal veya mümkünse fiziksel bölümlere ayırmak çalışmayı kolaylaştırır. Fonksiyon Kullanma: Fonksiyonlar kodu küçültür, güncellenmesini kolaylaştırır, hata kontrolü daha kolay yapılır.. Tutarlı olmak: İsimlendirmelerde, dilde, büyük küçük harf kullanmada tutarlı olunmalıdır. Belirli bir tarzda hareket edilmelidir.
Veri ve Nesne Türleri Gerçek Sayı Türler Hafızadaki herhangi bilgi veridir. Temelde iki çeşit veri vardır: Sabitler ve Nesneler Bir nesnenin türü deyince, o nesne içerisinde tutulan bilginin derleyici tarafından yorumlanış biçimi anlaşılmaktadır. Türü aynı zamanda nesnenin bellekte kapladığı alanla ilgili bize bilgi verir.
Bildirim ve Tanımlama Nesne İsmi Değeri Türü Faaliyet Alanı Ömrü Nesneler kullanılmadan önce derleyiciye tanıtılır. Kullanılmadan önce nesnelerin özellikleri hakkında derleyiciye bilgi verilmesi işlemine bildirim (declaration) denir. Nesnenin bellekte oluşturulmasını sağlayan bildirimlere tanımlama (definition) denir. Tanımlama nesneyi oluşturan bildirim işlemidir.
Bildirim İşleminin Genel biçimi • Genel biçim: <tür> nesne1 [, nesne2, nesne3,…] • Örnek bildirimler: • int a,b,c; • float kilo; • charch; • longint x, y, y; • double d1, d2;
Noktalı Virgülün İşlevi • C’de noktalı virgül “;” sonlandırıcı olarak görev yapar. • Tüm ifadeler birbirinden “;” ile ayrılır. • Örn: a = f + 1; l = a- 5; • Noktalı virgül olmazsa ifadeler birlikte anlamlandırılmaya çalışılır. • Örn: a = f + 1 l = a- 5; ???? • Diğer diller de benzer kullanımlar vardır. • BASIC’te Enter (CR/LF) sonalndırı olarak kullanılır bu sebeple her satıra bir ifade yazılabilir.
Değişken İsimlendirme Kuralları • Büyük küçük harf duyarlılığına dikkat edilmelidir. • toplam ve Toplam iki farklı değişken olarak ele alınır. • Değişken isimleri nümerik bir karakterle başlayamaz. • 1toplam yanlıştır. toplam1 olabilir. • Değişken isimleri boşluk içermez. Bunun yerine genelde “_” kullanılır. • ana_Toplam, tutar_1 • Değişken uzunlukları sistemden sisteme değişir. Ancak çoğunda ilk 32 karakter dikkate alınmaktadır.
Bildirimlerin Yanlış Yerleri (1/2) • C’de bildirim üç yerde yapılabilir. • Blokların başında • Bütün blokların dışında • Fonksiyon parametresi olarak, fonksiyon parametrelerinin içinde yada fonksiyon parantezlerinden sonra.
Bildirimlerin Yanlış Yerleri (2/2) Doğru Örnek: Yanlış Örnek: Blokların Başında: C’de bildirimler blok içerisinde yapılacaksa, blokların başında yapılır. Diğer bir deyişle bir bloğun ilk işlemi olurlar.
Sabitler (1/2) intsınırlarını aşan ve longsınırları içinde kalan her tam sayı derleyici tarafından long sabiti olarak ele alınır. intsabitler: -100, 5500, -12000 longsabitler: L, l -4000L, 10L, 2000000L floatsabitler: F, f 1.31f, -35.9F, 2.f Longdoublesabitler:L, l 2.789L, -3.96L, 20.5L Sonuna “f” getirilmemiş noktalı sayılar double sabit olarak ele alınır. • Veriler ya nesnelerin içerisinde yada doğrudan sabit biçiminde bulunurlar. • Sabitler nesne biçiminde olmayan verilerdir. • c = a + 100’de c ve a nesne iken “100” sabittir. • Sabitlerinde türleri vardır. Peki bu tür nasıl belirlenir? • C’de nesne türü kadarda sabit türü vardır.
Sabitler (2/2) • char Sabiti: İki çeşittir. • İstenilen karakterin tek tırnak (singlequote) içerisine yazılmasıyla elde edilen sabitler. Bu işlem verilen karakterin ASCII kodunu gösteren bir sayı verir. • ‘a’, ‘q’, ‘<‘, ‘$’ • Charch; ch =‘a’; Bu durumda ch’nin değeri 97’dir • Önceden tanımlanmış ters bölü karakter sabitleri: Ekrana basılmayan (nonprintable) karakterlerin yerlerini tutarlar.
“printf” Fonksiyonu (1/2) Printf fonksiyonu verilen bir verinin ekrana yazılmasını sağlar. İlk parametresi her zaman stringolmak zorundadır. Bu string’i oluşturan karakterler % işareti dışında ekrana aynen yazılırlar. % işareti diğer parametre değerlerini ekrana yazdırmak için kullanılır. String içindeki % işaretleri verilen diğer parametrelerle birebir eşlenir. Parametre değerlenin ne biçimde ekrana yazılacağı ise % karakterinden sonra gelen önceden tanımlanmış format karakterlerine bağlıdır.
“printf” Fonksiyonu (2/2) Önceden Tanımlanmış Format Karakterleri Örnek Program: Programın çıktısı: printf (“a = %d ch =%c\n”, a, ch );