4 Kasım 2025 Salı
ToprakAkademi, Nedir? Nasıl Yapılır?

C/C++ Eğitimi – 1

1.6kviews

Merhaba arkadaşlar C/C++ eğitiminin ilk dersindeyiz ve bu derste temel manada nasıl bilgisayar programlanır bunları irdeleyeceğiz. Bununla başlamamın amacı ise programlamadan önce bilgisayarı tanımanın ve bilgisayar hakkında ufkumuzun geniş olmasının daha yararlı olacağını düşünmemdir. İlk olarak şundan bahsetmeliyim ki bilgisayarlar yaptığı işlerde hızlıdırlar lakin kendi planlarını kendileri yapamaz. Bunun nedeni ise bilgisayarın temel çalışma mantığındadır. Bilgisayarlar bildiğimiz üzere yazılan tüm kodları 1-0 (Binary-İkilik sayılar) şeklinde algılar ve bu sayılar ile işlem yapar. Bilgisayarda gördüğümüz her şey sayılara çevrilir ve bu sayılarda ikilik yani az önce bahsettiğim şekilde muhafaza edilir ve işlemlerde yapılırken bu sayılar üzerinde gerçekleştirilir. Her şey derken bunun içinde sayılar, ondalıklı sayılar, harf-karakterler… Örnek verirsek siz adınızı yazdığınızda her harf 0-255 arası bir sayı (ASCII Tablosu) ile 8bit yer kaplayacak şekilde muhafaza edilir.

Kısaca bir tarihine bakarsak ilk işlemci olarak karşımıza intel 4004 çıkıyor. Bu işlemci 4bitlik işlem kapasitesine sahip bir işlemciydi. Yani 4bit uzunluğundaki her sayı intel 4004 için bir veri veya komut olarak görülebilir. Bu işlemciyi 8008 ile takip ettik. Şimdilerde 64 bitlik işlemciler etrafımızda ve daha öncesinde 32bit (x86 ailesi) işlemciler vardı. Bunun anlamı şu ki 64bit işlemciler 64 bitlik her veriyi işleyebilir (64bit, 2^64 ayrı kombinasyon demektir). İşlemciler artık çok gelişti, bu gelişme de hız olarak geliştiği gibi programlaması da kolaylaştı demektir. Örnek vermek gerekirse önceden çarpma işlemi 8-9 satır ile yapılırken günümüzde 1-2 satıra indi. Tabi bu satırlar da C dilinde değil Assembly dilindedir.

Assembly dilini bahsetmek gerekirse bilgisayarların çalışmasındaki en temel dildir diyebiliriz. Nedeni ise doğrudan 1-0 makine diline çevrilebilen tek dil olmasıdır. Diğer diller ilk önce assembly diline, buradan da bilgisayarın anlayabileceği makine diline çevrileceğini unutmayalım. Assembly dili neden çok az kullanılıyor programlamada peki derseniz komutlarının basit oluşunun yanında her bir komutu tek tek yazmayı zorunlu kılması diyebiliriz. Örnek verirsek C dilinde bir döngü için 2 satır yeterli iken Assembly dilinde bunu 5-6 satırla yapmak zorundayız. Aslında ikisi de aynı koda dönüşecek assemby diline çevrildiği zaman ama daha iyi anlaşılması için örnek verecek olursak C dilinde var olan tuğlalardan bir bina elde edecekken, Assembly dilinde tuğlanın pişirilmesi ve ebatının şekli dahil her şeyi sizin yapmanız gerekiyor ve sonuç ikisinde de aynı olacaktır. Assembly dili nerede kullanılıyor derseniz C dilinin ulaşamadığı noktalarda yani bu kez de yapacağımız bina için tuğlanın çok pişirilip faklı ölçülerde kullanmak istiyorsunuz burada assembly kullanarak istediğiniz alana müdahale edebilirsiniz.

