Osmangazi Üniversitesinde Ders Notu olarak kullanılan temel bir C++ kilavuzudur. Hedef kitlesi matematikçiler olup, C++ diline yeni başlayan mühendislere de yol gösterebilir.
Anlatımda kavramlar üzerine çok durulmamıştır, adından anlaşılacağı üzere en sade hali ile verilmeye çalışılmıştır.
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
Osmangazi Üniversitesinde Ders Notu olarak kullanılan temel bir C++ kilavuzudur. Hedef kitlesi matematikçiler olup, C++ diline yeni başlayan mühendislere de yol gösterebilir.
Anlatımda kavramlar üzerine çok durulmamıştır, adından anlaşılacağı üzere en sade hali ile verilmeye çalışılmıştır.
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
C# Programlama dili ile ilgili daha önceden yazılmış konu anlatımı ve örnekleri belirli bir düzen içerisinde görmek için hazırlamış olduğum derslere ulaşabilirsiniz. C# Dersleri yazısı C# programlama dilini öğrenmek isteyen herkes için hazırlanmıştır.
C# Programlama dili ile ilgili daha önceden yazılmış konu anlatımı ve örnekleri belirli bir düzen içerisinde görmek için hazırlamış olduğum derslere ulaşabilirsiniz. C# Dersleri yazısı C# programlama dilini öğrenmek isteyen herkes için hazırlanmıştır.
2. KAYNAKLAR
C Programlama Dili, Şerafettin Arıkan, Seçkin Yayıncılık
C ve C++, Harvey M. Deitel, Paul J. Deitel, Sistem Yayıncılık, 2011
İşte C Programlama Dili, Rifat Çölkesen, Papatya
Yarıyıl Çalışmaları Sayısı Katkı
Ara Sınav 1 % 48
Ödev 1 % 12
Uygulama 0 % 0
Projeler 0 % 0
Pratik 0 % 0
Kısa Sınav 0 % 0
Yarıyıl Sonu Sınavı 1 %40
3. Bu dersin başarılı bir şekilde tamamlanmasıyla
yapabileceklerimiz:
Algoritma ve programlama mantığını anlamak,
Bir problemin akış diyagramını oluşturmak,
Akış diyagramı oluşturulmuş bir problemin programını gerçekleştirmek,
Programlama geliştirme ortamını kullanarak program yazmak.
4. HaftaKonu
1 Programlamaya giriş
2 Algoritma ve akış diyagramları
3 C dilinin yapısı, ekran çıktı komutları, değişkenler
4 Temel giriş komutları, diziler, dizgiler
5 Operatörler, karşılaştırma yapıları(if, if-else, switch)
6 Tekrarlı yapılar(for, while, do-while), break, continue, goto deyimler
7 Matematiksel işlemler ve hafıza yönetimi
8 Örneklerle genel tekrar, Ara sınav
9 Çözümlü örneklerle genel tekrar
10 Yapılar, sınıflar
11 Dosya işlemleri
12 Göstergeler (Pointer)
13 C# Programlama diline giriş
14 C# ile masaüstü ve web programlama
5. PROGRAMLAMAYA GİRİŞ
Bilgisayar Nedir?
Bilgisayar belli komutlara göre verileri işleyebilen ve çeşitli ortamlarda
depolayabilen bir makinedir. Temel bilgisayar mimarisi Şekil 1’de görülmektedir.
Şekil 1. Temel bilgisayar mimarisi
Bilgisayar en genel haliyle yazılım ve donanım olarak iki kısma ayrılabilir. Donanım
bilgisayarın tüm fiziksel parçalarıdır. Yazılım ise bilgisayar donanımının çalışabilmesi için
gerekli olan komutlar bütünüdür.
6. Program bilgisayarın belli bir hedefi/işlemi gerçekleştirmesine yönelik
komutlar bütünüdür.
Bilgisayarlar aslında oldukça gelişmiş elektronik devrelerdir. Örneğin
gelişmiş bir işlemcinin içerisinde yaklaşık 1.000.000.000 civarında transistör
7. Bilgisayar programları da aynı şekilde ikili sayı sistemiyle çalışır.
İkili sayı sistemiyle yazılmış bir programa makine dili adı verilir.
İşlemci tarafından çalıştırılan bütün programlar makine dilinde yazılmıştır.
Üst düzey programlama dilleri kullanılarak geliştirilmiş bir program makine diline dönüştürüldükten sonra çalıştırılabilir.
Özetle, Makine kodu (yada makine dili) bilgisayarın işlemcisine ne yapacağını direk olarak söyleyen okunabilirliği
düşük ve olabilecek en alt seviye programlama dilidir.
NOT: Kodun işlemciye direk geçmesi ve okunabilirliğinin azalması onu daha alt seviye yapar, okunabilirliği yüksekse üst seviye
programlama dilidir.
Makine kodunda arada hiçbir çevirme yoktur. Yani direk olarak CPU ile iletişim kurarsınız.
Bilgisayar işlemcisinin anladığı tek dil makine dilidir.
8. Programlama Dilleri
İşlemci tarafından çalıştırılan programa makine dili veya makine kodu denir.
Makine dili 0 ve 1’lerden oluşan ve insan tarafından yazılması, okunması, anlaşılması
ve değişiklik yapılması oldukça zor olan bir dildir.
Makine dilinde yazılmış örnek bir program aşağıda yer almaktadır. Aşağıdaki program
1024. ve 1025. adreslerdeki verileri çarpıp üzerine 1026. adresteki veriyi ekleyen ve
sonucu 1027. adrese kaydeden bir programdır.
1. 00010000000000000000010000000000
2. 00100100000000000000010000000001
3. 00100011000000000000010000000010
4. 00010001000000000000010000000011
9. Makine dili okunabilirliğinin ve
yazılışının kolaylaştırılması amacıyla
16’lık sayı sistemiyle (hex :
hexadecimal) ifade edilir.
Yanda 16 sayı düzeninde kodlanmış
örnek bir makine dili programı
görülmektedir.
:1000000083161F3085000730860083120301950197
:10001000A401A5019401A101A201A3011130A20034
:100020006128A20115109510910192019301061DFE
:10003000A1280518282885182B2805192E28851988
:100040003128051A34280618432886184A286D28AE
:100050000130A20037280230A20037280330A20066
:1000600037280430A20037280530A2003728910B2A
:100070001728920B17289514930A1308093C031D9F
:10008000172815148615910B1728920B1728940A18
:1000900074201128910B1728920B172894037420B1
:1000A000112815109510220889001408880083165D
:1000B000081555308900AA30890088140811831268
:1000C0000800151095108312220889008316081461
:1000D00083120808940074201128861115185120E5
:1000E00095186128742011281408A100211882286D
:1000F00086120617A50B7928A5010613A50B7D28E6
:10010000A501842886167928A10C21189128861229
:100110000617A50B8828A5010613A50B8C28A50199
:10012000932886168828A40A2408073C031D8428DF
:10013000A4018617A50B99288613A50B9C28A50159
:1001400008001130A2001408A30051200000A628C6
:00000001FF
10. Makine dilinde program yazılması ve hata takibi çok zor olduğu için komutların
kısaltmalarla (mnemonic) ifade edilebildiği bir dil geliştirilmiştir. Bu dil assembly
dilidir.
Assembly dilinde yazılan programlar assembler adı verilen dönüştürücü
programlarla makine diline dönüştürülür.
Makine diline göre daha anlaşılır ve kolay olan assembly dilinde de program
yazmak çok kolay değildir. Örnek olarak verilen 4 satırlık programın assembly
dilinde yazılmış hali aşağıdadır.
1. MOV A, ACC
2. MUL B, ACC
3. ADD C, ACC
4. STO ACC, X
1. 00010000000000000000010000000000
2. 00100100000000000000010000000001
3. 00100011000000000000010000000010
4. 00010001000000000000010000000011
Assembly Dili Makine Dili
11. Buradaki komutlar mov (move : taşı), mul (multiply : çarp), add (add : ekle), sto (store : depola)
şeklinde kısaltmalardır.
Ekrana Elektronik yazdıran bir programın x86 assembly kodu aşağıda verilmiştir.
SECTION .data
msg: db "Elektronik",10
len: equ $-msg
SECTION .text
global main
main:
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
12. Örnekten de anlaşılacağı gibi Assembly dilinde de program yazmak
oldukça zor ve zahmetlidir.
Bu nedenle daha çok günlük hayatta kullanılan kelimelerin yer aldığı
programlama dilleri geliştirilmiştir.
Makine dili ve assembly diline alt düzey diller denirken günlük hayatta
kullanılan ifadelerle programların yazıldığı dillere üst düzey diller denir.
Üst düzey dillere Fortran, Basic, Pascal, C gibi diller örnek olarak
verilebilir.
Şekil 2. Üst düzey ve alt düzey programlama dilleri
13. Hangi dilde yazılmış olursa olsun bir programın çalıştırılabilmesi için
makine koduna dönüştürülmesi gerekmektedir.
Bu işlem yapılırken assembly dilinde yazılan programların
dönüştürülmesinde assembler adı verilen programlar kullanılır.
Üst düzey dillerde yazılan programların makine koduna
dönüştürülmesinde ise derleyici (compiler) ve yorumlayıcılar
(interpreter) kullanılır. Bazı diller hem derleyici hem de yorumlayıcıya
sahiptir.
Derleyiciler bir programı bütünüyle ele alarak hatalara karşı denetler ve
makine koduna dönüştürür.
Yorumlayıcılar ise programın o anda çalıştırılacak satırını makine
dönüştürür.
14. Program Geliştirmenin Aşamaları
Bir bilgisayar programı geliştirilirken belli aşamaların takip edilmesi gerekir.
Bu aşamalar: problemin belirlenmesi, problemin analizi, algoritma ve akış
şemasının tasarımı, programın kodlanması (yazılması) ve test işletimi yani
denenmesidir. Bir program için bazen bu safhaların tümü veya bir kaçı
tekrarlanabilir.
1. Problemin Belirlenmesi
Bilgisayar programı geliştirilmesinde birinci aşama geliştirilecek programın
hangi problemle ilgili olduğudur. Problemin iyi belirlenmesi, eldeki verilerin
ve istenen verilerin anlaşılması gerekmektedir.
2. Analiz
Problemin belirlenmesinden sonra çözüm metodunun belirlenmesi
gerekmektedir. Hangi giriş verilerine karşılık hangi çıkış verilerinin istendiği
belirlenmelidir. Çözümün elde edilmesinde kullanılacak yöntem
belirlenmelidir. Bu amaçla benzer problemlerin çözümünden de
yararlanılabilir.
15. 3. Tasarım
Analiz safhasında belirlenen çözüm metodunun adımları detaylandırılır.
Programın ne tür bir akış mantığıyla ilerleyeceği belirlenir. Bu safhada
algoritma ve akış şemasının tasarımı yapılır
4. Kodlama
Tasarım safhasında belirlenen algoritma/akış şemasındaki adımlar
programın yazılacağı dilin komutları ve kuralları göz önünde bulundurularak
bulundurularak kod haline dönüştürülür.
5. Test İşletimi
Yazılan program çalıştırılarak, bütün olasılıklara göre testleri yapılır. Verilen
giriş verilerine karşı istenen çıkış verilerini doğru bir biçimde sağlayıp
sağlayamadığı tespit edilir. Varsa programın istisnai durumlarda ürettiği çıkış
tespit edilir. Bu testlere bağlı olarak programın eksiklikleri ve hataları
giderilerek son şekli verilir.