C++ kapsamlı dersleri yeni başlayanlar için

15
EXE RANK

-AUXERRE. `

Fexe Kullanıcısı
Puanları 0
Çözümler 0
Katılım
1 Ara 2009
Mesajlar
15,286
Tepkime puanı
0
Puanları
0
Yaş
33
-AUXERRE. `


Önsöz



Bu kısma nasıl başlayacağımı tam olarak bilmiyorum. Fakat bir şeyleri beraber öğreneceksek, bunlar hakkında da kendi düşüncelerimi ve yaptığımız işin ana unsurlarını birlikte görmekte fayda olacağını düşünüyorum. Bilgisayarın temeline inecek olursak, bu aşamada ünlü matematikçi Alharezmi`den söz etmeden geçemeyeceğim. İ.S. 9.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını Araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi'nin Latince okunuşudur. Algoritma; belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. Şöyle de diyebiliriz: karşımıza çıkan problemi çözme yolu. Yani yolun kendisi.

Bilgi en önemli güçtür söylemini duymuşsunuzdur. Ancak bilgi erişilemezse ve elde etmek çok zorsa kullanışsızdır. Bu notları yazmamdaki en büyük etken bu bahsettiğim olgu oldu. Şayet bir şeyi biliyorsam ve bu da değerliyse ve buna herkes ulaşamıyorsa veya ulaşmak isteyip kolay bulamıyorsa, bu bilgiyi siz arkadaşlarımla paylaşmayı bir borç biliyorum.
İlk yapılan bilgisayarın karşına geçip hemen
bilinen en eski soruyu sormuşlar "Tanrı var mı?".
Bilgisayar kısa bir düşünmeden sonra "Evet artık var!".

Bu sözü notlarımı hazırlarken. KOÜ Elektronik ve Haberleşme Mühendisliği ders notları arasında görmüştüm. Yani bilgisayarlar kendisine sorulan sorulara hemen cevap veren, bir sürü problemi çözen aygıtlar değildir. Bilgisayarda yapılan iş, ilk önce insan aklı süzgecinden geçiyor, insanlar tarafından etraflıca tasarlanıyor, planlanıp programlanıyor. Bu nedenle, önce bilgisayara problemin çözümü öğretilmelidir. Fakat bunun için bizim problemi çözmemiz gerekir. Ve daha sonra bir programlama dili ile bu çözümü bilgisayara aktarmalıyız. İşte buna programcılık diyoruz.
Günlük hayatımızda, evde, iş yerinde veya eğitimimiz için kullandığımız tüm elektronik eşyalar; daha da genelleyecek olursak kısaca yaşamımızı kolaylaştıracak her türlü alet ve malzemede bilgisayar kodları kullanılıyor. Programlama da bu aletleri harekete gecircek bilgisayar kodlarının bütünüdür. Gerçi burada amacımız hayatı robotlaştırmak değildir. Aksine daha kolay yaşanır hale getirmektir. Zamandan, iş gücünden ve buna benzer bir çok unsurdan kar elde etmek için programlama var ve de genişleyerek olmaya da devam edecektir. Ben programlamanın bu gün olduğu gibi gelecekte de en hızlı büyüyen sektör olucağına inananlardanım.
Yeni teknolojileri hızla öğrenmek ve geliştirmesine katkıda bulunmak amacıyla hazırladığım ve hazırlayacağım notları siz arkadaşlarımla paylaşma dileğiyle
 
  1. C++ İle Programlamaya Giriş
  2. İlk programımız!
  3. // ilk1.cpp// Ekrana "Bu benim ilk programım" yazdırıyoruz#include <iostream.h>int main(){ cout << "Bu benim ilk programım"; return 0; }
  4. Şimdi Yazdığımız programı inceleyelim:
  5. "//" işaretini açıklama satırlarında kullanıyoruz. C++ derleyicisi bu notasyonla başlayan satırı okumaz. Bununla birlikte daha uzun cümlelerimiz olursa bunları da " /* */ " notasyonunun içinde yazıcağız. Bu özellik de C den bize kalma. Demiştik zaten C `nin tüm özelliklerini C++ içerir. Fakat biz genelde " // " yi kullanacağız.
  6. #include <iostream.h> : Bu bizim C++ da bulunan kütüphane dosyamızı çağırmaya yarıyor. Ben size şöyle tarif edeyim. iostream.h kütüphanesindeki hazır olan " cout " fonksiyonunu çağırıyor. Yani buda bizim fazla kod yazmamıza engel oluyor. .h ile biten dosyalar kütüphane dosyalarıdır. Bunu şuna da benzetebiliriz. Farz edelim ki elimizde bir alet çantası var içinden tornavidayı çağırdığımızda vida sıkacağızdır. Bu da ona benziyor. C++ da ki hazır kütüphanelerde bir çok hazır fonksiyonlar vardır. İlerde Bu hazır fonksiyonlar işimizi görmemeye başlayınca kendi kütüphanemizi yapmaya başlayacağız. Tabi bu seviyeye geldiğimizde olayı hemen hemen kavramış olacağız, tabi neden olmasın öyle değil mi?
  7. Daha sonraki satır her C++ programında mutlaka bulunması gereken bir satırdır. Her C++ programında main() fonksiyonu olmak zorundadır; bu fonksiyonumuzun önünde ise o fonksiyonun dönderdiği değişkenin veri tipi olmalıdır. Tabi ki C++ fonksiyonlar ve onların dönderdikleri değerler konusunu da ileride işleyeceğiz.
  8. Bir sonraki satırda ise; C++ fonksiyonlar ve kod blokları " { } " parantezleri arasında bulunmalıdır. main de bir fonksiyon ise onun içindeki kodlar doğal olarak { } parantezleri arasındadır.
  9. Program derlenip çalıştırıldığında ise ( Turbo C++ 3.1 kullanıyorsanız ctrl+f9 kısa yoluyla programı çalıştırabilirsiniz (Run) ) karşımıza "Bu benim ilk programım" yazısı çıkacaktır. İşte bu yazıyı ekrana veren komut da iostream.h kütüphanesindeki cout fonksiyonudur.
  10. Önemli bir nokta ise C++ dilinde her satır ifadenin sonuna " ; " koymak zorundayız. Bundan farklı olarak #include satırlarının ve bir kaç farklı satırın arkasına " ; " gelmez. Bunları ileride göreceğiz.
  11. Return 0 : programımızın (aynı zamanda main fonksiyonumuzun) çıkış noktasıdır. Eğer return ile 0 değeri dönderirsek programımızın güvenle çıktığını işletim sistemine bildirmiş oluruz. Bu sayede güvenle programımızın çalıştığını göreceğiz.
  12. Şimdi size bir örnek daha vereceğim bununla da aynı çıktıyı elde edeceğiz. Arasındaki farkları eminim basit olarak sizlerde göreceksinizdir.
  13. // ilk2.cpp// Ekrana "Bu benim ilk programım" yazdırıyoruz#include <stdio.h>main(){printf("Selam bu benim ilk programım.\n"); return 0; }
  14. Evet şimdi burada çok fark varmış gibi gözüküyor aslında ama öyle değil. Sadece kütüphanemiz stdio.h oldu ve ekrana yazdır fonksiyonumuzda printf oldu. Bu özellik C den kalma. Bunlar diğer program ile aynı işlevi görüyor. Buradaki fark " \n " notasyonu. Bu noptasyon bir sonraki satıra geçmek için kullanılır. Bu notasyonlara Escape dizileri denir. Tablo olarak bunları size veriyorum. Son yazdığımız ilk2.cpp de yerlerine koyarsanız çalışacaktır.
  15. Dizi: Adı:\a Alarm\bBir karakter geri (Backspace)\fFormu itekle\nYeni satır ( yukarda kullandığımız (newline) )\rReturn\tYatay boşluk
  16. Şu an bunları bilmemiz yeterli.
 
