20 Şubat 2017 Pazartesi

C++ Yeni Örnekler

1-İsmini ve yaşını ekrana yazdıran program (C++)









2-KDV'yi 0 18 sabit olarak tanımladıktan sonra 500 TL için ödenecek 
KDV miktarı hesaplama(c++) 




3- Cout komutunu yaz olacak şekilde değiştirme 




4 - #define kullanarak iki sayıdan büyük olanı ekrana yazan program 




5) 1 -10 arası döngüyü #define kullanarak kısaltma





19 Şubat 2017 Pazar

CLASS DEFINITON

Bir programda sınıf(class) yapmak istiyorsak aşağıdaki gibi bir yapıda olmak zorundadır.

class name
 {
   public
        >> constructor(s)
        >> destructo
        >> function members 
        >> data members 
   protected
        >> function members
        >> data members 
   private 
        >> function members
        >> data members
 }



 PUBLİC


 Her yerden erişime açıktır.Fonksiyon yada değişkenler dışarıdan değer alabilirler.

Cunstructor(s):(Yapılandırıcı veya kurucu olarak adlandırılır) fonksiyon,kendi sınıfı icerisindeki(genelde private olan uyeler) uyeleri veya olusturdugu nesnenin ilk cikis sahnesini olusturan fonksiyonlardir.Nesneler,genelde yaratılırken ilk deger atamalarını kendi kurucu fonksiyonlari sayesinde yaparlar.Boyle bir kural sart degildir,ancak nesne yönelimli programlama dilleri(object oriented programming) uzerinde kod yazan programcılar genelde bu yaklaşım ile sınıflarını tasarlarlar.Bakıldıgı zaman programın optimizasyonu acısından da constructor fonksiyonları cok yararlıdır.

Destructors: (Yıkıcı , Yok edici) olarak adlandırılan fonksiyonlar ise,constructor fonksiyonunun yaptıgı işin tersini yaparlar,yani gorevi biten nesneyi yok ederler.Bir sınıfın(class) uyesi olan bir degisken(orn:string tipli) gorevini noktaladigi durumda ~destructor() fonksiyonu otomatik cagrilarak,uzerinde calistigi nesneyi devre dışı bırakır.C++ programlama dili icerisinde destructor'lar bulunurken,java dilinde bu fonksiyonlar kaldırılmıştır.Nedeni ise,programlama zafiyeti acısından eger iyi tasarlanmazsa,bu fonksiyonlar programa ciddi zararlar verebilirler.
Destructor() fonksiyonları olmasada,constructor() fonksiyonlari aşırı yuklenebilir.Bu durumu fonksiyon parametrelerini degistirerek uygulayabilirsiniz.Ancak bu fonksiyonlarin donus tipi belirtilmemektedir. 
-C++ programlama dilinde bu sistemlerin initalize edilmesi asagidaki gibi tasarlanır:
 
class class_name { // Bir class
 
class_name(); // Bir constructor
class_name(int,float); // Aşırı yuklenmiş Bir constructor
~class_name(); // Bir destructor
};

Function members: Bir nesne dahili olarak saklanan ve o nesneye özgü işlevler içerebilir. 
Bu tür her bir işlev , sınıfta bir prototip olarak uygun bir deklarasyona ihtiyaç duyar.
İşlev üyeleri sıradan işlev olabilir, ancak aşırı yüklenebilir , 
varsayılan parametre değerlerine sahip olabilirler veya sanal olabilirler.


PRİVATE 

Private üyelere o sınıf dışından herhangi bir şekilde erişilemez ve bu üyeler kalıtım yoluyla aktarılmaz.. Private olarak tanımlanan değişken ve fonksiyonlar sadece o sınıfın kendi metotları tarafından kullanılabilir. Yani işin özü o metod veya değişken sadece o sınıfa özel olur.
Bir değişkeni private olarak tanımladığınızda ve bu değişkenin başka bir sınıf tarafından kullanılması gerektiğinde bu değişkeni döndüren bir public fonksiyon yazarak işlemi gerçekleştirebilirsiniz.


PROTECTED

