6 Şubat 2018 Salı

C ve C++ Geliştiricileri için en İyi 10 IDE


Yüksek seviyeli programlama dilleri hala hesaplama ana kalmak. Söz çok geliyor ama bunların çıkışından birkaç yıl içinde ölmüş olan birçok dilleri vardır. Ancak bilgisayarların ilk nesil ortaya çıktı ama hala çok popüler ve ilgili olan bazı taşlar vardır. C ve C++ her ikisi de çok popüler ve hala aktif olarak uygulamaları ve sistemleri dünya çapında kullanılır. Bu iki dilin hala programcılar arasında özellikleri ve mükemmel güvenlik güçlü bir nedeniyle aktif.
C ve C++ her programcı bu dilleri Python, PHP, İnci, Java, C# ve diğerleri gibi popüler programlama dilleri için temel oluşturur, çünkü bilmelisin ki, bu benzersiz bir dil vardır. Ayrıca, bu programlama dili yaygın olarak yetenekli programcılar tarafından bile donanım ile çalışmak için kullanılır.
Yani, eğer sen

C veya C++ Programcı ya da bir acemi bile

sizin için etkileyici IDEs bazı yuvarlama ben bu dilleri de öğrenmek için büyük bir araştırma var , o zaman burada bu yazı. Hata ayıklama, kod tamamlama, derleme ve dizim, vb gibi fonksiyonlar olduğu gibi IDE kolay programlama iş yapmak için en iyi yerdir.
IDE ana kullanım programı geliştirirken yazılım uygulamaları farklı bileşenleri sağlamaktır. En çok kayırılan onları geliştiriciler arasında kılan şey, çekici bir kullanıcı arayüzü. Bir kaç gün önce, ben paylaşılan IDEs için Linux gibi IDE için Java, ama bugün ben araştırdı en iyi IDE C/C++ için. Bu IDEs check out ve C/C++ geliştirme ile başladı.

1. tutulma

tutulma
Eclipse C ve C++ programcılar için açık kaynak programı ve işlevsellik sunan C/C++ İçin en popüler ve güçlü IDE. Yeni kullanıcılar bu kullanım için ve işe bağlı olarak basit IDE bulabilirsiniz.
Özellikler:
Ben açık kaynak yazılım.ücretsiz e.
• Tüm Windows platformları destekler, Linux, Mac OS X
• Destekler hata Ayıklama, kod Profilleme, Otomatik tamamlama ve ben Yeniden Derleniyor.kod e (yeniden yapılanma dış davranışını değiştirmeden yapılabilir).
• Sürükle ve bırak işlevselliği kullanarak öğe düzenlemek için (GUI) grafik kullanıcı arayüzü var.
• Ayrıca Statik Kod Analizi destekler.

2. Kod: Bloklar

codeblocks
Kod: Blok bir serbest C, C++ IDE oluşturulan karşılamak için en zorlu ihtiyaçları geliştiriciler, C ve C++. Bu C ve C++ geliştirme için gereken tüm özelliklere sahip bir IDE.
Özellikler:
• Windows, Linux ve Mac OS X üzerinde çalışır.
• Eklentileri ile tamamen yapılandırılabilir ve genişletilebilir olacak şekilde tasarlanmıştır.
Kod • Derleme destekler, hata Ayıklama, Kod Kapsamı, Profil, Otomatik tamamlama
• Sınıf bir tarayıcı.e nesne yönelimli programlama görselleştirebilirsiniz.
• Ayrıca (sürükle ve bırak işlevlerini kullanarak öğeleri düzenlemek için de GUI) ve Eclipse kod analizi destekler gibi

3. TATARCIK Programlama Studio

TATARCIK Programlama Studio
Ayrıca GPS olarak bilinen TATARCIK Programlama Studio, yazılım ve geliştiriciler arasındaki etkileşimi kolaylaştıran son derece gelişmiş Ücretsiz bir IDE. Doğal kaynak navigasyon arayüzü ile GPS kullanımı kolay, kolaylaştırır ve ayrıca programda temel fikirleri vurgulamak için yardımcı olur.
Özellikler:
• Çoklu destek
• Kod Derleme destekler, hata Ayıklama, Kod Kapsamı, Profil, Otomatik tamamlama.
• Ayrıca Kod gibi bir sınıf tarayıcı:Bloklar ve ayrıca Kod Yeniden yapılandırması destekler.
• Programcının işini kolaylaştırmak için sürükle ve bırak özelliği vardır.

