C Dili derslerinin ilkinde, kullanılan IDE' lerden bahsettik. Ayrıca Eclipse kullanan Java Developer'ların ek bir IDE kullanmadan nasıl C kodlarını derleyeceklerini gösterdik.
Şimdi de niye C dili kullanılır, ayrıntıya girmeden bahsedelim. Günümüzde embedded programlama hariç herhalde kullanımı kalmamıştır diye düşünüyorum. Ancak bu dili özel yapan günümüzde kullanılan modern dillerin atası olmasıdır.
C++, C#, Java vs. gibi diller C syntax üzerine kurulmuştur. Yani C biliyorsanız bu dilleri anlamanız çocuk oyuncağı diyebilirim. C bu dillerle karşılaştırıldığında Low-Level statüsüne girebilir.
C ile; genel syntax'i anlayabilir, yapısal programlama dili kavramını öğrenebilir ve hafızaya doğrudan erişim sağlayabilirsiniz. Hafızadan kastımız tabii ki RAM'dir.(Primary Memory). İlerleyen derslerde bahsedeceğimiz diskten kastımız da HDD yani hardisktir. (Secondary Memory).
Örneğin doğum tarihini hesaplayan bir program yazmak istediniz. Yazdığınız uygulama CPU'da çalıştırılır. Kişiden aldığınız doğum tarihi klavyeden okunur, RAM'de tutulur ve hesaplama işlemini CPU yapar. Son olarak sonucu monitör yani ekranda gösterirsiniz.
C dili ile yazdığınız programlar, işletim sistemi üzerinde çalışır. Aslında her program, çalışmak için bir işletim sistemine ihtiyaç duyar. Bu programların çalışması için işletim sistemine özel bazı fonksiyonların çağrılması gerekir.
Standart girdimiz olan klavyenin ya da standart çıktımız olan monitörün kontrolü işletim sisteminin elindedir. İşletim sistemleri bu tür işlemler için özel bazı izinler verir. O fonksiyonları kullanarak biz de programımızı yazarız.
C standart bir dil olduğundan her işletim sistemindeki C derleyicisi bu izin/fonksiyonları ortak bir hale getirmiştir.
Kaynak kod olarak ifade ettiğimiz source code; C syntax'i ile yazılmış program dosyasıdır.(Programcının yazdığı kod dosyası). Bu dosya Compiler ile derlendikten sonra makinenin anladığı machine language'e çevrilir. İşletim sistemi machine kodu hafızaya yükler ve yüklenen kod işletim sistemi tarafından CPU'da çalıştırılır. Genel çalışma mantığı böyledir.
Basit bir kod örneği verip dili anlamaya çalışalım. Klasik ekrana "Merhaba Dünya" yazan bir uygulama :
Uygulamanın çıktısı aşağıdaki gibidir :
Kod üzerinde konuşalım. # include ile belirtilen ifadeler, kod içerisinde kullanılacak fonksiyonların bulunduğu kütüphanelerdir. Bu anahtar kelimeyi kullanarak bu kütüphaneleri kodumuza dahil ederiz.
stdio.h kütüphanesi standard input output fonksiyonlarını içerir. Yani ekrana yazmak için gereken puts ya da printf fonksiyonlarını kullanabilmek için bu kütüphaneyi dahil etmeliyiz.
int main() ile belirtilen ifade ise main fonksiyonudur. C syntax dillerde, program main fonksiyonu ile başlayıp onunla biter. Yani çalıştırılabilir (.exe) programların hepsinde 1 adet main metodu bulunmak zorundadır. { } süslü parantezler genel olarak kapsama alanı olarak geçse de fonksiyonlar için fonksiyonun içeriğini içine alan bloksal yapıdır.
Fonksiyonları, programlardaki iş yapan bölümler olarak düşünebilirsiniz. puts() ve printf() de benzer şekilde fonksiyondur. Parantez içine yazılan string ifadeyi ekrana basmak için kullanılır.
main fonksiyonunun başındaki int ile belirtilen terim fonksiyonun geri dönüş değer tipidir. return ile belirtilen ifade de gene bu geri dönüş değerini döndürmek için kullanılır. Şimdilik anlamaya gerek yok. İlerde ayrıntısına girerim.
Son olarak C syntax dillerde, her bir ifade ; (noktalı virgül) ile sonlandırılır.
Buraya kadar özetleyecek olursak yazılımın temel öğeleri; İşletim Sistemi(I/O), Kaynak kod, Makine kodu ve Compiler dediğimiz derleyicilerdir.
Değişkenler (Variables)
Değişkenler, programlama dillerinde verilerin tutulduğu yapılardır. Bu yapılar hafızada RAM de bulunur ve geçici olarak bir değer tutmaya yararlar.
Kaynak
Bir değişken 4 şeyden oluşur :
- Değişken ismi
- Değişken tipi (int,float,double,char...)
- Değişkenin değeri
- Hafızadaki yeri
Değişkenleri anlamak için basit bir uygulama yapıp dersi sonlandıralım.
Uygulamayı çalıştırdığımızda alacağımız çıktı da aşağıdaki gibidir :
Bu uygulamada a,b,c ve sum adında 4 değişken tanımladık. Bunlardan a, b, ve c ismindeki değişkenler int yani integer(tam sayı) tipindedir ve içerisine ancak tam sayı değerleri alabilir. sum değişkeni ise float tipinde olduğundan içerisine ondalıklı sayı alabilir.
degisken_tipi degisken_ismi;
şeklinde değişken tanımlaması yaptığımızda ilk değer ataması yapmamış oluruz. sum değişkeni bu şekilde tanımlanmıştır. Ancak uygulamada görüldüğü gibi a,b ve c değişkenlerinin her birine ilk değer ataması yapılmıştır.
sum = a + b + c;
ifadesi ile a,b ve c nin toplamını sum değişkenine atamış olduk. Programlama da '=' operatörü atama operatörüdür ve eşitliğin sağ tarafındaki değeri sol taraftakine atamak için kullanılır.
printf() fonksiyonu ile ekrana bir şeyler yazdırdığımızdan bahsetmiştim. Kullanımı uygulamadaki gibidir. Eğer yazdırılacak değerler string dışındaki int, float gibi değerler ise int için %d, float için %f karakterlerini kullanmak gerekiyor. printf fonksiyonundaki '\n' karakteri ise bir alt satıra geçmek için kullanılır. \n : new line
Son olarak derleyiciden kaynaklı sorunlar yaşayanlar için alternatif online bir compiler buldum.
Online C Compiler'da da kullanıcıdan bir sayı alan ve bunu ekrana basan halini test ettim. Siz de deneyebilirsiniz.
Ekran çıktımız aşağıdaki gibidir :
Not : Aldığınız bazı hataların derleyici kaynaklı olduğunu düşünüyorsanız, Online C Compiler'ı buradan deneyebilirsiniz. Test ettim, gayet iyi çalışıyor.
Not : Crayon Syntax Highlighter eklentisi C dili için çalışmadı. (Belki de Wordpress Güncellemesinin sonucudur. Denemeye devam...)
Uygulama noktasında herhangi bir sorun yaşarsanız aşağıdaki yorum panelini kullanarak iletişime geçmekten çekinmeyin lütfen. Teşekkürler.
Kaynak belirtilmeyen görseller @etasarim a aittir. / Pictures that don’t have any source belongs to @etasarim.
Posted from my blog with SteemPress : http://etasarim.cloudaccess.host/22/02/2019/degiskenler-c-programlama-dili/
Bu yazı Curation Collective Discord Sunucusunda küratörlere önerilmiş ve manuel inceleme sonrasında @c-squared topluluk hesabından oy ve resteem almıştır.
This post was shared in the #turkish-curation channel in the Curation Collective Discord community for curators, and upvoted and resteemed by the @c-squared community account after manual review.
@c-squared runs a community witness. Please consider using one of your witness votes on us here
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
" printf fonksiyonundaki '
' karakteri ise bir alt satıra geçmek için kullanılır. _"
Burada " \ " (backslash) karakterini yazmayı unutmuşunuz sanırım.
\n == new line. Yada benim telefonun ekranında bir sorun mu var?
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Valla hocam bakayım steempress her şeyi değiştirdi. Baktım hocam var gözüküyor sanırım sizin telefondan.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Burada backslash görünmüyor.
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ayrıca " ; " almancada semikolon dediğimiz bu karekterin bir emrin sonlandırması olduğunu hatirlatirsaniz yeni ögrenenler için faydalı olabilir. Işinize karışmak gibi olmasında.🙄
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Aslında yeni başlayanları hedeflememiştim ama mantıklı tabii ki belirtmekte fayda var teşekkür ederim.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ozaman istersen direk pointer lara geç de bende koptuğum yerden devam edeyim😁. Güzel paylaşımınız için teşekkürler.
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Öyle de olmaz diye düşündüm hocam damdan düşer gibi :) tamam size pointerları anlattığımda haber veririm.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by etasarim from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
As a follower of @followforupvotes this post has been randomly selected and upvoted! Enjoy your upvote and have a great day!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Her zaman verdiğin emeklerin karşılığını mutlulukla alırsın inşallah...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Amin hocam teşekkür ederim ne güzel bir dua :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi, @etasarim!
You just got a 1.6% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Benim Steemit ekranımda da hi world yazıyor 😀🤓🌍
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Evet aynen sizinkisi gibi hocam normalde yazılımda hello world diye geçiyor, Türkçede her şey aynı kapıya çıkıyor. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit