24 Ekim 2017 Salı

C Dilinde String Fonksiyonları Kullanımı

Strlen fonksiyonu
Yazının kaç karekter uzunlukta olduğunu bulan fonksiyonun prototipi aşağıdaki gibidir.
unsigned int strlen (char *str) 

Fonksiyon uzunluğu belirlenecek yazının başlangıç adresini parametre olarak alır ve geriye yazının uzunluğunu döndürür.



Strchr fonksiyonuStrchr "string character" sözcüklerinin kısa biçimidir. Bir karekter dizisi(yazi) içinde belli bir karekteri aramak için kullanılan fonksiyodur.Prototipi aşağıdaki gibidir.
char * strchar (char *str, char ch) 

İkinci paramtere ile belirtirln karakteri str adresinden başlayarak arar. ch karakterinin ilk görüldüğü yernin başlangıç adresini geri döndürür. Eğer ch karekteri yazı içinde yoksa bu sefer geri dönüş değeri NULL olmaktadır.



Strcpy fonksiyonu

Strcpy, String ve Copy sözcüklerinin kısaltılmış halidir. Fonksiyonun ikinci parametresinde bulunan yazının başlangıç adresinden başlayarak ,birinci paramteresinde bulunan adrese NULL karekter de dahil olmak üzere kopyalar. Prototipi şöyledir;
char * strcpy (char *hedef , char * kaynak) 

Fonksiyonun geri dönüş değeri kopyalamanın yapıldığı hedef adresidir.




Strcat fonksiyonu
Fonksiyon ismini "String" ve "Concatanate" sözcüklerinden alır. Bu fonksiyon bir karekter dizisini başka bir karekter dizisinin sonuna eklemek için kullanılır. Prototipi şu şekildedir;
char * strcat (char *str, char *ek) 

Fonksiyonda parametre olarak belirtilen birinci yazının sonuna ikinci paramterede belirtilen yazı eklenerek, eklemenin yapıldığı adres yani str adresi geri döndürülür.Bu fonksiyonu kendimiz yazmamız için önce str yazısının sonuna kadar gitmemiz sonrada ek teki yazıyı str ’nin sonundan itibaren kopyalamamız gerekir.


Strcmp fonksiyonu
Fonksiyonun ismi String ve Compare sözcüklerinin kısaltılmış halidir. Parametre olarak verilen iki yazı dizisinin ASCII karekter tablosuna göre karşılaştırır. Küçük harfler ASCII tablosunda büyük harflerden daha sonra geldiği için "sefer" yazısı "SEFER" yazısından daha büyüktür. "Mehmet" yazısı "Metin" yazısından daha küçüktür, çünkü eşitliği bozan ’h’ karakteri ’t’ karekterinden daha önce gelmektedir. Prototipi aşağıdaki gibidir

int strcmp (char *str1 , char * str2) 

Parametre ile verilen iki yazı karşılaştırılır ve geri dönüş değeri, birinci yazı ikinci yazıdan büyükse pozitif bir değere, birinci yazı ikinci yazıdan daha küçükse negatif bir değere , birinci yazı ve ikinci yazı eşit ise sıfır dır.

3 Ekim 2017 Salı

Git ve GitHub

Git bir versiyon kontrol sistemidir. SVN olarak da adlandırılan bir sistemdir. SVN, SubVersioN(alt sürüm) kelimesinin kısaltılmış halidir. 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.

GitHub ise  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

C Programlama Dili Derleyicileri

1. Notepad++
Notepad++ adından da anlaşılacağı gibi bir metin düzenleme aracı, tabii bunun yanında birçok özelliği de var. Özellikle herhangi bir dilde kodlama ile uğraşıyorsanız çok işinize yarayacak bir araç.Desteklediği kodlama dilleri şöyle; C, C++, Java, C#, XML, HTML, PHP gibi birçok dili destekler. Bu da C dili için uygun bir derleyici olduğunu göstermektedir.

2. Tutorials Point – Online Compiler
Son dönemde bulut tabanlı sistemlerin arttığını görüyoruz. Bunun örneklerinden birisi de herhangi bir kurulum yapmadan web tarayıcımız üzerinde kod yazarak çalışabileceğimiz web siteleri. Tutorials Point web sitesinde birçok dil için online derleyici bulunuyor. C çalışmak için kullanmaya da uygundur.
3. Dev C++
Eski bir geliştirme ortamı olmasına rağmen Dev-C++ da C ve C++ çalışmaları yapmak için kullanılabilir. 
4. Microsoft Visual Studio
Visual Studio, Microsoft firmasının Windows işletim sisteminde yazılım geliştirmek için sunduğu tümleşik geliştirme ortamı. Oldukça gelişmiş özelliklere sahip bu platformda C++, C# ve VB dillerinde yazılım geliştirilebiliyor. C++ derleyicisinde C kodları yazmanız mümkün. Visual Studio’nun “Community” versiyonu ücretsiz olarak kullanılabiliyor. 

C Programlama Dili 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.