4. CodeLite

codelite
CodeLite bir başka mükemmel, ücretsiz, açık kaynak ve çapraz platform IDE için C/C++ programlama dilleri üzerinde çalışan tüm önemli Platformlar (Windows, Linux ve OS X)
Özellikleri:
Compiler ve Hataları • genel destek Buildtab ile tıklanabilir.
• Yeni nesil hata ayıklayıcı destekler.
• Ev parser dayalı son derece hızlı ve güçlü bir kod tamamlama aracı var.
• Ayrıca bina Widget tabanlı uygulamalar için kendi RAD aracı vardır.
• Statik kod analizi, yeniden düzenleme, sınıf tarayıcı ve profil destekler.

5. Eclipse

Eclipse
Eclipse C++ IDE C ve C++ ile dinamik ve statik kitaplıkları ile uygulamalar oluşturma olanağı sağlayan C ve C++ için proje tabanlı şablonları bir sürü içerir. Web geliştiriciler arasında daha popüler yapmak inanılmaz özellikleri içerir.
Özellikler:
• Özgür ve açık kaynak kodlu bir IDE
• Destekler çoklu
• kod tamamlama C/C++için yeniden düzenleme hızlı ve Destekler.
• Bu IDE Çoklu Oturum gdb debugger ile bütünleşmesine.
• Otomatik girinti, anlamsal vurgulama ve biçimlendirme, kod katlama, parantez eşleme ve şablonları (biçimlendirme stilleri bir seçim sağlar) geliyor.
• Uzak bilgisayarlar üzerinde oluşturma, yürütme ve basit bir şekilde istemci sistem hata ayıklama projeleri bile geliştirme araçları kullanabilirsiniz.
Ayrıca Kontrol: 20 Yollarını Öğrenmek C Programlama İçin Ücretsiz

6. Qt Yaratıcısı

qt
Bu bir çapraz platform C++ IDE, ama özgür değildir. Ancak kullanım bir ay boyunca ücretsiz deneme sürümü alacaksınız.
Özellikler:
• Çoklu destekler.
• Hata Ayıklama, Profil oluşturma, Otomatik kod tamamlama ve Yeniden Derleme destekler.
• Sürükle ve bırak işlevselliği vardır.
• Statik Kod Analizi destekler.

7. Dev C++

kan
Dev C++ C ve C++ programlama dilleri için iyi bir IDE. Bu bir açık kaynak IDE destekler ama sadece Windows için değil, Linux ve OS X
Özellikleri:
• Kod Tamamlama.
• Destek profili.
• Sınıf Tarayıcı.
• GCC tabanlı derleyici desteği.
• Özelleştirilebilir sözdizimi renklendirme editörü.
(GDB kullanarak) • entegre hata ayıklama.
• Hızlı Windows, konsol, statik kütüphaneler ve DLL oluşturmak.
• Düzenleme ve derleme Kaynak dosyaları.
• Araç Yöneticisi.

8. C++ Builder

cbuilder
C++Builder veritabanı bağlantısı olmadan Windows için yüksek performanslı C++ uygulamaları bina başlamak için harika bir yoldur. Ücretsiz bir IDE değildir, özel lisans vardır. Windows ve OS X çalışıyor.
Özellikler:
• Hata ayıklama.
• GUI Builder.
• Profilleme.
• Otomatik tamamlama.
• Sınıf tarayıcı.
• Derleyici.
• Yeniden düzenleme destekler.

9. Anjuta

anjuta
Anjuta güçlü ve verimli geliştirme için basit ve kullanışlı kullanıcı arayüzü sağlayarak odaklanan gelişmiş programlama olanakları bir dizi oluşan çok yönlü bir IDE. Açık kaynak yazılım olsa ama sadece Linux platformunu destekler.
Özellikler:
• Anjuta UI güçlü araçları çalıştırmak için basit olacak şekilde oluşturulur.
• Kolay sihirbazlar ve proje şablonları yeni proje ile başlamak için.
• Tam pansiyon hata ayıklama için GDB entegre.
• Proje yönetimi.
• Uygulama Sihirbazı.
• Kaynak Düzenleyicisi.
Profiler ve daha birçok araçları.

