
C dili kullanarak bilgisayar programlama hakkında çeşitli notların, örnek kodların ve açıklamaların bulunduğu bir döküman.
Hüseyin PEKTAŞ
Bu doküman KOÜ Elektronik ve Haberleşme Mühendisliği Bölümü’ndeki Bilgisayar ve Yazılım I-II derslerine ait notlarını içerir.
Dökümanda büyük oranda anlatım eksikliği vardır. Bu nedenle tek başına bir kaynak olarak kullanılamaz.
Ancak programlamayı öğrenmek isteyenlerin konu ve deyimleri hangi sırada takip etmeleri gerektiğini göstermesi açısından oldukça faydalıdır.
Bilgisayar, verileri saklayan, bunlar üzerinde çok hızlı işlem yapan ve istenen verileri sunan bir aygıttır.
Donanım (hardware) ve yazılım (software) diye iki bölüme ayrılır. Donanım bilgisayarın fiziksel bileşenleridir.
Yazılım ise donanımı oluşturan bileşenlerin çalışmasını ve işlevlerini yerine getirmesini sağlayan programlardır.
Girdi birimleri : Veri ve program girilmesini sağlar. Klavye, fare, kart okuyucu …
Çıktı birimleri : İstenen verilerin kullanıcıya sunulduğu ortam. Ekran, yazıcı…
Ana Bellek : Programların ve işlenen verilerin geçici olarak saklandığı birim.
Yan bellek : Bilgilerin (veri, program) kalıcı olarak saklandığı ortamlar. Disket, disk, manyetik şerit.

