İçeriğe geç →

C Programlama Dersi – 1

Selam,

Bismillah diyerek ilk programlama dersime başlıyorum: C 

Neden C Programlama Dili, Yusuf Bey?

Teşekkürler, sıkça karşılaştığım bir soru. Eehehe 😀

C ile başlamam için birçok önemli nedenim var. İlki, öğrendiğim ilk programla dili olması 🙂 Ama daha önemlisi C, programlama dillerinin temeli sayılıyor. Öğrendiğim ilk programlama dilinin C olması benim için güzel bir şanstı sanırım. Birçok sistemin temelinde C var ve günümüzdeki birçok popüler dile de ilham olmuş. Wikipedia sayfasında daha fazla bilgi bulunabilir. Ekstra olarak ekşi sözlükteki c başlığı. Özellikle şu entryde uzunca bir açıklama var.

Üniversitede kullandığım kitap bana yardımcı olabilir. Temel seviyede bilgiler sunuyor ve bolca pratik mevcut. Yeni başlayan kişiler için de faydalı olabilir.  Kitap: C Dersi Programlamaya Giriş

Tabii ki internette sınırsız kaynak mevcut:

Fazla uzatmadan gerekli programı indirip kuruyorum: Eclipse.

Eclipse başka program kursam olmaz mı? Olur tabi. Verdiğim kaynaklara bakarsan C kodlarını yazman için gerekli programları ve kurulumlarını görebilirsin.

C ile “Merhaba Dünya”

Eclipse’i açıp yeni bir “Hello World” C projesi oluşturarak işe başlayalım.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	puts("Hello World!"); /* prints Hello World! */
	return EXIT_SUCCESS;
}

İşte benim ilk programım! Tek amacı var, o da çalıştığı zaman ekrana “Hello World” yazmak. Harika değil mi?

Şimdilik tek bilmem gereken kodlarımı int main (void) {}  arasına yazmam gerektiği. Her programın bir main() fonksiyonu olmalı ve program bu main() fonksiyonundan başlar.

Diğer Kodlar?

İyi, güzel. Buraya kadar her şey umduğumdan basit çıktı ama diğer kodlar ne işe yarıyor? #include , puts(); ya da int ya da main() içindeki (void) ne? Ne işe yarıyor? Neden buradalar?Babam böyle kek yapmayı nereden öğrendi!? Bunların cevabını bilmem gerekmez mi?

 

Sakin

Yusuf, Yusuf… Öğrenmeyi çok istiyorsun anladım ama dediğim gibi şimdilik bunları bilmemize gerek yok. Ama çok merak ettiğin için kısa kısa değinelim.

Kütüphane (Header)

C dilinde “header” dosyalarının diğer dillerde karşılığı kütüphane anladığım kadarıyla. Kütüphaneler fonksiyonların bir araya gelmesiyle oluşur. Daha açıklayıcı olmasını açısından şöyle bir örnek vereyim.

Trigonemetrik işlemler yapan bir matematik programı yazmamız gerek. Girilen değerlerin sin, cos, tan vb. değerlerini bulmamız lazım. Bunun için;

  1. tek tek bu hesapları yapan kodları yazabilirim,
  2. daha önceden hazırlanmış matematik kütüphanesini programıma eklerim ve kütüphanenin içindeki hazır fonksiyonları kullanarak pratik şekilde programı yazabilirim.
#include <stdio.h>
#include <stdlib.h>

Bu kodlar programa kütüphane eklememize yarıyor.