C diline biraz girecek olursak da dil çok kolaylık sağlayan ve bana göre tek eksiğinin nesnel olmaması olan bir dildir (Nesnellik konusuna daha sonra gireceğiz). Kolayca ne demek veya ne yaptırmak istediğimizi belirtebiliriz bilgisayara. Örneğin veri belirtmek için en başına verinin tipini sonra değişken adını belirtmeliyiz. Komutları birbirine karışmaması için de noktalı virgül (;) koymalıyız. Her verinin de bazı dikkat edilmesi gereken ifade biçimleri var. Bununla beraber de sınırları olabilir. Örneğin karakter olarak ifade ettiğimiz veriler toplamda 256 tanedir ve bunu biz toplama işlemi için kullanacaksak 255ten sonra 0’a döneceğini bilmemiz gerekir.

Artık hazırız başlayalım:

Veri tipleri:

1 – int: Tam sayıları ifade ederken kullanmaktayız. Bilgisayarımız böyle bir veriyi tam sayı olarak algılarken de bu sayı bazı değerler arasında olmalıdır ve bu değerler -2,147,483,648 ve 2,147,483,647 değerleridir. Örnek kod olarak da;

int a; // integer türünde bir a değişkeni hafızada ayrıldı.

Bu kodda // (çift bölü) ve sonrası açıklama satırı olarak geçer programda işleme katılmayan metinlerdir. Kodumuza dönecek olursak a adını verdiğimiz ve int türünde bir belleği RAM’de tahsis ettik. Ama bu şekilde içinde rastgele bir değer var demektir çünkü daha önceden bilgisayarımız bu bölgeyi kullanmış olabilir. Bu nedenle buraya 0 yazalım dersek;

a = 0; // a bölgesi 0 değerini aldı.

Eğer biz oluştururken doğrudan 0 yapalım derseniz ikisini birleştirip

int a = 0; // a oluşturuldu ve 0 değeri atandı.

2 – double : Virgüllü yani ondalıklı sayıları ifade etmek için kullanırız. Integerlar yetersiz kalıyor elbette tüm sayıları ifade edebilmemiz gerekiyor. Örnek verecek olursak bir sınıftaki ortalama notu bulduğumuzda bu sayı bir tam sayı olmayabilir. Bu nedenle double kullanmalıyız burada. Unutmadan belirtmeliyim ki sayılar virgül (,) yerine nokta (.) ile ondalıklı hale getiriliyor. Örnek kod olarak da;

double b = 12.7; // b sayısı oluşturulup içine 12.7 sayısı atıldı.

3 – char : Karakterler için kullanılır yani bilgisayardaki tüm harf, işaretler (.,;!”‘%&+$<>-_), rakamlar, parantezler ((),[],{}) ve hatta alfabemizde olmayan arap harfleri, yunan ve rus alfabesi karakterleri bu sayısal veriler ile saklanırlar. Bu saydıklarımın tümünün ASCII tablosu adı verilen bir tabloda sayısal karşılığı var ve bu sayılar ile bilgisayarlar bu verileri muhafaza ederler. Bu verinin 0 ve 255 arasında değişmesinin nedeni ise 8bit ile saklanmasıdır. Örnek birkaç kod olarak;

char c = 65; // c adında bir karakter oluşturuldu ve içine 65 sayısı atıldı. Böylelikle c aslında ‘A’ değerini almış oldu.

char c = ‘A’; // yukarıdaki işlemin aynısı yapıldı.

Burada dikkat edilmesi gereken bir nokta var: karakterleri doğrudan kendisi ile ifade edeceksek tek tırnak içinde bulundurmalıyız.

Şimdilik bu kadar arkadaşlar, biraz uzattım lakin konunun tam manada anlaşılması için bu bilgilerin verilmesi ve bakışımızın değiştirilmesi şarttı. Sonraki yazımda görüşmek dileğiyle 🙂

Leave a Response

ekurt
Tecrübelerini ve bildiklerini kendine saklamayan, iyi bir eğitimci olmaya çalışan Mühendis...