29 Eylül 2017 Cuma


IDE Nedir? (Integrated Development Environment – Tümleşik Geliştirme Ortamı)


IDE bilgisayar programcılarının hızlı ve rahat bir şekilde program geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin 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 özellikler aşağıdaki gibidir:
Programlama diline göre sözdizimi renklendirmesi yapabilen kod yazım editörü.
Kod dosyalarının hiyerarşik olarak görülebilmesi amacıyla 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 bilinen tümleşik geliştirme ortamları: Eclipse, Microsoft Visual Studio, Code::Blocks, Dev-C++, Anjuta, KDevelop, NetBeans…


DEĞİŞKEN VE SABİTLER
Çok az bir program önceki bölümde verdiğimiz örnek kadar basit olabilir.  Çoğu programda çıkış değerleri üretilmeden önce bir dizi hesaplamalar yapılır. Bu hesaplamalar esnasında verilerin geçici olarak saklanacağı alanların olması gerekir. C dilinde bu saklama alanlarına değişkenler denir.
Veriler program içerisinde değişken ve sabit biçimlerinde kaydedilir. Değişkenler değerleri değiştirilebilen verilerdir. Sabitler ise değişkenlerin aksine atama yapıldıktan sonra değeri değiştirilemeyen verilerdir. Değişken ve sabitler faklı boyut ve biçimde program belleğine kaydedilirler.

1) Veri Türleri


Bütün değişkenlerin ne çeşit veri tutacağını belirten bir türünün olması gerekir. Değişkenler gömülü sistemin kısıtlı belleğine kaydedilir. Bu yüzden gömülü sistemde değişken tanımlanırken gereksiz yere bellek alanı israf edilmemesi gerekir. Bu yüzden tasarımcı değişken bildirimi esnasında değişkenin türünü tayin etme konusunda hassas davranması gerekir.
C programlama dilinde üç tane temel veri türü bulunur.
  • char
  • int
  • float
Bu veri türlerin önünde  short, long, signed ve unsigned özel niteleyicileri kullanılarak  veri türlerinin türevleri oluşturulabilir.
İşaretsiz (unsigned) ön eki kullanılarak, verilerin değerlerinin sıfır ve sıfırdan büyük olması sağlanabilir. İşaretli ve işaretsiz verilerin bellekteki uzunlukları aynıdır. Fakat işaretsiz türdeki verilerin üst limiti, işaretli türündekinin iki katına eşittir.

a) Char Türü


Char türü  “0-9” ve “A-Z” gibi yazdırılabilir yada “enter,tab,yeni satır” gibi yazdırılamaz karakterlerden oluşur.
char veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.

b) Int  türü

Tamsayıları ifade eder. int veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.

c) Float Türü


Gerçek sayıları ifade eder. double ve float olmak iki şekilde tanımlanır. float veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.

2) DEĞİŞKENLER

a) Değişken Bildirimi

Bir değişkenin programda kullanılabilmesi için program içerisinde bildiriminin yapılması gerekir. Değişkenin bildirimi, değişkenin türünü ve boyutunu gösteren özel amaçlı bir sözcük ve bir tanımlayıcı ile yapılır.

b) Değişken Kapsamı


Değişkenlerin programda kullanılabilmesi için programın başında bildirimlerinin yapılması gerekir. Bir değişkenin kapsamı program içerisindeki erişilebilirliğidir. Değişken program içerisinde yerel yada genel olarak tanımlanabilir.
  • Yerel Değişkenler: fonksiyon tanımlandığı zaman, fonksiyon tarafından ayrılan bellek alanıdır. Bu değişkenler sadece tanımlandığı fonksiyon içerisinde anlamlıdır ve diğer fonksiyonlar tarafından kullanılamaz. Derleyici yerel değişkeni yalnızca tanımlandığı fonksiyonun bir parçası olarak gördüğü için, farklı fonksiyonlarda aynı isme sahip yerel değişkenler tanımlanabilir.
  • Genel Değişkenler: Derleyici tarafından ayrılan bellek alanları olup, bütün fonksiyonlar tarafından kullanılabilir.

3) SABİTLER


Sabitler program boyunca değeri değiştirilemeyen nesnelerdir. Sabitler birçok durumda derleyici programın parçası gibi davranırlar ve  RAM’den ziyade ROM da saklanırlar.
X+5  atamasında “5” bir sabittir ve derleyici tarafından doğrudan toplama işlemine sokulur.
printf (“selam”); ifadesinde “selam” metni program belleğine yerleştirilir ve değeri değiştirilemez.
Programlayıcıda const özel sözcüğünü kullanıp sabit bildirimi yapabilir. Sabit bildiriminde const özel sözcüğü ile birlikte tanımlayıcı ismi, türü ve değeri belirtilmelidir.
constant  unsigned char k =80;
Bir nesneyi sabit olarak tanımlamak nesnenin kısıtlı depolama alanı bulunan RAM yerine program kodunda saklanmasını neden olur. Bu ise sınırlı RAM alanının korunmasına yardımcı olur.

