Ana Sayfa

Bilgisayar Eğitim CD

Bilgisayar Kitapları

 
 
Adım Adım Web Eğitim Seti Adobe Flash Eğitim Seti


C ve C++ Dersleri Geri Dön

C++ Eğitim Seti

C++ Dersleri

Önsöz:


"Bir düşünceyi anlatmak için neden sayfalarca roman yazayım ?"(L.Borges)


Araçlar:
* MS Visual C++ v.6 (MFC kullanılmayacaktır)
Programlamaya Giriş:
"Program yazamak" için öncelikle "Program"'ı anlamak gerekir. Hepinizin programın ne olduğunu bildiğinizi biliyorum. Ancak "bilmek" ve "kavramak" farklı şeylerdir.
Sorulması gereken soru şu:"Bir program nasıl çalışır ?". Bunun cevabını vermek için önce ünlü "çift tıklama" olayını açıklayalım.
Bir program çalıştırılmak istendiğinde ms win. Çok Kabaca şu olayları gerçekleştirir.
1. Hedef dosyayı oku , dosyada belirtilen miktar kadar bir bellek bölümü ayır ve içine programın kodlarını (dosyanın tamamını değil!) kopyala.
2. Programın ihtiyaç duyduğu ek dosyları(ör: win. Kitaplıkları(kernel32.dll,user32dll vb...)) yine aynı bölgeye kopyala
3. Yine dosyada belirlen program başlama noktasından itibaren programı başlat.
Burdan çıkartacağınız ders şu: siz bir *.exe dosyasını herhangi bir editör ile açtığınızda karşınıza çıkan şey program kodları değil, program bilgileri+program kodları
Artık çalışan bir programımız var....
Fakat prog."Bir Mesaj kutusu göstermek yada dosya işlemi yapmak isterse ne yapar ?"


Kritik Nokta:
Prog. Windows'un konu ile ilgili fonksiyonunu(ki genel adı WinAPI'dir.) çağırır.(Yani siz ister VisualBasic kullanın, ister Delphi kullanın en son derlediğiniz program mutkla windows'un fonksiyonlarını kullanacaktır.)
Not: WinAPI'lerle ilgili detaylı bilgi ve kullanımlarının örneklerini http://msdn.microsoft.com/library/ adresinde bulabilirsiniz.


C Ailesine Giriş:
C soyunun amacı program yazarken sık sık kullanılan rutinlerden kurtulmaktır. Peki onu diğer rakiplerinden ayıran özellik nedir. C++ komut bazı değil hafıza yönetimini bazlı bir dildir.(Ör: VisualBasic komut bazılıdır.) C++'da dosya açma komutu yoktur.(Özellikle bunu bazı tutorial'lerin de dosya işlemi komutları veren kişilere söylüyorum!)


Örnek:
Bir kağıda "Ali Veli Deli" yazdınız ve birine sadece "Veli" kısmını okutmak istiyorsunuz ne yaparsınız ? "5.harften itibaren kelime sonuna kadar(veya 4 harf) oku". İşte C++'ın yaptığı şey bu, sizin yüzlerce defa "5.harften itibaren kelime sonuna kadar(veya 4 harf) oku" komutu tekrarlama zorunluluğunuzu kaldırıyor. Sizin yerinize bu yönetimi o yapıyor.


Değişkenler:
C++ her ne kadar gelişmiş bir dil de olsa da daha telepatik değil. Bu yüzden sizin "Ali Veli Deli" ile ne anlatmak istediğinizi ona söylemelisiniz. Belki "Ali" gerçekten bir yazı, belki de ascii kodları bir sayının basamaklarını temsil ediyor. C++ aradaki ayrımı yapabilmek için bu referansı sizden istiyor.
Temel Değişkenler
"char"(8-bit)
bir byte(karakter=max 0-255 aralığını alabilen) büyüklüğündeki sayıyı temsil eder.
-127 ile 127 aralığını alabilir.(işaretlidir !)
"unsigned char"(8-bit)
char'ın işaretsiz(pozitif tam sayı) olanıdır(0-255 aralığını alabilir.)
"int"(veya long)(32-bit)
bir DoubleWord(dword=4 karater=0-4294967295) uzunluğundadır,işaretlidir.
-2,147,483,648 to 2,147,483,647 aralığını alabilir.
"unsigned int"(32-bit)
"unsigned char"'a bakıp tahmin edin... "unsigned" parametresi bir değişkenin önüne gelirse onu pozitif tam sayı halinde tanımlanmasına neden olur. Böyle bir değişkenin pozitif tavanı yükselir.
Ör: unsigned int'in pozitif tabanın hesaplamak isterseniz. win. hesap makinesibi açın. Bilimsel moda getirin, Bin tabanına alıp 32 tane 1 yazın ve Dec'e tabana alıp ondalık değeri görün...
"float"(!)
3.4*10^-38 ile 3.4*10^+38 arasında değer alır.
"dobule"(!)
1.7*10^-308 ile 1.7*10^+308 arasında değer alır.
"long double"(!)
3.4*10^-4932 to 1.1*10^+4932 arasında değer alır.