Bilgisayar broşüründe olan kavramlar, bit, byte, RAM, ROM gibi başlıklar da giriş kısmında özetlenmiş.
Yani konu sadece C sözdizimi ile başlamıyor; önce bilgisayarın ne yaptığı, problem çözmenin nasıl ele alınması gerektiği ve algoritmanın neden önemli olduğu anlatılıyor.
Bu notların asıl faydası nerede?
İçerik
- 1 Bu notların asıl faydası nerede?
- 2 İçerikte hangi konular var?
- 3 Problem çözme ve algoritma kısmı boş geçilmemiş
- 4 Programlamaya giriş bölümü yeni başlayanlar için uygun
- 5 Koşullar, döngüler ve fonksiyonlar iyi bir sırayla ilerliyor
- 6 Dizilerden işaretçilere geçiş doğal bir akışta veriliyor
- 7 Dosya işlemleri tarafına kadar uzanması güzel
- 8 Bugün çalışırken küçük uyarlamalar gerekebilir
- 9 Print if Sonuç
Bu dökümanın güzel tarafı C diline gökten düşer gibi başlamaması. Önce problem çözme, sonra algoritma, sonra programlama adımları geliyor.
Yani “önce problemi anla, girdiyi ve çıktıyı belirle, algoritmayı kur, sonra kodla ve test et” mantığı özellikle korunmuş.
Programlamaya yeni giren biri için bu sıra çok değerli. Bu yüzden notlar, doğrudan ezberlik komut listesi gibi değil; daha çok algoritma ve C programlama tarafında nasıl ilerlenmesi gerektiğini gösteren bir yol haritası gibi okunabilir.
İçerikte hangi konular var?
Özet tarafı kısa görünse de döküman bununla sınırlı kalmıyor. İlerleyen sayfalarda C dilinin temel taşları parça parça işleniyor. Bu yönüyle giriş seviyesi ile orta seviye arasında güzel bir köprü kuruyor.
- Problem çözme yaklaşımı, algoritmalar ve akış mantığı
- Veri tipleri, sabitler, değişkenler ve belirleyiciler
- Matematiksel ifadeler, atama deyimi, printf ve scanf kullanımı
- Koşul deyimleri: if-else ve switch
- Döngüler: while, for ve do-while
- İşlevler, prototip mantığı ve özyineleme
- Diziler, dizi işlemleri, sıralama ve çok boyutlu diziler
- Karakter ve dizgi işlemleri
- İşaretçiler, işaretçi aritmetiği ve dinamik bellek kullanımı
- Yapılar ve kütük/dosya işlemleri
Problem çözme ve algoritma kısmı boş geçilmemiş
1 Problem Çözme bölümünde, soruna hemen dalmak yerine dikkatli ve sistematik yaklaşmak gerektiği vurgulanıyor.
Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayrılmalı. Ardından algoritmanın girdi, çıktı, açıklık, sonluluk ve etkinlik gibi temel özellikleri veriliyor.
Bu yaklaşım, yalnızca C öğrenmek için değil, genel olarak yazılım mantığını oturtmak için de faydalı.
Zaten veri yapıları ve algoritmalar tarafına geçmeden önce böyle bir temel oturması önemli oluyor.
1’den 100’e kadar sayıların toplamı, ikinci dereceden denklem kökleri, sadece toplama ile çarpma işlemi, sadece çıkarma ile bölme işlemi, sınav ortalaması ve otopark ücreti gibi örnekler; algoritma kurmanın sadece teorik bir konu olmadığını da gösteriyor.
Günlük probleme benzeyen örnekler verilmesi metni daha öğretici hale getirmiş.
Programlamaya giriş bölümü yeni başlayanlar için uygun
İlerleyen bölümde programın ne olduğu anlatılıyor ve bilgisayarla problem çözmek için izlenecek adımlar açık şekilde sıralanıyor.
Sonrasında veri tipleri, sabitler, değişkenler ve isimlendirme kuralları geliyor.
int, float, double ve char tipleri; sabit tanımı, değişken tanımı, belirleyici isimlendirme ve matematiksel ifadelerin nasıl yazılacağı tek tek açıklanmış.
printf ve scanf tarafının ayrıca ele alınması da güzel olmuş. Çünkü yeni başlayanların en çok takıldığı yerlerden biri veriyi ekrana yazdırmak ve klavyeden veri okumak oluyor.
Burada biçim belirleyiciler, örnek çıktı biçimleri ve temel kullanım mantığı da gösterilmiş. Özellikle sayısal ifade, karakter ve dizgi tarafı için ilk pratikler burada başlıyor.
Koşullar, döngüler ve fonksiyonlar iyi bir sırayla ilerliyor
if-else, switch, while, for ve do-while anlatımı klasik ama faydalı örneklerle ilerliyor.
Tek/çift sayı kontrolü, tarih girip gün adı bulma, vergi hesaplama, çarpım tablosu, faktoriyel, nüfus artışı, sayı tahmini ve seri açılımı ile sin(x) hesabı gibi örnekler var.
Bu da konuların tek satırlık kuru tanım halinde kalmasını engelliyor.
Fonksiyonlar bölümünde de sadece “fonksiyon nedir” denilip geçilmemiş. Fonksiyon prototipi, parametre yapısı, dönüş değeri, global ve local değişken mantığı işlenmiş.
Faktoriyel, küp alma, üç sayıdan en büyüğünü bulma, üs alma, parity biti ekleme, gelir vergisi yüzdesi, harfi büyüğe çevirme, Newton yöntemiyle kök bulma, okek ve asal sayı örnekleri bu kısmı güçlendiriyor.
Dizilerden işaretçilere geçiş doğal bir akışta veriliyor
Diziler bölümü de epey işe yarar. Tek boyutlu diziler, diziye değer atama, Fibonacci üretme, tersten yazdırma, diziyi fonksiyona gönderme, sıralama ve çok boyutlu dizi mantığı anlatılıyor.
Burada özellikle matris okuma, satır toplamı, transpoz, simetrik matris kontrolü ve matris çarpımı gibi örnekler güzel bir seviye oluşturuyor.
Karakter işleme tarafında char tipi, dizgi mantığı, strlen, strcmp, strcat gibi işlevler ve metin üzerinde işlem yapan örnekler var.
Cümleyi tersten yazdırma, kelimelerin ilk harflerini alma gibi örnekler; sayısal örneklerden metin tabanlı işlemlere geçiş için iyi bir ara basamak oluşturuyor.
Daha sonra işaretçiler, işaretçi aritmetiği, dizilerle ilişkisi, çift işaretçi yapısı, yapılarla birlikte kullanımı ve dinamik bellek kullanımı geliyor.
Özellikle C öğrenirken çoğu kişinin gözünü korkutan işaretçi kısmının burada birden değil, temel taşlar yerleştirildikten sonra verilmiş olması önemli. Bu açıdan konu sırası iyi düşünülmüş.
Dosya işlemleri tarafına kadar uzanması güzel
Notlar yalnızca temel sözdiziminde kalmıyor. Metin kütükleri, fprintf, fscanf, fgetc, fputc, fgets, fputs, rewind, feof ve rastgele erişimli kütük mantığı da anlatılıyor.
Yani döküman “giriş” seviyesinde başlıyor ama sonunda dosya işlemlerine kadar uzanıyor. Bu da onu kısa bir özetten biraz daha değerli hale getiriyor.
Bugün çalışırken küçük uyarlamalar gerekebilir

Bu notlar dönemin derleyici mantığıyla hazırlanmış. O yüzden bazı örneklerde eski Turbo C / DOS çizgisine yakın kullanımlar görülebiliyor.
clrscr, getch, conio.h, gets gibi ifadeler veya bazı tip boyutlarıyla ilgili varsayımlar bugün kullanılan modern derleyicilerde birebir aynı davranmayabilir.
Yani mantık hâlâ öğretici ama kodların bir kısmı bugünkü ortama taşınırken küçük düzenlemeler isteyebilir.
Bu tarafı denemek isteyenler için C programlama derleyici ortamı seçimi de işin bir parçası oluyor.
Print if Sonuç
Yazarın da belirttiği gibi bu döküman tek başına tam bir ders kitabı değil.
Ama programlamayı öğrenmek isteyen birinin konuları hangi sırayla takip etmesi gerektiğini göstermesi bakımından oldukça faydalı.
Özellikle algoritma, veri tipleri, giriş-çıkış, koşullar, döngüler, fonksiyonlar, diziler, işaretçiler ve dosya işlemleri arasında düzgün bir akış kurması güzel. Kısa kısa örneklerle ilerlediği için de not mantığı bozulmadan öğretici kalıyor.
Emeği geçen hazırlayan kişilere teşekkürler.
Yukarıda özetler verildi; notların tamamı aşağıdaki dosyada yer alıyor.
sağ olun