Protected aslında private'ye benzer. Protected özelliği atanan bir değişken veya metot, sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişilebilir.. Yani bir sınıf extend ettiği sınıfın protected üyelerine erişebilir ama private üyelerine erişemez.


18 Şubat 2017 Cumartesi

IDE NEDİR? C++ İÇİN KULLANILAN IDE'LER

IDE (Integrated Development Environment), yazılımcının hızlı ve rahat bir şekilde program geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte bu sürecin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür. Tümleşik geliştirme ortamlarında olması gerekli en temel özellikleri aşağıdaki gibidir:
  • Programlama diline göre sözdizimi renklendirmesi yapabilen bir kod yazım editörü.
  • Kod dosyalarının hiyerarşik olarak görülebilmesi için hazırlanmış gerçek zamanlı bir dizelge.
  • Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı.
  • Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları.
En popüler IDE’lerden birkaç tanesine örnek verelim :
Eclipse, Microsoft Visual Studio, Code::Blocks, Dev-C++, Anjuta, KDevelop, NetBeans…
COMPİLER NEDİR?

Basitçe bir dilde yazılmış olan kodu (kaynak kodu yada source code) istenilen başka bir kod haline dönüştüren programdır. Genelde üretilen bu kod ortama göre çalıştırılabilir kod (executable code) olarak üretilmektedir. Ancak bir derleyicinin daha doğru tanımı bir dildeki kodu başka dile çeviren program olarak yapılabilir. Örneğin C dilinde yazılan bir programı PASCAL diline çeviren programlara derleyici adı verilebilir. Derleyicinin diğer bir tanımı ise daha üst seviye bir dilden daha alt seviyeli bir dile tercüme olarak kabul edilebilir. Buna göre örneğin C dilinden Assembly veya makine dili gibi daha alt dillere tercüme ile derleyici kavramı daha da sınırlandırılmış olarak kabul edilebilir. Derleyiciler günümüzde daha çok bir dilde yazılmış koddan, işletim sistemi ve donanım bağımlı kodların üretilmesinde kulllanılmaktadırlar.


DEBUGGER NEDİR? NE İŞE YARAR?

Bilgisayar programcıları arasında oldukça sık kullanılan terimlerdir. Tam karşılıkları böcek ve böcekten arındırmadır. Bir programın umulmadık noktalarında hatalar varsa ve program zaman zaman yanlış çalışıyorsa, o programda BUG (Böcek) bulunduğuna ilişkin cümleler kullanılır. Bu hataların bulunarak düzeltilmesi sürecine DEBUG adı verilir. Bu deyimin bilgisayar terminolojisine girmesinin hikayesiyse oldukça ilginçtir.
MARK II elektromekanik bilgisayarı için 1950 li yıllarda program geliştiren Grace Hopper isimli ünlü kadın programcı, hatalı çalışan programındaki problemi bir türlü bulamamaktaydı. Uzun aramalar sonucunda, bilgisayarın röleleri arasında sıkışmış kalmış bir böcek ölüsünün bütün sorunların kaynağı olduğu anlaşılmıştı.
Buradan da anlaşılacağı gibi Debugger hata ayıklayıcı demektir. Derleyici programın arka planında çalışarak yazılan kodlar arasındaki hataları bulmaya çalışır.


LİNKER NEDİR?

Bir derleyici tarafından üretilmiş olan kodları bağlayarak işletim sisteminin çalıştırabileceği tek bir kod üreten programdır.
Günümüzde hızla gelişen programlama ihtiyaçları sonucunda programlamada modüler yaklaşıma geçilmiştir. Buna göre büyük bir yazılım küçük alt parçalara bölünmekte ve her parça ayrı ayrı işlenerek büyük program elde edilmektedir. Yapısal programlamanın da çıkış sebeplerinden birisi olan bu yaklaşıma göre dillerde fonksiyon desteği gelmiş ve değişik parametrelere göre aynı kodun farklı sonuçlar üretmesi sağlanmıştır. Daha sonradan gelişen nesne yönelimli programlama bu konuda bir sonraki nesil olarak kabul edilebilir. Nesne yönelimli programlamada, programlar nesnelere bölünerek farklı bir yaklaşım izlenmiştir.
Bu yaklaşımların derleyicilere yansıması da uzun sürmemiş, daha yapısal programlamanın ilk geliştiği günlerde derleyiciler de farklı kütüphaneler ve bu kütüphaneleri birleştirmeye yarayan harici programlar kullanmaya başlamışlardır.
Kodun birden fazla parçaya bölünmesi ve her parçanın ayrı ayrı üretilmesi durumunda bu parçaların birleştirilmesi ve tek bir program halinde üretilmesinden sorumlu olan programlara bağlayıcı (linker) adı verilmektedir.


GUİ (Graphical User Interface) NEDİR?

Grafiksel Kullanıcı Ara yüzü, elektronik cihazların simgeler, ikonlar ve diğer görsel grafikler yardımıyla kullanmasına yardımcı olması amacıyla geliştirilmiş tasarımlardır. GUI öncesi komut bazlı işletim sistemi kullanılan eski nesil bilgisayarlar ve elektronik cihazlarda herhangi bir işlemi gerçekleştirmek için komut satırı kullanılıyordu. Kullanıcılar bilgisayar üzerindeki her işlemi klavye üzerinden ve komutları kullanarak gerçekleştiriyordu. Daha sonra kullanıcıların daha rahat kişisel bilgisayar kullanabilmesi için 1981 yılında aralarında Alan KayDouglas Engelbart ve bir grup araştırmacının yer aldığı grup Xerox PARC' da ilk GUI' yi geliştirmiştir. Daha sonraları grafiksel kullanıcı ara yüzü fikrini Apple benimsemiş ve Lisa ismiyle çıkış yapan bilgisayarında kullanmıştır.  Bugün artık aktif olarak gelişimi devam ettirilen işletim sistemlerinin neredeyse tamamı grafiksel kullanıcı ara yüzünü kullanmaktadır.

GNU NEDİR?

GNUçekirdeği, sistem araçlarını, açıcılarını, kütüphanelerini ve son kullanıcı yazılımlarını içeren, GNU Tasarısı kapsamında geliştirilen bir işletim sistemidir. İsminin açılımı "GNU's Not Unix" (GNU Unix değildir)’dir. Bu ismi almasındaki sebep de tasarımının Unix'e benzerken kendisinin özgür yazılım olması ve herhangi bir UNIX kodunu içermemesidir.
GNU işletim sistemi planı 1983 Eylül'ünde Richard Stallman tarafından duyurulmuş, 1984 Ocak ayında işleyişe başlamıştır. 2006 itibarıyla GNU hâlâ etkin olarak gelişmektedir. GNU'nun geliştirilmesi GNU Tasarısı tarafından gerçekleştirilmektedir ve bu tasarı altında birçok GNU belgeleri ve yazılımları bulunur.
Günümüz itibarıyla hâlâ tamamlanmış bir GNU sistemi sunulmamıştır. Resmi çekirdeği GNU Hurd'dür ancak Hurd henüz bitmemiştir zira geliştirilmesi aşamasında bazı lisans sorunları yaşanmış ve yapısal değişikliğe gidilmiştir. Linux'un da devreye girmesiyle birçok GNU kullanıcısı Linux çekirdeğine geçiş yapmış böylece Linux, Hurd'ün yerini doldurmuştur. GNU resmi olarak başka yazılımları da desteklemektedir (Xorg ve TeX gibi).
Sistemin başlıca içeriği GNU Compiler Collection (GCC), GNU Binary Utilities (binutils), bash kabuğu, GNU C kütüphanesi (glibc) ve coreutils'den oluşur. Görsellik açısından X.Org'u; yazım açısından da TeX yazılımlarını kullanır. Tüm GNU yazılımları halen GNU Hurd çekirdeğiyle uyumlu değildir.
Linux çekirdeğini kullanan kullanıcılar sistemlerini genel olarak "Linux" demektedir ancak GNU Projesi "Linux" yerine "GNU/Linux" denmesini önerir. Çünkü Linux, bünyeside GNU araçlarını barındırmaktadır. Bu konudaki tartışma uzun süredir devam etmektedir.
Birçok GNU yazılımları diğer işletim sistemlerinde de kullanılmıştır (WindowsBSDSolaris ve Mac OS gibi).

GNU Genel kamu lisansı (GPL), GNU Lesser General Public License (LPGL) ve GNU Free Documentation License (GFDL) GNU tarafından yazılmıştır ancak bambaşka birçok diğer konuda da kullanılmaktadır. GNU kamu malı olarak görülmektedir ve başarisinin arkasında olan da herkese olan açıklığıdır. Her kullanıcı GNU'yu geliştirebilir.


GPL (General Public Licence - Genel Kamu Lisansı) NEDİR?

GNU Genel Kamu Lisansı (GNU GPL ya da GPL) birçok yerde kullanılan ücretsiz yazılım lisansıdır ve özgün hali Richard Stallman tarafından GNU projesi için yazılmıştır. Bu lisansın en son sürümü (GPLv3), 29 Haziran 2007'de çıkmıştır. GNU Kısıtlı Genel Kamu Lisansı yani LGPL ise GPL'in bazı yazılım kütüphaneleri için yazılmış sürümüdür. 


GPL'in genel nitelikleri 
GPL lisans anlaşması, 1983 yılında Richard Stallman tarafından geliştirilmiş, çok akıllıca detaylarla bağlayıcılığı bulunan, teşvik edici, gerek kullanıcı gerekse üretici tarafa büyük olanaklar sağlayan bir lisans türüdür. GPL'in en çok üzerinde durduğu konu yazılımların kaynak kodu ile birlikte dağıtılmasının gerekliliğidir. Üretici firma yazılımını binary olarak dağıtsa bile kaynak kodunu da herkes tarafından erişilebilir bir yere bırakmak zorundadır. Kullanıcı, bu kaynak kodu alıp inceleyebilir, üzerinde istediği değişikliği yapabilir, kendi projelerinde, yazılımlarında kodun tamamını ya da bir parçasını kullanabilir. Hatta başkasının kod parçasını alıp birkaç değişiklik yapıp, satarak maddi kazanç da elde edebilir. Ama tek bir şartla, yeni üretilen program da GPL ile lisanslanmak zorundadır. 

GPL, yazılımın ücretlendirilmesi hakkında hiçbir fikir beyan etmez. GPL yazılımları ücretsiz olmak zorunda değildir. Üretici firma ya da kuruluş, yazılımını GPL ile lisanslayıp, dağıtabilir ve karşılığında da bir ücret talep edebilir. Bu madde en baştan beri sözleşme içerisinde olmasına rağmen, GPL yazılımların çok büyük bir kısmı ücretsizdir. Genel yaklaşım yazılımdan değil, kullanıcıya sunulan kurulum, eğitim, yönetim ve ek modül yazma gibi süreçlerden para kazanılması şeklindedir. Bu özelliği ile GPL pek çok lisanstan ayrılmaktadır. 

OPEN SOURCE (Açık Kaynak Kod) NEDİR??

Açık kaynak kodlu yazılım, kaynak kodları herkese açık olan yazılımdır. Bunun anlamı, onun üzerinde herhangi bir değişiklik yaparak kendi sürümünüzü meydana getirebileceğinizdir. Normalde bir programı çalıştırdığınızda onun kaynak kodlarına erişemezsiniz. Yani uygulamanın size sunduğu işlevleri nasıl sunduğunu göremez, onun özelliklerinde herhangi bir değişiklik yapamazsınız. Bunu taşındığınız, yeni yapılmış bir ev örneğine benzetebiliriz. Evin her şeyi hazırdır, elektrik hattı, su boruları ve diğer altyapı duvarların arkasına gizlenmiştir. Örneğin elektrik hattınızda bir sorun meydana geldiğinde, hatlara erişemiyorsanız elektrikçinin gelip sorunu gidermesinden başka  yapabileceğiniz bir  şey yoktur.Kapalı kaynak kodlu yazılımlarda da durum buna benzer. Bu tür programlarda programın geliştiricisine bağlısınızdır, herhangi bir sorun gördüğünüzde onu düzeltmeniz mümkün olmaz.