a) Sayısal Sabitler

Sayısal sabitler, sayısal tabanlarını göstermek ve programı daha okunabilir hale getirmek için farklı şekillerde bildirimleri yapılabilir. Örneğin sabitleri aşağıdaki gibi bildrimlerini yapabilirz.
float türünde olan 32 sabitinin gösterimi aşağıdakilerden biri olabilir

b) Karakter Sabitleri

Karakter sabitleri “0-9” ve “A-Z”gibi yazdırılabilir yada “enter,tab,yeni satır” gibi yazdırılamaz karakterlerden oluşur. Yazdırılabilir karakter sabitleri tek tırnak içerisinde gösterilir(‘C’).  Ayrıca karakter gösterimi ters slash ile birlikte temsil edilen sekizlik veya onaltılık değerlerini yazılarak da yapılabilir.
K karakterinin sekizli gösterimi ‘\113’  , onaltılık gösterimi ‘\x4B’ dir.
Ters slash ile tırnak karakterlerinin gösteriminde ise bu karakterlerin önüne ters slash konulur. Örneğin tırnak için gösterim ‘\’’, ters slash için gösterim’\\’ şeklindedir.

4) Tür Dönüştürme


Bazen programda tanımlanmış bir türün farklı türlere çevirme ihtiyacı doğabilir. Bu durumda tür dönüştürücüler kullanılarak var olan bir tür istenilen türe dönüştürülür.
Gösterimi dönüştürülecek türün parantez içerisinde yazılması ile şeklindedir.

5) Sabit ve Değişken İsimleri

Sabit Ve Değişken İsimleri verilirken bazı kurallara uyulmak zorundadır. Bunlar
  • Değişken ve sabit isimleri en fazla 32 karakterden oluşabilir. 32 karakterden uzun isimlerde ilk 32 karakter kayda alınır . Geriye kalan karakterler işleme tabi tutulmaz.
  • Değişken ve sabit isimleri alt çizgi, ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) ,  rakamlar (0-9) içermelidir. Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
  • Değişken ve sabit isimleri herhangi bir rakam ile başlayamaz. İlk karakter bir harf veya alt çizgi olmalıdır. Sonrakiler rakamlardan oluşabilir.
  • C 'nin özel sözcükleri sabit veya değişken ismi olarak kullanılamaz.



28 Eylül 2017 Perşembe

C PROGRAMLAMA DİLİ'NİN TARİHÇESİ


C Dili’nin Tarihçesi

