| 
			 
             
            
              
			
            
              
			
                  
                  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.  
  
            
                  
                     |