include(bknz. google translate<stdio.h> yazarak stdio.h kütüphanesini programımıza dahil etmiş olduk.

İyi ki kısa kısa değinelim dedik. Çok uzatmadan şu fonksiyonlara bakalım.

Fonksiyon

Sonunda fonksiyonlara geldik ama fazla durmayacağım. Çünkü bu iş sandığından daha derin. Bu işin arkasında Amerika ve İsrail var.

iğrenç espri
Hey dostum, şunu keser misin lütfen?

Daha fazla iğrenç espri yapmadan fonksiyonun ne olduğunu söylüyorum: “programınızdaki özel işlere bakan görevlilerdir.*

int main(void) ya da puts() işte hep bunlar fonksiyonlar… Hepsinin kendine has görevi var. Daha sonra fonksiyonlara bakınca detaylarına ineriz ama çok meraklanırsan, şu wikibook sayfasına göz atabilirsin. Karışık gelirse üzelme, daha yolun başı.

puts("Hello World!"); /* prints Hello World! */

Mesela puts(). Bunun görevi ekrana yazı yazdırmak. Ekrana yazı mı yazdırmak istiyorsun. puts() fonksiyonunu kullan. Zaten adam yanına yorum olarak açıklamış, “Hello World yazdırır” demiş.Ekrana bir şeyler yazdırmak istediğinde printf() fonksiyonunu da kullanabilirsin.

Ayrıca dikkat çekici bir nokta daha var. Yakaladığını biliyorum Sherlock. main() bir fonksiyon, puts() bir fonksiyon. Fonksiyon içinde fonksiyon!

İzlemediysen Inception güzel filmdir bu arada.

Yorum Satırı

puts("Hello World!"); /* prints Hello World! */

 

/*prints Hello World*/ işte dostum, bu bir yorum satırı. Ne işe yarar dersen, program için bir anlamı yok. Kodları çalıştırırken yorum satırları çalıştırılmaz. Çünkü yorum satırları insanlar içindir. Yazdığımız kodların ne işe yaradığını açıklamak, program hakkında bilgiler eklemek vb. gibi ihtiyaçlar için yorum satırlarını kullanmalısın. Yarın öbür gün, dönüp koduna baktığında “Bu ne ya? ufff salak şey .s” dememek için, ufak bir yorum ile o kodun ne işe yaradığını açıklayabilirsin. Hem böylece senden başkası da koduna baktığında ne işe yaradığını daha rahat anlasın, değil mi?

return

Programın son satırına kadar geldik. Buraya kadar iyi dayandın, tebrik ediyorum. Hemen return hakkında özet geçeyim.

Fonksiyonların belirli görevleri yerine getirdiğini hatırlıyorsundur. Güzel, peki fonksiyon görevini yaptıktan sonra ne yapacak? “Oh görevim bitti hacı” deyip yatışa geçebilir ya da “Yaptığım görev sonucu  elde ettiğim değerleri aktarmalıyım” da diyebilir. Hangisini diyeceğini biz belirleyeceğiz elbette ama, eğer geriye bir değer getirecekse bunun için return() komutuna ihtiyacı olacaktır.

Özet

Bugün ekrana “Hello World” yazan bir program yazdım.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	puts("Hello World!"); /* prints Hello World! */
	return EXIT_SUCCESS;
}
  • #include ile kütüphane ekleyebilirim. Kütüphanelerin içinde fonksiyonlar var.
  • Fonksiyonlar, belirli görevleri gerçekleştirmek için oluşturulmuş kod öbekleridir.
  • Her C programı main() fonksiyonuna ihtiyaç duyar ve program buradan başlar.
  • puts() ya da printf() ekrana bir şeyler yazdırmak için kullanılan fonksiyonlardır.

Gitmeden önce son bir şey söylemek istiyorum. Öyle Eclipse’i açıp kafana göre kod yazacağını sanıyorsan yanılıyorsun dostum. Henüz hiç kod yazmadın ama bu işin belirli kuralları var. Adı üstünde, C programlama dili. Bu da bir dil, bununda dil bilgisi kuralları var. Şimdi bunlardan bahsetmek istemiyorum. Zaten ilerledikçe bu kuralları otomatik olarak öğrenmiş olurum. Şimdi öğrenirim diyorsan, buradaki sayfanın alt kısmına göz atabilirsin.

Şimdilik bu kadar yeter. Haydi görüşürüz…

Kategori: C

Yorumlar

Sizde düşüncelerinizi paylaşın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back To Top