10. MonoDevelop

monodevelop
MonoDevelop geliştiricilerin Linux, Windows ve Mac OS X masaüstü ve web uygulamaları yazmak için izin verir. Ayrıca bağlantı noktası .Visual Studio ile Linux ve Mac OS için oluşturulan NET uygulamaları tüm platformlar için aynı ve tek bir kod tabanı ile X.
Özellikler:
• Multi-platform.
• Metin Düzenleme Gelişmiş.
• Birden fazla dil desteği.
Entegre Debugger.
• Ayarlanabilir tezgah.
• Tam kod tamamlama ile web projeleri oluşturmak.

PROCESS VE THREAD ARASINDAKİ FARKLAR



Process(işlem)


“Process” kendisine ait kaynakları olan işlem birimidir.Örneğin her “process” kendisine ait hafıza alanına sahiptir.
“Process” genellikle uygulamanın kendisi olarak görülür ancak bir uygulama içinde birbirine bağımlı ve ya birlikte çalışan  processlerden meydana gelmiş olabilir. Processlerin birlikte çalışabilirliğinin sağlanabilmesi için çoğu işletim sistemi Inter Process Communication (IPC) diye adlandırılan yapıyı desteklemektedir, bu yapı sadece aynı bilgisayardaki processlerin birlikte çalışabilmesini değil aynı ağdaki processlerin birlikte çalışabilmesine imkan sağlamaktadır.

  • Öncelikle “process”  oluştrulmuş(created) duruma geçer ve ikincil bir hafıza biriminde ana hafıza (ram)  birimine yüklenir.Bu aşamadan sonra bekleme durumuna geçer “waiting” olur.
  • “waiting” durumunda iken işlemcinin kendine ayıracağı zamanı bekler ve  işleme koyulduğu anda “running” durumuna geçer.
  • Processin eğer beklemeye ihtiyacı olursa (örneğin bir kullanıcı girdisi …), “blocked” durumuna geçirilir. Kullanıcı girdisi geldiğinde tekrar “waiting” durumuna geçirilir.
  • Processin işlenmesi bittiği zaman ve ya işletim sistemi tarafından sonlandırıldığı zaman; “terminated” durumuna alınır.

Thread( iş parçacığı)

“Thread”ler de “Processler gibi”  işlem birimleridir ve  hafifsiklet processler (“lightweight processes”) olarak adlandırılırlar. Threadler daha az kaynağa ihtiyaç duymaktadırlar. “Thread”ler bir “process” içinde yer almaktadır. Her thread mutlaka bir procecesse sahiptir ve onun kaynaklarından faydalanabilir.


“Thread” ile “Process”

“Thread”ler de “process”ler gibi uygulamalarda paralellik elde etmek için kullanılırlar. Ancak “process”ler daha bağımsız işletim birimleridir, kendilerine ait durum bilgileri, kendilerine ait adres alanlarıdır ve birbirleriyle ancak IPC mekanizması ile haberleşirler. Bir “process” birçok “thread” barındırabilir, her bir “thread” mutlaka bir “process” in içinde yer almaktadır, aynı “process” içindeki tüm “thread”ler aynı hafıza alanını ve aynı durumu paylaşır birbirleriyler direk olarak haberleşebilir zaten aynı alanı paylaşırlar.



PARAMETRE VE ARGÜMAN ARASINDAKİ FARK





Fonksiyon çağrılırken gönderilen değerlere Argüman denir.
Fonksiyon bildiriminde, fonksiyona girdi olarak, kullanılan değişkenlere Parametre denir.




26 Ekim 2017 Perşembe


