Procedure Based Programlama Procedural Programming Subprograms, functions/procedures kullanilmak suretiyle programi kisimlara ayirmak. Programlama karmasikligi procedure lar icinde gizlenir Data karmasikligi built-in data types, user-defined data types, static type checking, run-time type checking ve abstract data type (verinin ve veriyi uzerinde islem yapan fonksiyonlarin ayni modulde olmasi) 10/7/2004 Nesneye Yonelik Programlama 1.1 Object-Oriented Oriented Design (OOD) Nesneye Yonelik Design Object ler programlamada gercek dunya nesnelerini temsil ederler (gercek nesnelerin abstract temsili) Object, state information (local variables), ve bu local variable lar uzerinde islem yapan operations (methods) lardan olusur. Objectler arsindaki benzerlikle class lar ve class larin hierarsisileri ile belirlenir Sistem analizi, dizayni ve gerceklenmesi birbiriyle etkilesen bir dizi object lerle olur 10/7/2004 Nesneye Yonelik Programlama 1.2 OOD Ana Ozellikleri Encapsulation Design tedaylari mumkun oldugu kadar module ler icine konur. Module un kullanicisi module un ic tasarimini bilme zorunlulugu yoktur. Inheritance Software reusability (var olan software uzerine yeni seylerin kolayca eklenebilmesi) Var olan class lara yeni yeneteklerin kazandirilmasi 10/7/2004 Nesneye Yonelik Programlama 1.3 OOD Ana Ozellikleri Polymorphism Farkli durumlarda variable, function, ve object gibi varliklara farkli formlar (anlamlar) kazandirabilmek 10/7/2004 Nesneye Yonelik Programlama 1.4
Programming Language s lerin Tarihcesi C Programming Language 1969 da Bell Lab. Larinda PDP-11 minicomputer icin system programciligi amaciyla gelistirildi. UNIX operating system (isletim sistemi) nin gerceklestirilmesinde kullanildi UNIX in onemli bir kisminin (%90) C diliyle yazilmasi onun diger bilgisayarlara tasinmasini kolaylastirildi (portability) UNIX su an akademic ortamlarda en cok kullanilan isletim sistemidir. 10/7/2004 Nesneye Yonelik Programlama 1.5 10/7/2004 Nesneye Yonelik Programlama 1.6 C++ nin orgini 1980 yilinda Bjarne Stroustrup (Bell Lab.) object oriented ozelliklerini destekleyen ve C nin halefi olarak C++ yi gerceklestirildi C++ herseyiyle yeni bir dil olmaktan ziyade C nin bir superset i olarak dizayn edildi Ilk versiyonu 1985 de cikti 10/7/2004 Nesneye Yonelik Programlama 1.7 C++ in onemli ozellikleri C++ nin bir superset idir. Kullanici yeni veri tipleri class tanimlayabilir data hiding Nesnelere ilk degerler kullanici bunun icin kod yazmamissa dahi otomatik olarak yapilir Implicit type conversion Class lar arasinda inheritance Kullanici kontrollu memory (bellek) yonetimi Operator overloading icin mekanizmalar Portable ve optimezed kodlara destek icin standard library ler mevcut 10/7/2004 Nesneye Yonelik Programlama 1.8
C++ ozellikleri devam Symbolic constants (sabitler) Inline functions Default function arguments Function isimlerinin overload olabilme yetenegi Reference type (object ler icin aliases lar tanimlayabilme) Exception handling Generic programming destegi (templates) Standart Template Library (STL) 10/7/2004 Nesneye Yonelik Programlama 1.9 C++ Icin Genel Gozlemler C++ pure object-oriented language degil. Hybrid bir dil (hem procedure-oriented, hem de objectoriented ozelliklere sahip) C++ code eger itina ile yazilmazsa anlasilmasi oldukca zor olabilir. Eger uygun bir sekilde kod gerceklenirse, kompleks ve buyuk projelerin gerceklenmesinde C++ oldukca guclu bir dil 10/7/2004 Nesneye Yonelik Programlama 1.10 Java Programming Language 1995 yilinda Sun Microsystems tarafindan portable kod gelistirmek icin gelistirildi (bir platform icin yazilan Java kod degistirilmeksizin baska bir platform da calisabilme yetenegi) Genellikle java program lari bytecode olarak derlenip surume cikartilir. Her bir platform bytecode lari yorumlayan bir standard virtual machine ye sahip. Performnce (machine language le compile edilmis kod la kiyaslandiginda) 3-20 kez daha yavas calisir Java C ve C++ nin ozelliklerini bir kismini almistir. En buyuk fark pointer islemlerinin olmayisi ve automatic garbage collection 10/7/2004 Nesneye Yonelik Programlama 1.11 10/7/2004 Nesneye Yonelik Programlama 1.12 ozelliklerine sahip olmasi
Preprocessor Directives C++ ile yazilan bir program genelde compile edilmeden once preprocessor asamasindan gecer. Preprocessor directive leri # ile baslar. macro definitions conditional compilation inclusion of standard header files #include <iostream.h> directive I standard input/output header file in compile (derleme) esnasinda goz onunde tutulmasini saglar 10/7/2004 Nesneye Yonelik Programlama 1.13 main( ) function Her C++ program main( ) function unu tanimlamali. int main( ) {.} bir function definition return 0; main( ) execution in basarili oldugunu gostermek icin main( ) 0 degerini geri dondurur 10/7/2004 Nesneye Yonelik Programlama 1.14 cout Cout << Welcome to C++!\n ; tirnak icerisindeki text i standard output stream object ( screen) ine goruntulenmesi icin yollar << stream insertion operator u temsil eder \n escape sequence \n yeni satir basina git (new line) \t yerlestir (horizontal tab) \r ayni satirin basina git \a bell sound \\ backslash (\) character 10/7/2004 \ double quote Nesneye ( ) character Yonelik Programlama 1.15 10/7/2004 Nesneye Yonelik Programlama 1.16
Stream input (cin( cin) cin >> intl; variable intl nin input stram object (cin) okununmasini saglar >> stream extraction operator endl newline i ifade eder ( \n ) ve output buffer in flush olmasini saglar 10/7/2004 Nesneye Yonelik Programlama 1.17 10/7/2004 Nesneye Yonelik Programlama 1.18 Variable Declaration Variable isimleri letter,digit ve underscore ( _ ) dan olusturdugu bir karakter dizisi ile belirlenir Digit le variable ismi baslamaz Not: underscore la variable ismi baslatmak iyi degil, cunku compiler underscore la baslayan degiskenler kullanabilir 10/7/2004 Nesneye Yonelik Programlama 1.19 10/7/2004 Nesneye Yonelik Programlama 1.20
Default streams File lar uzerindeki islemler stream ler vasitasiyle olur Stream data flow (veri akisi) anlamina gelir 3 tane standard stream var, bunlar default olarak su devices lara yonlendirilmistir. Cout (ekran) Cin (klavye) Cerror (ekran) Stream ler iostream.h de declare edilmislerdir C++ da stream ler object lerle temsil edilirler 10/7/2004 Nesneye Yonelik Programlama 1.21 10/7/2004 Nesneye Yonelik Programlama 1.22 C++ Arithmetic Operators Operation C++ Operator Ornek Addtion + f + 7 Substraction - p - c Multiplication * b * m Division / x / y Modulus % r % s 10/7/2004 Nesneye Yonelik Programlama 1.23 Equality ve Relational Operators Operators Ornek Anlami == x == y x, ye esit!= x!= y x, y den farkli > x > y x, y den buyuk < x < y x, y den kucuk >= x >= y x, y den buyuk/esit <= x<=y x, y den kucuk/esit 10/7/2004 Nesneye Yonelik Programlama 1.24
10/7/2004 Nesneye Yonelik Programlama 1.25 10/7/2004 Nesneye Yonelik Programlama 1.26 Yeni tarz Headers ve Namespaces Yeni C++ standard a gore header files lar.h takisini atarlar. #include <iostream> Coklu kullanilan degiskenlerdeki karmasayi onlemek icin C++ namespaces kavrami getirdi. cin ve cout u kullanabilmek icin Using namespace std; yada sdt::cin ve std::out 10/7/2004 Nesneye Yonelik Programlama 1.27 # include <iostream> //introduces namespace std using namespace std; // creates new namespace namespace somenumbers{ int a =20; float b = 0.00; } int main (void) { int a = 100; float b = 3.1421; a. somenumbers::a somenumbers::b } 10/7/2004 Nesneye Yonelik Programlama 1.28