Temel Bilgiler

C++ bilindiği gibi programlama dünyasında en çok ilgi gören C dilinden türemiştir. C++'ı klasik C dilinden farklı yapan yanı; Nesne Yönelimli Programlamayı da ( Object Oriented Programming) C'nin sözdizimi kurallarıyla birlikte desteklemesidir. Normalde C ile sadece yapısal programlama yaparken C++ dili ile hem yapısal hem de nesne yönelimli programlar yazabilirisiniz. C++ diline başlarken önce dilin C'den gelen ve temel olan özelliklerini öğrenmek gerekir. Örneğin, değişken tanımlama, atama ve diğer basit aritmektik işlemler, kontrol yapıları ve döngüler gibi.
Teknolojinin ulaştığı son noktadaki programlama dillerinden olan C ve C++, bir çok yeni ve güçlü özellikleri içerir. Derslerimiz devam ettikçe bunların teker teker içine gireceğiz. C dilinin özelliklerinin %80 i C++'da da mevcuttur (bu karşılaştırma şahsi görüşümdür). Zaten C++, C'nin üst gurubudur. Bunu şöyle sıralayabiliriz. C, C++ ve C# dır.
C dilinin avantajları, az komut kümesinden oluşması ve bu komutların diğer yüksek seviyeli dillere nazaran daha hızlı çalışmasıdır. Ayrıca C deki kütüphaneler sayesinde fonksiyon tanımlamanıza gerek kalmadan işlemlerinizi yapmak mümkün olacaktır. Bu konuda çok detaya inmeden, programlamaya geçmek istiyorum. Çünkü, programlamaya başladığımızda her örnekten sonra o an kullandığımız programın içinde geçen fonksiyon, hata, değişken, belirleyiciler, kısıtlamalar, notasyonlar v.s gibi bilgilerden ara ara bahsedeceğim. Yalnız çok önemli olan bir konuya burada değinmek istiyorum. C nin avantajlarını programlamayla birlikte görmek güzel ama C nin dezavantajlarını programlamadan önce bilmeliyiz ki bunlardan sakınalım. Öncelikle Tanımlayıcılardan bahsetmek istiyorum. Her derleyici ve assmbley için değişkenleri, sabitleri, etiketleri ve fonksiyon adlarını tanımlama kuralları vardır. Bu notasyonlara, tanımlayıcı denir. C++ da tüm tanımlayıcılar a, . . . , z - A, . . . , Z harfleri ile ya da alt çizgi "_" ile başlar. Bundan sonra rakam, harf, ya da alt çizgi kullanılabilir. ANCI C uyumlu derleyiciler 31 karaktere kadar tanımlayıcı kabul ederler fakat tanımlayıcının ilk sekiz karakterini kullanmayı kendimize alışkanlık etmeliyiz. Dikkat etmemiz gereken özelliklerden biri de kullandığımız ifadelerdeki büyük küçük harflerdir. C ve C++ büyük ve küçük harf duyarlılığına sahiptir. Kullandığımız ifadeleri birbirinden farklı ve aynı ifade olarak kullanıyorsak programımız hata verecektir. Bunu bir örnekle anlatayım:
ProgramPROGRAMprogRAMProgRamBu şekilde tanımlarsak hepsi birbirinden farklı ifadeler olarak C++ da okunacaktır. Biz Şunu alışkanlık edinmeliyiz; tanımlayıcılarımızın baş harfi büyük olacak. Büyük ve küçük harf kombinasyonlarının kullanılması ile önceden yapılan tanımlamalar bazen işi zorlaştırabilir. Eğer bu değişkenlerden birini kullanmak isterseniz, bu zamana kadar nasıl tanımladığınızı bilmeniz gerekir. Örneğin printf()`in PRINTF() olarak çağrılması durumunda " bilinmeyen tanımlayıcı " (Unknown identifier) hata mesajı vererek sizi uyarır. Buna benzer olarak %f ve %F kullanımı hata verdirecektir. Programlamayı yaparken bunlara dikkat etmemiz gerekecek. Çünkü bir değişkeni veya tanımlayıcıyı başta nasıl kullandıysanız üç, dört sayfa kod yazdıktan sonrada aynı şekliyle kullanmak zorundasınızdır. İşte burada en büyük handikap yaşanacaktır. Çünkü C/C++ derleyicileri her zaman hatanın nerde olduğunu göstermez. Bunu programcı kendisi satır satır takip ederek bulacaktır. Bundan dolayı bu söylediklerime baştan dikkat etmemiz gerekiyor.
Tavsiyeler:

İyi bir programlama yapabilmek için benim size olan tavsiyelerim; daha az kod kullanarak daha çok işlem yapabilme. Gerçi bunu yapsak zaten profesyonel oluruz
smile.gif
. Zaten C++ `ın paradigması da buradan geliyor. Aslında C++ da yapabileceğimiz tüm programları C de yapma olanağımız var ama bu bize hem fazla kod yazmayı gerektirecek hem de zaman kaybetmemize sebep olacak. Zaten bunlardan kaçındığımız için C++ diyoruz. Elimizde nesneye yönelik bir dil varken ve kullanacağımız fonksiyonlar içinde hazır olarak mevcutsa, tabi bize de bunun keyfini sürmek kalıyor. Tavsiyelerimden biride derslerde verdiğimiz örneklerin dışında aynı algoritmaya benzer farklı örnekler yapın. Öğrenmenin en iyi yolu yanlış yapmaktır. Bunu şöyle izah edeyim: eğer yanlış yapıyorsanız ve de o yanlışın kaynağını bulup düzeltebiliyorsanız, o an onu öğrenmişsiniz demektir. Tabi örnekler sizin için alıştırma olacaktır ve hafızanızda kalıcı bir yer tutacaktır. Bunca kodu başka türlü hafızada tutamayız. İlk başlarda sık sık not alınız, mümkün olduğunca da bol örnek yapınız. Örneklerinizi de kendiniz düşünüp kendi hayal gücünüzle oluşturursanız eminim bu işi başaracaksınızdır. Başta çok zor gelebilir ama başarı ter dökülmeden olmaz. Bu kısmı fazla uzatıp sizi daha başlamadan C/C++ dan uzaklaştırmak istemiyorum.
 
C++ çok zor bir dil gerçekten x)
 
Geri
Üst