STRING (Harf dizinleri)
Harf dizinleri metin adıyla bildiğimiz türdür. C dilinde string'ler asıl veri türlerinden birisi değildir. Char türünden bir boyutlu arrayler olarak elde edilir. printf() ve scanf() fonksiyonlarının argümanları olarak çok kullanılırlar. C dilinin temel veri türlerinden olmadığı için, string’lerin kullanılış biçimi array’lerin kullanılışından farklı değildir; yani bir string’in öğelerine ancak tek tek erişmek olanağı vardır. Başka bir deyişle, C dili bir string’in bütün öğelerini bir bütün olarak isleyen operatörlere sahip değildir. Böyle olmakla birlikte, hemen her C derleyicisi yanında satılan fonksiyon kütüphanesinde string’lerle yapılabilecek bütün işleri yapmaya yarayan hazır fonksiyonlar vardır. Stringlerin karşılaştırılması, kopyalanması, birinin ötekine eklenmesi v.b. işlemleri yapmak için çok sayıda C fonksiyonu vardır. Bunları bu kesimin sonunda inceliyeceğiz.
C dilinde string'ler aşağıdaki yöntemlerle kurulabilir:
1. Yöntem
İstenen metin " " simgeleri arasına yazılır. Örneğin,
printf("C Programlama dili çok hünerlidir.");
deyiminde " " işaretleri arasına alınan metin bir harf dizini (metin,string) oluşturur. Buradaki dizin printf() fonksiyonunun argümanı (bağımsız değişkeni) rolünü oynar. " " içindeki bir metnin son harfinden sonra, C derleyicisi metnin sonuna gelindiğini belirtmek üzere \karakterini koyar. Standart cikista (ekran, printer) görunmeyen bu karaktere NULL terminatör adı verilir ve enter tuşuna basıldığında derleyici tarafından kendiliğinden oluşturulur.
2. Yöntem
İstenen metni içerebilecek bir yeri ana bellekte ayırmak için, yeterli büyüklükte bir array yaratılır. Örneğin,
char metin[20] ;
bildirimi 20 öğeli bir array yaratır. Herbir öğe bir harf temsil edecek bir değişkendir. Bu değişkene değer adamak için
metin[] = "Merhaba C." ;
yazmak yeterlidir. Bu adama, gerçekte

metin[0] = 'M' ;
metin[1] = 'e' ;
metin[2] = 'r' ;
metin[3] = 'h' ;
metin[4] = 'a' ;
metin[5] = 'b' ;
metin[6] = 'a' ;
metin[7] = ' ' ;
metin[8] = 'C' ;
metin[9] = '.' ;
metin[10] = '\0';

adamalarının yapılmasına denktir. Burada '\0' simgesi NULL (bos) karakter adıyla anılan değerdir. String'in bittiğini belirtir.
Bu işlemi daha kısa olarak
char metin[] = "Merhaba C.\n" ;
biçiminde de yazabiliriz. Bu halde, metin adlı array'e bildirim sırasında değer adanmaktadır. Aynı iş, daha zor biçimde
char metin[]={'M','e','r','h','a','b','a',' ','C''.','\0'};
biçimde de yapılabilir.
3. Yöntem
String bildiriminde pointerlerden yararlanabiliriz. Örneğin,
char *soyad ;
bildiriminden sonra
soyad = "Deniz";
adaması geçerlidir. Bu adamada 'D' harfi soyad pointerinin gösterdiği adrese yerleşir. Öteki harfler , o adresten sonraki 1 er byt’lık bellek hücrelerine sırayla yerleşirler. Dolayısıyla,
*soyad == 'D'
*(soyad +1) == 'e'
*(soyad +2) == 'n'
*(soyad +3) == 'i'
*(soyad +4) == 'z'
*(soyad +5) == '\0'
deyimleri doğrudur.

Pointerlerin ve arrayler’in kullanılışını gösterebilmek için, bir metni kopya etmeye yarayan strcpy() fonksiyonunu hem array yardımıyla hem pointer yardımıyla olmak üzere iki türlü tanımlıyacağız. Aynı işi gören bu iki fonksiyonun ikinci türünun daha kolay tanımlandığını göreceksiniz:
1. Array Yardımıyla Tanımlama
strcpy(s,t)
char s[], t[];
{
int i;
i=0;
while((s[i] = t[i]) != '\0')
i++;
}