C Programlama Dili genel amaçlı yapısal bir programlama dilidir. C dili Dennis Ritchie tarafından 1972’de AT&T Bell Telephone Labaratuarlarında B dilinden geliştirilmiştir. C dili, B* ve BCPL** nin önemli genel kavramlarının çoğunu içerir. C dili konusundaki ilk kitap, 1978’de Brian Kernighan ve Dennis Ritchie tarafından yazılmıştır.
1983 yılında C programlama dili standardize etmek amacıyla toplanan bir komite ANSI C*** (American National Standart Institute) standardını tanımlamıştır.C başlangıçta birçok kişi tarafından UNIX işletim sistemini geliştiren dil olarak biliniyordu.(UNIX işletim sisteminin 1000 satırlık bölümü C ile yazılmıştır). Ama günümüzde hemen hemen bütün büyük işletim sistemleri C ya da C++ ile yazılmıştır. Ayrıca Nesneye Yönelik programlama dilleri (C++,Java ve C# gibi) ve script dilleri (JavaScript,JavaApplet,PHP gibi) gibi programlama dilleri tamamen C tabanlıdır.
C donanımdan bağımsız (machine independent) ve taşınabilirdir (portable). Taşınabilirlik,aynı programın farklı donanımlarda ve farklı işletim sistemlerinde işletilebilirliğini ifade eder. Örneğin, Windows işletim sisteminde yazılan bir C kodu, Linux,UNIX, veya VAX gibi işletim sistemlerinde de derlenebilir.
Bir dilin verimliliği (productivity), hızlı fakat fazla yer kaplamayan yazılımlar geliştirmeye olanak sağlaması ile ölçülür. C programlama dili verimli, basit ,fakat güçlü yapısından ve bu dilde geliştirilen uygulamaların taşınabilir olmasından ötürü yaygın olarak kullanılmaktadır.
* B dili 1970’de UNIX işletim sisteminin ilk versiyonunu oluşturmak üzere Bell laboratuarlarında geliştirildi.
** BCPL 1967’de Martin Richard tarafından işletim sistemi ve derleyici yazmak için üretilen bir dildir.

-C DERLEYİCİLERİ

          DERLEME KOMUTLARI
Bir C programı, tümcelere ek olarak, derleyici için komutlar da içerebilir. Derleyici komutları adı verilen bu komutlar, gerçek programın bir parçası değildir. Programda bulunan diğer tümcelerin çevirisini yönetirler.Bu komutlar her zaman numara sembolü (#) ile başlarlar. Programın herhangi bir yerinde, tek bir satırda, yalnız başlarına olmalıdırlar.

CSU DSU NEDİR?

CSU DSU kanal hizmet birim ve aygıt hizmet birimi simgeler. Yönlendirici bir çeşit dijital devre için bağlanmak için kullanılan bir dijital tip cihazdır.

github-logoNEDİR?






Github versiyon kontrol sistemleri için(örneğin Git) uzak bir depo(repository)dur. Uzak depo demek, bir havuz olarak da düşünülebilir. Birçok yazılımcının bir araya geldiği, bir projenin kopyası üzerinde çalışarak projenin alt sürümlerini çıkardığı ya da çeşitli ihtiyaçlarını giderdiği ve yaptığı değişikliği havuza gönderdiği bir sosyal kodlama alanıdır. 
GitHub üzerinde yapılmış bir projenin bir kopyasını alıp, bilgisayarınızda çalışıp yaptığınız değişiklikleri proje sahibine GitHub sitesi üzerinden gönderebileceğiniz gibi, sizde bir hesap oluşturarak GitHub üzerinde proje oluşturabilirsiniz. Github kullanabilmek için sitesinden hesap oluşturmanız gerekiyor. Bazı terimleri de bilmemiz gerekiyor. Repository, branch ve fork gibi. Respository dediğimiz, GitHub üzerinde bulunan her bir projemizdir. Branch ‘ı, repository’lerimizin(projelerimizin) farklı modülleri olarak düşünebiliriz. Fork etmek demek ise, başkasının oluşturduğu bir repository’i, kendi repository’imiz olarak kopyalamak (ayrıca bilgisayarımıza da klon etmeye hazır hale getirmek) demektir.


Git Subversion NEDİR?


Git bir versiyon kontrol sistemidir. SVN olarak da adlandırılan bir sistemdir. SVN, SubVersioN(alt sürüm) kelimesinin kısaltılmış halidir.
Peki bir SVN sistemi olan Git ne işe yarar? diyebilirsiniz..
Bir dosya üzerinde tek başınıza ya da ekip olarak çalıştığınızı düşünün. Siz ya da ekibiniz küçük veya büyük fark etmez, aynı dosya ile çalışmak ve hızla ilerlemek zorundasınızdır. Bu çalışmanızda en fazla sıkıntı veren durum ekipteki kişilerin yaptığı düzenlemelerin, yine ekipteki birisinin yaptıklarıyla çakışmasıdır. Sizin yaptığınız bütün değişiklikler, diğer ekip üyesinde var olmayacağı için o dosyayı farkında olmadan sizin yaptıklarınızın üzerine atar ve bir anda tüm yaptıklarınız ezilir, kaybolur. Aynı şekilde tek başınıza çalışıyor da olabilirsiniz. Mutlaka başınıza gelmiştir. Çalıştığınız dosya da bir değişiklik yapıp kaydettiğinizde ve sonrasında o değişikliğe ihtiyacınız olduğunda geri dönememeniz ve o verinin kaybolması da aynı durumdur.
Bu sebeple Git gibi versiyon kontrol sistemleri de bu sıkıntıları gidermek için oluşturulmuştur. Her ekip üyesinin yaptığı değişiklikler ayrı ayrı ele alınarak, üst üste gelmeyen(çakışmayan) değişiklikler(örneğin aynı satırda yapılmış değişiklikler) yoksa kolayca birleştiriliyor. Eğer üst üste gelen(çakışan) satırlar varsa bu konuda yardımcı olarak kolayca birleştirmemize yardımcı oluyor. Fakat dosya üzerinde yapılan tüm değişiklikleri, saklayarak ta istenildiğinde görülebilmesini ve istenilen revizyona geri dönülebilmesini de sağlıyor.
Kısaca yazılımcılar için olduğu kadar bir belge üzerinde sürekli revizyon yapanlar içinde geçmişe yönelik revizyonları tutan bir sistemdir.
Yazılımcılar için kodlamada yaptığınız bir değişikliği sonradan tekrar geri almak istediğinizde ya da önceki hali ile olan farkını görmek istediğinizde bunu sizin için yöneten harika bir sistemdir.

OVERLOADİNG

C/C++ Operatorlerin Aşırı Yüklenmesi (Operator Overloading) C++’ da +,-,*,!,++ gibi operatörler fonksiyonlar yazılarak bu operatörlere ...