|
![]() |
|
|||||||
| Kayıt ol | Cezalilar | Tüm Albümler | Yardım | Üye Listesi | Ajanda | Arama | Bugünki Mesajlar | Forumları Okundu Kabul Et |
|
||
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
![]() Üyelik tarihi: Sep 2008
Üye No: 8
Mesajlar: 3,691
Konular: 1966
Referanslari: 5
Arkadaslari: (11)
Nerden: KüRDiSTaN
Meslek: pc emekcisi :)
Interests: ASİ
Biyografi: kece kudan
Cinsiyet: .
Kullandigi Tesekkür: 30 Aldigi Tesekkürler: 253
Tecrübe Puanı: 150
Aldigi Puanlar: 3620 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Ruh Hali:
Son Aktivitesi: Dün :
18:31
Toplam Online Süresi: 6 Gün 10 Saat 44 Dakika 11 Saniye
|
3 . BÖLÜM : GENEL KAVRAMLAR
ATOM KAVRAMI VE ATOM TÜRLERİ Bir programlama dilinde yazılmış programı en küçük parçalara bölmeye çalışalım. Öyle bir noktaya geleceğiz ki, artık bu parçaları daha da bölmeye çalıştığımızda anlamsız parçalar oluşacak. İşte bir programlama dilinde anlam taşıyan en küçük birime atom (token) denir. Atomlar daha fazla parçaya bölünemezler. Yazdığımız kaynak kod (program) derleyici tarafından ilk önce atomlarına ayrılır. (Tokenizing). Atom yalnızca C diline ilişkin bir kavram değildir. Tüm programlama dilleri için atom kavramı söz konusudur, ama farklı programlama dillerinin atomları birbirlerinden farklı olabilir. Atomları aşağıdaki gibi gruplara ayırabiliriz : 1. Anahtar Sözcükler (keywords, reserved words) Bu atomlar dil için belli bir anlam taşırlar. Değişken olarak kullanılmaları yasaklanmıştır. Yani programcı bu anahtar sözcükleri kendi tanımlayacağı değişkenlere isim olarak veremez. Standard ANSI C dilinde 32 tane anahtar sözcük bulunmaktadır.(Derleyici yazan firmalar kendi yazdıkları derleyiciler için ilave anahtar sözcükler tanımlayabilmektedir.) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Bazı programlama dillerinde anahtar sözcüklerin küçük ya da büyük harf olması fark etmemektedir. Ama C’de bütün anahtar sözcükler küçük harf olarak tanımlanmıştır. C büyük harf küçük harf duyarlığı olan bir dildir. (case sensitive) bir dildir. Ama diğer programlama dillerinin çoğunda büyük - küçük harf duyarlığı yoktur. (case insensitive) Örneğin, programcı olarak biz kullanacağımız bir değişkene “register” ismini vermeyiz. Çünkü bu bir anahtar sözcüktür. (C dili tarafından rezerve edilmiştir) Ama buna karşın biz istediğimiz bir değişkene REGISTER, Register, RegisTER vs. gibi isimler verebiliriz, çünkü bunlar artık anahtar sözcük sayılmazlar. Anahtar sözcük olan yalnızca tamamen küçük harf ile yazılan "register" dir. 2. İsimlendirilenler (identifiers) Değişkenlere, fonksiyonlara, makrolara, yapı ve birliklere vs. programlama dili tarafından belirlenmiş kurallara uyulmak şartıyla, istediğimiz gibi isim verebiliriz. Bu atomlar genellikle bellekte bir yer belirtirler. C dilinde değişkenlerin isimlendirilmesine ilişkin kurallar vardır. Bunu ileride detaylı olarak göreceğiz. 3. Operatörler (Operators) Operatörler önceden tanımlanmış birtakım işlemleri yapan atomlardır. Örneğin +, -, *, / , >=, <= birer operatördür. Programlama dillerinde kullanılan operatör sembolleri birbirinden farklı olabileceği gibi, operatör tanımlamaları da birbirinden farklı olabilir. Örneğin birçok programlama dilinde üs alma operatörü tanımlanmışken C dilinde böyle bir operatör yoktur. Üs alma işlemi operatör ile değil bir fonksiyon yardımıyla yapılabilir. C dilinde bazı operatörler iki karakterden oluşmaktadır bu iki karakter bitişik yazılmalıdır aralarına space karakteri koyarsak operatör anlamını yitirir. 4. Sabitler (Constants) Doğrudan işleme sokulan değişken bilgi içermeyen atomlardır. Örneğin SAYAC = SON + 10 gibi bir ifadede 10 sabiti doğrudan SON değişkeni ile toplanmaktadır. 5. Stringler (String literals) İki tırnak içindeki ifadelere string denir. Stringler programlama dillerinin çoğunda tek bir atom olarak alınırlar, daha fazla parçaya bölünemezler. “STRİNGLER DE BİRER ATOMDUR” ifadesi bir stringdir. 6. Ayıraçlar ya da noktalama işaretleri (Separators, Punctuators, Delimiters) Yukarıda sayılan atom sınıflarının dışında kalan tüm atomları bu gruba sokabiliriz. Genellikle diğer atomları birbirinden ayırma amacıyla kullanıldıkları için ayıraç olarak isimlendirilirler. örnek bir C programının atomlarına ayrılması: Aşağıda 1 den kullanıcının klavyeden girdiği bir tamsayıya kadar olan tamsayıları toplayan ve sonucu ekrana yazdıran bir C programı görülüyor. Bu kaynak kodu atomlarına ayıralım. Amacımız söz konusu programı açıklamak değil, atomlar hakkında gerçek bir programdan örnek vermek. #include <stdio.h> main() { int number, k, total = 0; printf("lütfen bir sayı giriniz\n"); scanf("%d", &number); for(k = 1; k<= number; ++k) total += k; printf("toplam = %d\n", toplam); return 0; } # include < stdio.h > main ( ) { int number , k , total = 0 ; printf ( "lütfen bir sayı giriniz\n" ) ; scanf ( "%d" , & number ) ; for ( k = 1 ; k <= ; ++ k ) total += k ; printf ( "toplam = %d\n" , toplam ) ; } programda yer alan atomlardan anahtar sözcükler include int for return isimlendirilenler (identifiers / variables) main n k toplam printf scanf operatörler = <= ++ += sabitler 0 1 0 stringler ("lütfen bir sayı giriniz\n" ) "%d" "toplam = %d\n" ayıraçlar noktalama işaretleri < > ( ) , ; { } NESNE (OBJECT) Bellekte yer kaplayan ve içeriklerine erişilebilen alanlara nesne denir. Bir ifadenin nesne olabilmesi için bellekte bir yer belirtmesi gerekir. Programlama dillerinde nesnelere isimlerini kullanarak erişebiliriz. a = b + k; örneğinde a, b ve k birer nesnedir. Bu ifadede a nesnesine b ve k nesneleriine ait değerlerin toplamı atanmaktadır. sonuc = 100; sonuc isimli nesneye 100 sabit değeri atanmaktadır. nesnelerin bazı özelliklerinden söz edilebilir : İsimleri (name) : Nesneyi temsil eden karakterlerdir. Nesnelere isimleri programcı tarafından verilir. Her dil için nesne isimlendirmede bazı kurallar söz konusudur. VERGI = 20000; (Burada VERGI bir nesne ismidir.) Nesne ile Değişken kavramları birbirine tam olarak eşdeğer değildir. Her değişken bir nesnedir ama her nesne bir değişken değildir. Değişkenler, programcının isimlendirdiği nesnelerdir. Peki programcının isimlendirmediği de nesneler var mıdır? Evet, göstericiler konusunda da göreceğimiz gibi, değişken olmayan nesneler de vardır, nesne kavramı değişken kavramını kapsamaktadır. Değerleri (value) : Nesnelerin içlerinde tuttuklerı bilgilerdir. Başka bir deyişle nesneler için bellekte ayrılan yerklerdeki 1 ve 0 ların yorumlanış biçimi ilgili nesnenin değeridir. Bu değerler programlama dillerinin kurallarına göre , istenildikleri zaman programcı tarafından değiştirilebilirler. C dilinde bazı nesneler ise bir kez değer verildikten sonra bir daha değiştirilemezler. Türleri (Type) : Nesnenin türü derleyiciye o nesnenin nasıl yorumlanacağı hakkında bilgi verir. Yine bir nesnenin türü onun bellekteki uzunluğu hakkında da bilgi verir. Her türün bellekte ne kadar uzunlukta bir yer kapladığı programlama dillerinde önceden belirtilmiştir. Bir nesnenin türü, ayrıca o nesne üzerinde hangi işlemlerin yapılabileciği bilgisini de verir. Tür nesnenin ayrılmaz bir özelliğidir, türsüz bir nesne kavramı söz konusu değildir. Türleri ikiye ayırabiliriz : 1. Önceden tanımlanmış veri türleri (default types) Bu türler programlama dilinin tasarımında var olan veri türleridir. Örneğin C dilinde önceden tanımlanmış 11 ayrı veri türü vardır. 2. Programcı tarafından tanımlanan veri türleri (user defined types) Programlama dillerinin çoğunda programcının tür tanımlamasına izin vermektedir. Örneğin C dilinde yapılar, birlikler, bit alanları, C++ dilinde de sınıflar programcı tarafından tanımlanan veri türleridir. Programlama dillerindeki tür tanımlamaları birbirlerinden farklı olabilir. Örneğin bazı programlama dillerinde Boolean isimli (Mantıksal Doğru ya da Yanlış değerlerini alan) bir türdür tanımlanmıştır. Ama C dilinde böyle bir tür doğrudan tanımlanmamıştır. Faaliyet alanları (scope / visibility) : Nesnenin, dilin derleyicisi ya da yorumlayıcısı tarafından tanınabildiği program alanıdır. (ileride detaylı inceleyeceğiz) Ömürleri (storage duration / lifespan) : Programın çalıştırılması sırasında nesnenin varlığını sürdürdüğü zaman parçasıdır. (İleride detaylı inceleyeceğiz) Bağlantıları (linkage) Nesnelerin programı oluşturan diğer modüllerde tanınabilme özelliğidir. (İleride detaylı inceleyeceğiz) İFADE (Expression) Değişken, operatör ve sabitlerin kombinasyonlarına ifade denir. a + b / 2 c * 2, d = h + 34 var1 geçerli ifadelerdir. DEYİM (statement) Derleyicinin, bilgisayara bir iş yaptıracak şekilde kod üretmesine (yani icra edilebilecek bir kod üretmesine) yol açan ifadelere deyim denir. Örneğin C dilinde ; ile sonlandırılmış ifadelere deyim diyoruz. result = number1 * number2 bir ifadedir. Ancak result = number1 * number2; bir deyimdir. Bu deyim derleyicinin, number1 ve number2 değişkenlerin değerlerinin çarpılarak, elde edilen değerin result değişkenine atanmasını sağlayacak şekilde kod üretmesine neden olacaktır. Deyimleri İleride detaylı olarak inceleyeceğiz. Nesne gösteren ifadelere denir. Bir ifadenin sol taraf değeri olabilmesi için mutlaka bir nesne göstermesi gerekir. Bir ifadenin Sol taraf değeri olarak isimlendirilmesinin nedeni o ifadenin atama operatörünün sol tarafına getirilebilmesidir. Örneğin a ve b nesneleri tek başına sol taraf değerleridir. Çünkü bu ifadeler atama operatörünün sol tarafına getirilebilirler. Örneğin a = 17, ya da b = c * 2 denilebilir. Ama a + b bir sol taraf değeri değildir. Çünkü a + b = 25 denilemez. Değişkenler her zaman sol taraf değeridirler. sabitler sol taraf değeri olamazlar. SAĞ TARAF DEĞERİ (Rigth Value) Daha az kullanılan bir terimdir. Nesne göstermeyen ifadeler sağ taraf değeri olarak isimlendirilirler. Tipik olarak, atama operatörünün sol tarafında bulunamayan yalnızca sağ tarafında bulunabilen ifadelerdir. Sabitler her zaman sağ taraf değeri oluştururlar. (Bir ifade sol taraf değeri değilse sağ taraf değeridir. Sağ taraf değeri ise sol taraf değeri değildir.Her ikisi birden olamaz. Yani atama operatörünün sağ tarafına gelebilen her ifade sağ taraf değeri olarak isimlendirilmez.) Sağ taraf değeri, genellikle bir ifadenin nesne göstermediğini vurgulamak için kullanılır __________________ |
|
|
|
![]() |
| Bookmarks |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cvpl | Son Mesaj |
| genel c anlatimi | Gulasor | C / C++ / C# | 0 | 09-20-2008 15:18 |
| Bölüm : Sayi sistemleri | Gulasor | C / C++ / C# | 0 | 09-20-2008 15:17 |
| Genel "C" anLatımI..! | Gulasor | C / C++ / C# | 0 | 09-20-2008 15:15 |
| Genel "C" anLatımI..! | Gulasor | C / C++ / C# | 0 | 09-20-2008 15:14 |
![]() |
Design By: JB-Team
Powered by JBulletin® JiyanBoard Version
Copyright ©2007 - 2009, Jelsoft Enterprises Ltd. |
![]() |