2. Pointer Yardımıyla Tanımlama I
strcpy(s,t)
char *s,*t;
{
while((*s = *t) != '\0' )
{
s++;
t++;
}
}
Artırma operatörünü kullanarak, bu fonksiyonu daha kısa olarak da yazabiliriz:
3. Pointer Yardımıyla Tanımlama II
strcpy(s,t)
char *s,*t;
{
while((*s++ = *t++) != '\0' )
;
}
Pointerler arasında çıkarma işlemi de yapılabilir. Örneğin, p ve q aynı bir arrayin farklı iki öğesini işaret ediyorlarsa, p - q deyimi array'in p-inci öğesi ile q-inci öğesi arasında kaç öğe olduğunu belirtir. Derleyici, arrayin iki öğesinin işaret ettiği adreslerin numaraları arasındaki farkı bulur ve bu farkin pointerin işaret ettiği öğe türüne göre, kaç array öğesine karşılık geleceğini hesaplar. Örneğin, bir metnin (string) uzunluğunu bulan C kütüphane fonksiyonunu düşünelim. Bu fonksiyonun tanımı aşağıdaki gibidir:

strlen(s)
char *s;
{
char *p = s;
while (*p != '\0')
p++;
return(p-s);
}
Burada p pointerinin ilk değeri s olarak verilmiştir. Dolayısıyla, p pointeri metnin ilk harfinin adresini işaret etmektedir. Ondan sonra, metin sonunu belirleyen NULL '\0' karakteriyle buluşana dek, while döngüsü p pointerini 1 er artırmaya devam edecektir. p pointeri char türündendir. char için ayrılan bellek bölgesi 1 byte uzunlukta olduğuna göre, p den p++ değerine geçiş bellek numarasını 1 artıracaktır. Böylece p-s sayısı metnin kaç byte (yani kaç harf) uzunlukta olduğunu belirtmiş olacaktır.
C dili string'leri doğrudan doğruya işlemez. İstenilen işlemi yapacak fonksiyonların yazılması gerekir. Birçok C derleyicisinin yanında bu işleri yapacak standart fonksiyonlar satılır. Bunları programcı kendisi de yaratabilir. En çok kullanılan bazı string fonksiyonları aşağıda incelenmiştir :
strcat()
Bir string'i ötekinin arkasına ekler.
char *strcat(char *dizin1, char *dizin2);
Bu fonksiyon yürütüldüğünde, dizin2 string'i dizin1 string’inin arkasına eklenir.
strcmp()
Verilen iki string’i karşılaştırır.
int strcmp(char *dizin1, char *dizin2);
Bu fonksiyon dizin1 ile dizin 2 yi karşılaştırır. Eğer ikisi eşitse strcmp() fonksiyonu 0 değerini alır; dizin1, dizin2 den büyükse pozitif bir değer; küçükse negatif bir değer alır. Karşılaştırma yöntemi şöyledir: Harf harf karşılaştırdığı iki dizinde, farklı harflerle karşılaştığında dizin2 deki harfin ASCII kodunu dizin1 deki harfin ASCII kodundan çıkarır.
strcmp() fonksiyonunu array ya da pointer kullanarak tanımlamak olanağı vardır:

1. Array İle Tanımlama
strcmp(s,t)
char s[], t[];
{
int i;
i = 0;
while (s[i] == t[i])
if (s[i++] == '\n')
return(0);
return(s[i] - t[i]);
}
2. Pointer İle Tanımlama
strcmp(s,t)
char *s,*t;
{
for( ; *s == *t; s++, t++ )
if(*s == '\0' )
return(0);
return(*s - *t);
}

strcpy()
Bir string'i kopya eder.
char *strcpy(char *d1, char *d2);
Bu fonksiyon d2 stringini d1' e kopya eder. C derleyicisi d1'in d2 dizinini içerebilecek uzunlukta olup olmadığını denetlemez. Dolayısıyla, programcı bunu kendisi güvenceye almalıdır.
strlen()
Bir string’in uzunluğunu verir.
unsigned strlen(char *dizin);
Bu fonkiyon dizin içindeki harfleri sayar. Tanımı aşağıdaki gibidir:
strlen(s)
char *s;
{
char *p = s;
while ( *p != '\0' )
p++;
return(p - s);
}


strlwr()
Bir dizindeki büyük harfleri küçük harflere çevirir.
char *strlwr(char *dizin);
Bu fonksiyon dizin'in harflerini küçük harf olarak yazar.
strupr()
Bir dizindeki harfleri büyük harfe çevirir.
char *strupr(char *dizin);

OVERLOADİNG

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