Bir hafıza hücresinin adres bilgisini tutmaya yarayan değiģkenlere iģaretçi adı verilir. ĠĢaretçiler aģağıdaki gibi tanımlanırlar.

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Bir hafıza hücresinin adres bilgisini tutmaya yarayan değiģkenlere iģaretçi adı verilir. ĠĢaretçiler aģağıdaki gibi tanımlanırlar."

Transkript

1 ĠġARETÇĠLER Bir hafıza hücresinin adres bilgisini tutmaya yarayan değiģkenlere iģaretçi adı verilir. ĠĢaretçiler aģağıdaki gibi tanımlanırlar. ĠĢaretçi türü ĠĢaretçi değiģkeninin ismi int * p ĠĢaretçi sembolü Yukarıda tam sayı türünden bir işaretçi tanımlanmıştır. Bu işaretçiye adres atamak için öncelikle hafızaya yerleştirilmiş bir değişkene sahip olmanız gerekir. Örneğin aşağıdaki kod bloğunda sayi değişkeninin adresi & operatörü kullanılarak getirilmekte ve bu değer p işaretçisi içerisine atanmaktadır. 3. int sayi= 123; 4 5. int* p = &sayi; cout<<p; 8. } sayi p Temsili Hafıza Görüntüsü Program 1 Yukarıdaki kod parçasının hemen sağında temsili hafıza görüntüsü verilmiştir. Burada hafıza hücrelerine sahip olan değişkenin adı, hücrenin adresi ve hücrede bulunan sayısal değer yer almaktadır. Hafıza şeklinden sayi değişkeninin 2008 numaralı adres hücresinde bulunduğu görmekteyiz (Tam sayılar 4 byte yer kaplar yani sayi değişkeni adreslerini kaplamaktadır). Aynı şekilde p işaretçisi de bir değişken olduğu için hafızada belirli bir alan kaplamaktadır. İşaretçinin tuttuğu değere dikkat edersek sayi değişkeninin bulunduğu hafıza hücresinin adresi olduğunu görürüz. O zaman 7.satırdaki kod işletildiğinde ekrana çıkan değer aşağıdaki gibi olacaktır.

2 İşaretçi türü ĠĢaretçilerin tuttukları adrese gösterdiği veya iģaret ettiği adres adı verilmektedir. ĠĢaretçi türü, iģaretçinin hafızada kapladığı alanı belirtmek yerine iģaretçinin gösterdiği adreste bulunan verinin türünü belirtmektedir. O zaman bu bilgiye iģaretçinin türünden çok iģaretçinin gösterdiği verinin türü demek daha doğru olur. ĠĢaretçinin tuttuğu adres bilgisini ekrana çıkarma iģlemini gördük. ĠĢaretçinin gösterdiği adreste bulunan veriyi ekrana çıkarmak için * operatörü kullanılmaktadır. 3. int sayi= 123; 4 5. int* p = &sayi; cout<<p<<endl; cout<< *p; 10. } sayi p Temsili Hafıza Görüntüsü Program 2 Ekran Çıktısı Yukarıdaki kodun 7. Satırında işaretçinin tuttuğu değer ekrana çıkartılırken 9. Satırda işaretçinin gösterdiği değer ekrana çıkmaktadır. Ekran çıktısı aşağıda verilmiştir. Aynı Ģekilde * operatörü ile iģaretçinin gösterdiği adresteki içerik değiģtirilebilmektedir. Örneğin aģağıdaki kodun 9.satırında p iģaretçisinin gösterdiği adresteki 4 baytlık alana 44 değeri atamaktadır. Yani sayi değiģkeninin değerini 44 yapmaktadır. 3. int sayi= 123; 4 5. int* p = &sayi; cout<<sayi; *p = 44; cout<<sayi; 12. } Program 3 sayi p Satırın Sonundaki Temsili Hafıza Görüntüsü sayi p Satırın Sonundaki Temsili Hafıza Görüntüsü Ekran Çıktısı

3 * Operatörü * operatörü iģaretçinin gösterdiği adreste bulunan veri üzerinde iģlem yapmamızı sağlamaktadır. Bu iģlem veriyi çekmek olabileceği gibi veriye atama iģlemi de olabilir. Örneğin aģağıdaki kodu dikkate alalım. Kodumuzun 5. Satırında p iģaretçisine sayi1 değiģkeninin adresini atanmaktadır. Hemen ardından 6. satırda p iģaretçisinin gösterdiği adrese sayi2 değiģkenin değeri atanmaktadır. Bu iģlemler ile dolaylı olarak sayi1 değiģkenin değerini de değiģtirmiģ olduk. Derleyici bu iģlemi yaparken p iģaretçisinin sayi1 değiģkenini gösterdiğini bilmemektedir. Derleyici sadece p iģaretçisinin bir adres tuttuğunu ve bu adreste bir tam sayı bulunduğunu bilmektedir. ĠĢaretçinin soluna * operatörünü yerleģtirdiğimizde de derleyici p iģaretçisinin gösterdiği adrese eriģim yapacaktır. 6.Satırda yapılan eriģim iģlemi atama için kullanılmıģtır. 3. int sayi1= 123; 4. int sayi2 = 12; 5. int* p = &sayi1; 6. *p = sayi2; 7. cout<< p<<endl; 8. cout<<*p<<endl; 9. p = &sayi2; 10. *p+= 44; 11. cout<<sayi1<<endl; 12. cout<<sayi2<<endl; 13. } Program 4 sayi sayi p Satır Sonundaki Temsili Hafıza Görüntüsü sayi sayi p Satır Sonundaki Temsili Hafıza Görüntüsü sayi sayi p Satır Sonundaki Temsili Hafıza Görüntüsü Programın 7.satırında p iģaretçisinin tuttuğu değer (adres bilgisi) ekrana çıkartılmaktadır. 8. Satırda ise p iģaretçisinin gösterdiği adreste bulunan tam sayı ekrana çıkarmaktadır. Bir sonraki satırda ise p iģaretçisine atama yapılmaktadır. Diğer bir deyiģle iģaretçinin tuttuğu adres değeri değiģtirilmektedir. p iģaretçisi artık sayi2 değiģkenini göstermektedir. 10.satırda p iģaretçisinin gösterdiği veriye 44 eklenmektedir. p iģaretçisi son olarak sayi2 değiģkenini göstermekte idi bu yüzden sayi2 değiģkeni 44 arttırılarak 56 olacaktır (Derleyici * operatörünü += operatöründen daha önce iģlemektedir).

4 ĠĢaretçiler iki yönlüdür. Yani iģaretçi değiģkeni üzerinde iģlem yapılabilirken ayrıca iģaretçinin gösterdiği veri üzerine de iģlem yapılabilmektedir. Örneğin aģağıdaki Program 5 in 4. Satırında p iģaretçisine atama yapılırken, 5.satırda iģaretçinin gösterdiği yere atama yapılmaktadır. 6.satırda iģaretçinin tuttuğu adres değeri ekrana çıkartılırken 7.satırda iģaretçinin gösterdiği değer ekrana çıkartılmaktadır. Dikkat edilmesi gereken diğer bir kural da iģaretçinin tanımlandığı satırda yapılan atama iģlemi iģaretçiye yapılmaktadır. * operatörü bu durumda değiģkenin türünü belirtmektedir atama iģleminde bir etkisi yoktur. Yani * operatörü iģaretçinin tanımlandığı satırda sadece iģaretçinin türünü belirtir. Örneğin Program 5 in 4.satırında iģaretçiye atama yapılmaktadır. sayi1 değiģkeninin adresi p iģaretçisi içerisine atanmaktadır. Program 6 da ise iģaretçiye atama iģlemi 5. satırda yapılmaktadır. Burada iģaretçinin solunda * operatörünü görmemekteyiz. 3. int sayi1= 123; 4. int* p = &sayi1; 5. *p = 33; 6. cout<< p<<endl; 7. cout<<*p<<endl; 8. *p+= 44; 9. } 3. int sayi1= 123; 4. int* p; 5. p = &sayi1; 6. *p = 33; 7. cout<< p<<endl; 8. cout<<*p<<endl; 9. } Program 5 Program 6 Hafıza ĠĢaretçileri kullanmak için hafızanın nasıl kullanıldığını bilmemiz gerekir. Bu kısımda amacım sizlere C++ dilinde hafızanın kullanılmasına dair temel bazı bilgiler vermektir. Ġlerleyen bölümlerde bu konuya tekrardan değineceğiz. Ġlk olarak bir tamsayının hafızada nasıl saklandığını görelim. 3. int sayi1= ; 4. int sayi2 = 123; 5. } Program 7 sayi sayi Satır Sonundaki Temsili Hafıza Görüntüsü Program 8 deki sayi1 değiģkenine değeri atanmıģtır. Biliyoruz ki bu değeri onluk sayı sistemi formu ile hafızada saklayamayız. Bunun için derleyici onluk sistemdeki sayımızı, ikili sistemine çevirmektedir. Sonuç aģağıdaki gibi olacaktır. sayi1 1.bayt 2.bayt 3.bayt 4.bayt sayi2 1.bayt 2.bayt 3.bayt 4.bayt

5 sayısını temsil etmek için 32 bite ihtiyacımız olduğundan bütün bitleri kullandık fakat 123 sayısını temsil etmek için 7 bit gerektiğinden kalan bütün bitlere (0-25 numaralı bitler) 0 değeri atanmıģtır (32 bitlik iģlemcili sistemlerde tam sayılar 32 bit ile temsil edilmektedir). Temsili hafıza görüntüsünde sayi1 değiģkeninin 2008 ile 2011 hücreleri arasında olduğu görülmektedir. 32 bitlik değerimizin bu alana yerleģimi Ģekilde gösterilmiģtir. Dikkat edilecek olursa her bayt hafızaya ters sıra ile yerleģtirilmiģtir. Bu yerleģtirme biçimine little-endian adı verilmektedir (intel iģlemciler little-endian yöntemi ile çalıģmaktadır). sayi1 1.bayt 2.bayt 3.bayt 4.bayt Hafıza Sayi2 1.bayt 2.bayt 3.bayt 4.bayt Hafıza AĢağıdaki kodun 4. satırında p iģaretçisine sayi1 değiģkeninin adresi atanmıģtır. Bu iģlemler sonucunda hafızanın temsili görüntüsü Ģekildeki gibi olmaktadır. ġekle dikkat edecek olursak sayi1 değiģkeni dört adet bellek hücresini kaplamaktadırs. Fakat derleyici sayi1 değiģkeninin adresi olarak bize 2008 sayısını getirmektedir. Eğer p iģaretçisinin adresini isteseydik derleyici bize 2004 sayısını getirecekti. Bir değiģkenin adresi istendiğinde derleyici bizlere değiģkenin baģlangıç adresini getirir.

6 3. int sayi1= ; 4. int *p = &sayi1; 5 *p=144; 6. } Program 9 sayi1 p Satır Sonundaki Temsili Hafıza Görüntüsü 5.satırda ise p iģaretçisinin gösterdiği hafıza alanına 144 sayısı atanmaktadır. Derleyici p iģaretçisinin bir tam sayı gösterdiğini bilmektedir. Bu yüzden 144 sayısını 2008 ile 2011 numaralı hafıza hücrelerine Ģekildeki gibi yerleģtirecektir bayt 2.bayt 3.bayt 4.bayt sayi1 p 5.Satır Sonundaki Temsili Hafıza Görüntüsü İşaretçi Dönüşümü (pointer cast) DeğiĢkenler arası dönüģüm yapıldığını biliyoruz. Aynı iģlem iģaretçiler arasında da yapılabilmektedir. Fakat bu iģlem daha farklı sonuçlar üretmektedir. Öncelikle iģaretçilerin türü aslında iģaretçilerin gösterdiği verinin türünü belirtmektedir. Bütün iģaretçiler aslında yapısal olarak aynıdır. Sonuç olarak bütün iģaretçiler adres bilgisi tutmaktadır. 32

7 bitlik bir sistemde maksimum hafıza adresi arasında değerler alabildiği düģünülürse, böyle bir bilgiyi saklamak için 4 baytlık bir alan bize yeterli olacaktır. Buradan çıkartacağımız sonuç iģaretçilerin gösterdiği verinin türü ne olursa olsun iģaretçinin hafızada kapladığı alan sadece 4 bayttır ve bu alan içerisinde de arasındaki sayılar yer alır. ĠĢaretçiler ile unsigned int türündeki değiģkenler hafızada aynı Ģekilde saklanmaktadır. Ġkisi de dört baytlık alan kaplar ikisi de aralığında tam sayı değerler alabilirler. ĠĢaretçiler arasındaki dönüģüm den kastedilen aslında iģaretçilerin gösterdikleri verinin tipini değiģtirmektir. Örneğin bir iģaretçi tam sayıyı gösterirken aynı adresi karakter türünden bir iģaretçiye atabiliriz. 3. int sayi1= ; 4. char *p = (char*) &sayi1; 5 *p= 44; 6. } Program sayi1 p 4.Satır Sonundaki Temsili Hafıza Görüntüsü Yukarıdaki kodun 4. Satırında sayi1 değiģkenin adresi derleyiciden isteniyor. Derleyici adresi int* türünden bir iģaretçiye atanacak Ģekilde getirmektedir. (char*) komutu yazılarak bu adresin karakter gösteren bir iģaretçiye atanması sağlanıyor. DönüĢüm iģlemi (char*) komutu ile gerçekleģmektedir. Bu komutu kullanmadığımızda derleyici yaptığımız iģlemin tehlikeli olduğunu bildiren bir hata verecektir. DönüĢüm komutunu yerleģtirerek derleyiciye yaptığımız iģten emin olduğumuzu belirtmekteyiz. 5.Satırda p iģaretçisinin gösterdiği yere 44 sayısını atıyoruz. Derleyici bu iģlemi yaparken p iģaretçisinin türüne bakar ve karakter türünden bir veriyi gösterdiğini görür. Bu yüzden 2008 numaralı hafıza hücresine 44 sayısını yazar. Sonuç aģağıdaki gibi olur sayi1 p 5.Satır Sonundaki Temsili Hafıza Görüntüsü

8 AĢağıdaki kodu inceleyelim. 3. ve 4. satırlarda iki karakter değiģkeni oluģturulup bunlara ilk değerler atanıyor. Hemen ardından k2 değiģkeninin adresi p iģaretçisi içerisine atanıyor. ĠĢaretçimizin türü int olduğu için adres alırken dönüģtürme yapıyoruz. Programın 6.satırında p iģaretçisinin gösterdiği alana 0 değeri atanıyor. P iģaretçisini tanımlarken derleyiciye onun tam sayı gösterdiği belirtmiģtik. Bu yüzden derleyici numaralı adreslere 0 değerini atayacaktır. 3. char k1= 'A'; 4. char k2= 'B'; 5 int* p = (int*)& k2; 6. *p = 0; 7. } Program k k p 5.Satır Sonundaki Temsili Hafıza Görüntüsü k k p 6.Satır Sonundaki Temsili Hafıza Görüntüsü Dikkat edecek olursak hafızanın bize ait olmayan hücrelerine de veri ataması yaptık. ĠĢaretçiler programcıya büyük bir güç vermektedir. Onlar sayesinde hafızaya direk eriģim mümkün olmaktadır. Fakat bu güç beraberinde büyük riskleri de getirmektedir. Az önce olduğu gibi yanlıģ kullanıldığında iģaretçiler çok büyük problemlere yol açabilirler ve 2011 numaralı hücrelerde programın akıģı için önemli olan veriler olabilirdi. Bu hücrelerin değerini değiģtirmek programın iģleyiģini bozabilir. Daha da kötüsü, derleyici gramer olarak bir hata bulamadığı için program çalıģacaktır ve hatanın konumunu bulmak programcı açısından gittikçe zorlaģacaktır. ĠĢaretçilerin doğru kullanımı için pratik yapmak Ģarttır.

9 Adres Atanmamış İşaretçilerin Tehlikesi ġu ana kadar kullandığımız iģaretçilerin gösterdiği veriye eriģmeden önce iģaretçiye kullanımda olan bir adresi atadık. Bu yöntem aslında programcılık hayatımız boyunca uymamız gereken çok önemli bir kuraldır. Çünkü iģaretçiler ilk olarak tanımlandığında diğer değiģkenler gibi bilinmeyen bir değer alacaktır. Bu değeri legal bir adres kabul edip içerisindeki veriye eriģmeye çalıģırsak çok büyük problemlerle karģılaģabiliriz. Örneğin Program 12 deki p iģaretçisine bir değer atanmamıģtır. C++ dili oluģturduğu değiģkenlere ilk değer atamamaktadır. Biliyoruz ki p iģaretçisi kendisine verilen alanda( ) daha önceden bulunan veriye sahip olacaktır. Bu veri her Ģey olabilir yani güvenilmezdir. Program 12 nin 5. satırında ise içeriği bilinemeyen iģaretçinin gösterdiği alana atama yapılmaktadır. Bu iģlem birçok probleme yol açabilir çünkü p nin sahip olduğu değeri bilmiyoruz. 5.satırdaki iģlem programın sonlanmasına sebep olabileceği gibi programın hatalı bir biçimde devam etmesine de sebep olabilir. 3. int sayi1= 123; 4. int* p; 5. *p = 33; 6. } sayi p 2004 XXXXX 10.Satır Sonundaki Temsili Hafıza Görüntüsü Program 12 Bus Hatası Hafıza sistemlerinin büyük bir çoğunluğu bir baytlık hücreler Ģeklinde adreslemektedir. Günümüz 32- bit iģlemciler hafızadan bir anda 4 bayt(32 bit) veri almak üzere tasarlanmıģtır. Fakat çekilecek verinin hafızada hizalanmıģ olması gerekmektedir. Örneğin hafızadan 16 bit veri çekilecek ise verinin hafızada bulunduğu hücre adresleri 0,2,4 gibi ikinin katı sayılar ile baģlaması gerekir. Dört baytlık verilerin 0,4,8 gibi ikinin katı adreslere yerleģtirilmesi gerekir. Derleyiciler verileri bu kurala uygun Ģekilde yerleģtirmektedirler. Bu kurala uymak için kimi zaman bazı hafıza hücreleri boģ bile bırakılabilmektedir. Eğer ki iģaretçimizin gösterdiği adres tek bir sayı ise ve biz bu adresten bir tam sayı(4 bayt) çekmeye çalıģırsak iģlemci hata verecektir(trap). Bu hata iģletim sistemi tarafından fark edildiğin de programımızı sonlandıracaktır. Program 13 ün 5. Satırında p iģaretçisi k1 değiģkeninin adresini almaktadır. P iģaretçisi 2009 değerine sahip olacaktır. ĠĢaretçinin bu değere sahip olması 6.satıra kadar bir problem teģkil etmemektedir. 6.satırda 2009 numaralı adreste bulunan dört baytlık veri çekilmeye çalıģılmaktadır. Bu iģlem iģlemci tarafından gerçekleģtirilemeyeceğinden iģletim sistemi programımızı sonlandırır.

10 3. char k1= 'A'; 4. char k2= 'B'; 5 int* p = (int*)& k1; 6. *p = 0; 7. } Program k k p 5.Satır Sonundaki Temsili Hafıza Görüntüsü Bu tip hatalar program çalıģırken ortaya çıktığında (Run-Time Error)hatanın program içerisindeki yerinin bulunması oldukça zor olabilmektedir. Özellikle kod büyüdükçe bus hataları çok daha görünmez olur. Programcı olarak bu tip durumların ortaya çıkmaması için iģaretçileri kullanırken çok dikkatli olmalıyız. ĠĢaretçinin gösterdiği alana eriģim yaparken bus hatası oluģmaması için dikkat etmemiz gerekir. ĠĢaretçilere ilk değeri atanmalıdır. ĠĢaretçiler arasında dönüģüm yapılırken dikkat edilmelidir. Segmentasyon Hatası ĠĢaretçiler sayesinde hafızaya direk eriģim yapabilmemiz tümüyle özgür olduğumuz anlamına gelmiyor. Günümüz iģletim sistemleri korumalı mod üzerinde iģlem görmektedirler. Yani sistemi bizlerin yapacağı hatalardan korumak için çeģitli savunmaları mevcuttur. Bunlardan birisi de hafızanın bize ait olmayan kısımlarına eriģimi engellemektir. ĠĢletim sistemi programlarımıza değiģkenlerimiz için kullanılacak olan iki hafıza alanı tahsis etmektedir. Ġlerleyen kısımlarda bu hafıza alanlarına daha detaylı değineceğiniz. Bu hafıza alanları dıģındaki alanlara eriģimde iģletim sistemi devreye girip programımızı sonlandıracaktır. Burada amaç programımızın sistemi çökertmesini engellemektir. MS-DOS gibi gerçek mod (koruma yok) ile çalıģan iģletim sistemlerinde programcı istediği hafıza hücresine veri yazabildiği için iģletim sistemini çökertmek amatör bir programcı için bile çok kolay bir iģti. Günümüz iģletim sistemleri tasarlanırken programcılar tehlike doğurabilecek etkenler olarak görülmektedir. Program, iģletim sisteminin kendisine verdiği alanların dıģına eriģmeye çalıģırsa segmentasyon hatası ortaya çıkar ve bu hatayı ortaya çıkartan program sonlandırılır. Bu hataların temel çıkma sebepleri Ġlk değeri atanmamıģ iģaretçilerin gösterdiği hücreye eriģmeye çalıģıldığında Ġlk değer olarak 0 atanmıģ iģaretçilerin gösterdiği hücrelere eriģilmeye çalıģıldığında

11 Fonksiyonlara Parametreyi Adresi İle Geçme Fonksiyonların parametre olarak sadece değer alabileceğinden bahsetmiģtik. Bu yüzden fonksiyonlar değiģkenleri direk manipüle edemezler. Örneğin aģağıdaki degistir fonksiyonu a ve b değiģkenlerinin değerlerini değiģtirmeyecektir. 1. void degistir(int s1,int s2) 3. int temp = s1; 4. s1= s2; 5. s2 = temp; 6. } 7. int main(int argc,char** argv) 8. { 9. int a=2,b=4; 10. degistir(a,b); 11. } Program 13 ĠĢaretçiler sayesinde değiģkenlerimizin fonksiyonlar tarafından değiģtirilmesi mümkün olmaktadır. Bunun için fonksiyona değiģkenin değeri yerine adresi verilmelidir. degistir fonksiyonunu adres alacak Ģekilde değiģtirirsek fonksiyonun yeni hali Program 14 deki gibi olacaktır. Fonksiyona a ve b değiģkenlerinin adresleri verilmektedir. 3. Satırın sonundaki hafıza durumuna dikkat edecek olursak s1 iģaretçisi kullanılarak a değiģkeninin değeri temp değiģkenine atanmıģtır. 4.satırda ise s1 iģaretçisinin gösterdiği alana(ki bu a değiģkeni oluyor) s2 iģaretçisinin gösterdiği veri (b değiģkeni) atanıyor. 5.Satırda ise s2 iģaretçisinin gösterdiği alana( b değiģkeni) temp değiģkeninin tuttuğu değer atanıyor. Fonksiyonlar parametre olarak sadece değer alabilmektedir. Burada fonksiyona adres vererek dolaylı olarak değiģkenlerimizi manipüle etmeyi baģardık. 1. void degistir(int *s1,int *s2) 3. int temp = *s1; 4. *s1= *s2; 5. *s2 = temp; 6. } 7. int main(int argc,char** argv) 8. { 9. int a=2,b=4; 10. degistir(&a,&b); 11. cout<<a<<b; 12. } a b s s temp Satır Sonundaki Temsili Hafıza Görüntüsü Program 14 a b s s temp Satır Sonundaki Temsili Hafıza Görüntüsü a b s s temp Satır Sonundaki Temsili Hafıza Görüntüsü

12 İşaretçi ve Diziler Program 15 de sayilar adli beģ elemanlı bir tam sayı dizisi tanımlanmıģtır. Tanımlanan dizinin temsili hafıza görüntüsü de verilmiģtir. Dikkat edecek olursak dizinin elemanları hafızada ardıģıl olarak yerleģtirilmiģtir. Biliyoruz ki dizi isimlerini kullanarak diziye ait elemanlara eriģebiliriz. Buna ek olarak dizi isimlerini kullanarak dizilerin baģlangıç adreslerini de elde edebiliriz. Program15 in 6. satırında dizinin ismi kullanılarak dizinin baģlangıç adresi p iģaretçisine atanmıģtır. 6.Satırın sonundaki hafızanın görüntüsüde Ģekil üzerinde gösterilmiģtir. 3. int sayilar[5]; 4. for(int i=0;i<5;i++) 5. sayilar[i] = i; 6. int*p = sayilar; 7. cout<< *p <<endl; 8. *p=333; 9. } sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] Satır Sonundaki Temsili Hafıza Görüntüsü Program 15 sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Temsili Hafıza Görüntüsü sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Temsili Hafıza Görüntüsü Dizi ismi bir iģaretçi değildir. Derleyici dizi ismini kullandığımızda bize sadece dizinin baģlangıç adresini getirmektedir. Program 15 in 7.satırındaki *p komutu iģletildiğinde p iģaretçisinin gösterdiği hafıza alanı yani sayilar dizisinin ilk elemanı hafızadan çekilmekte ve bu değer ekrana çıkartılmaktadır. Aynı Ģekilde programın 8.satırında da *p=333 komutu ile sayilar dizisinin ilk elemanının değeri 333 yapılmaktadır.

13 İşaretçi Aritmetiği ĠĢaretçiler üzerinde de çeģitli aritmetik iģlemler yapılabilmektedir. Örneğin bir iģaretçinin tuttuğu adres değeri arttırabilmektedir. Fakat iģlemler matematik kurallarından biraz farklıdır. Program 16 nın 6.satırında p iģaretçisine sayilar dizisinin baģlangıç adresini atanmaktadır. Hafıza görüntüsü hemen sağda verilmiģtir. Programın 7.satırında ise p iģaretçisinin tuttuğu değer ekrana çıkartılmaktadır. Çıktının 1992 olacaktır. Bu iģlemin hemen ardından 8.satırda iģaretçinin tuttuğu değer bir arttırılmaktadır. 9.Satırdaki ekran çıktısının 1993 olmasını bekliyoruz fakat ekran çıktısı 1996 olacaktır. Bunun temel sebebi iģaretçi aritmetiğinin farklı çalıģmasıdır. 3. int sayilar[5]; 4. for(int i=0;i<5;i++) 5. sayilar[i] = i; 6. int*p = sayilar; 7. cout<< p <<endl; 8. p++; 9. cout<< p <<endl; 10. } sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Temsili Hafıza Görüntüsü Program 16 sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Temsili Hafıza Görüntüsü sayilar[4] *(p+4) sayilar[3] *(p+3) sayilar[2] *(p+2) sayilar[1] *(p+1) sayilar[0] *(p+0) p İşaretçi Aritmetiklerinin Sonuçları Program 15 in 8.satırında yapılan iģlem aslında aģağıdaki gibidir. ĠĢaretçinin değerindeki artıģ miktarı iģaretçinin gösterdiği veri türünün boyutu ile çarpılmaktadır. P iģaretçisi bir tam sayı göstermektedir. Bir sonraki tamsayının adresini bulmak için adresi bir değil dört birim arttırmamız gerekir. Derleyici bu iģlemi bizim yerimize yapmaktadır. Yukarıda p iģaretçisine yapılan aritmetik iģlemlerin sonuçları gösterilmektedir. p++ p=p+1*sizeof(int) p=1992+1*4 p=1996

14 Program 16 nın 7.satırındaki döngüyü inceleyecek olursak iģaretçinin değeri sırayla 0,1,2,3,4 değerleri ile toplanıp sonuç ekrana çıkartılmaktadır. 3. int sayilar[5]; 4. for(int i=0;i<5;i++) 5. sayilar[i] = i; 6. int* p = sayilar; 7. for(int i=0;i<5;i++) 8. cout<< (p+i)<<endl; 10. } Program 17 sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Hafızanın Temsili görüntüsü Ekran Çıktısı Ekran çıktılarına dikkat edersek değerler sürekli olarak dört birim artmaktadır. ĠĢaretçinin gösterdiği adresteki verinin türü tam sayı olduğundan artıģ dört birim olmaktadır. ĠĢaretçi short olsaydı artıģ 2 birim olacaktır. AĢağıdaki programda programda bu durum gözlenebilmektedir. 3. short sayilar[5]; 4. for(int i=0;i<5;i++) 5. sayilar[i] = i; 6. short* p = sayilar; 7. for(int i=0;i<5;i++) 8. cout<< (p+i)<<endl; 10. } Program 18 sayilar[4] sayilar[3] sayilar[2] sayilar[1] sayilar[0] p Satır Sonundaki Hafızanın Temsili görüntüsü Ekran Çıktısı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı

Detaylı

Program AkıĢ Kontrol Yapıları

Program AkıĢ Kontrol Yapıları C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,

Detaylı

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n KONTROL DEYİMLERİ Kontrol deyimleri bir programın normal akıģını değiģtirmek için kullanılır. Aksi söylenmedikçe programın komut satırları birbiri ardına çalıģtırılır. Program içindeki yapılan sorgulamalara

Detaylı

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); } FONKSİYONLAR Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

C Programlama Dilinde Değişkenler

C Programlama Dilinde Değişkenler C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme Dinamik Bellek

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA TAŞIT TEKNOLOJİLERİ KULÜBÜ BİLGİSAYAR PROGRAMLAMA C++ TEMEL ANLATIM 1 WWW.TASİTTEKNOLOJİLERİ.COM Bu materyal,bilgisayar programlama dersine çalışmakta sorun yaşayan arkadaşlarımız için Karabük Üniversitesi

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

INTEGER OVERFLOW ***************************************************************/

INTEGER OVERFLOW ***************************************************************/ INTEGER OVERFLOW BELGE HAKKINDA Bu belge "GNU Free Documentation Licence" ile kaynak gösterilmek ve önceden yazarından izin alınmak kaydıyla yeniden yayınlanabilir. Bu belgedeki eksik, yanlış ya da geliştirilmesi

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

SINIF. Program 2. Program 1

SINIF. Program 2. Program 1 SINIF Programlama veri ile veri üzerinde yapılan iģlemden oluģur. Veri değiģken iken, veri üzerinde yapılan iģlem fonksiyon olarak düģünülebilir. ġu ana kadar bu ikisini ayrı parçalar olarak kullandık.

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

BÖLÜM 9: POINTERLER (İŞARETÇİLER)

BÖLÜM 9: POINTERLER (İŞARETÇİLER) BÖLÜM 9: POINTERLER (İŞARETÇİLER) Bilgisayarın ana belleği (RAM) her biri 1 byte olmak üzere sıralı kaydetme hücrelerinden oluşmaktadır. Her hücreye kullanılan işletim sistemi tarafından bir adres atanmıştır.

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz. C# da Diziler Diziler için aynı tipteki verilerin tutulduğu bir koleksiyon diyebiliriz. Örneğin integer verinin bir yığın şeklinde tutulması için dizileri kullanırız. C# da diziler referans tipinde değişkenlerdendir.

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 08.03.2011 1 Çok Boyutlu Diziler Önceki derslerimizde dizileri görmüştük. Kısaca özetleyecek olursak, belirlediğimiz sayıda değişkeni bir sıra içinde tutmamız, diziler sayesinde gerçekleşiyordu.

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 8 Mar. 2016 PHP de Değişken Tipleri Dizi (Array) Aynı değişken içerisinde birden fazla değer tutmak

Detaylı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Assembly Dili Assembly programlama dili, kullanılan bilgisayar

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Örnek1: #include <iostream> #include <string> using namespace std;

Örnek1: #include <iostream> #include <string> using namespace std; BTEP243 Ders 5 Nesne İşaretçileri İşaretçiler, bildiğiniz gibi bir değişkenin bellekte tutuldukları yerin adresini tutarlar. Nesne işareçtileri konusundaki işaretçiler, nesnelerin bellek üzerinde bulundukları

Detaylı

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir:

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir: FORTRAN (FORmula TRANslation) Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir: 1 2...5 6 7...72 73...80 A B C D E A Bölgesi: (1. kolon) B Bölgesi: (2-5

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN malloc Malloc fonksiyonu bir değişken için hafızadan bir blok yer ayrılması için kullanılır. Eğer hafızada yeterli alan yoksa fonksiyon NULL döndürür. int *ptr; ptr = (int *)

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim

Detaylı

Programlama Dilleri 1. Ders 4: Diziler

Programlama Dilleri 1. Ders 4: Diziler Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

C++ Göstericiler (Pointer)

C++ Göstericiler (Pointer) C++ Göstericiler (Pointer) C++ Dilinde Gösterici(Poniter) İşlemleri Gösterici nedir? Bir değişkenin bellek adresini tutan değişkene gösterici denir. Yani, gösterici bir tür değişkendir ve başka bir değişkenin

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

Programlama Dilleri 1. Ders 5: Göstericiler

Programlama Dilleri 1. Ders 5: Göstericiler Programlama Dilleri 1 Ders 5: Göstericiler Değişkenlerin adresleri Bellekteki her değişkenin bir adresi ve bir de taşıdığı değeri vardır. int x=3; DEĞİŞKEN BELLEK ADRES 0 (0000) 1 2 3 4...... 65533 (FFFD)

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

JAVADA DİZİ İŞLEMLERİ

JAVADA DİZİ İŞLEMLERİ JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 7 ****(ilk 3 soru çıktı üzerinde el

Detaylı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB Bilgisayar Programlama MATLAB Doç. Dr. Ġrfan KAYMAZ Matlab Ders Notları Konular: MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi c) Başlatma penceresi

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler ve Değişkenler Values & Variables 2 1 Değişkenlerin Özellikleri Tipi

Detaylı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

İnternet Programcılığı Öğr. Gör. Serkan AKSU  PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Veri Hiyerarşisi Dosyalara Giriş

Detaylı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü C DİLİNİN BİR ÜST-KÜMESİ OLARAK C++ Genel olarak, C de mevcut olan her şey C++ da da vardır. C dilinde

Detaylı

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI 2.2 Değişkenler Ve Sabitler 2.2.1 Değişkenler Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder. Tanımlanan her değişkene bellek bölgesinden bir alan ayrılır. Bu bellek bölgesine

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte

Detaylı

Birlik (Union) 1 Birlik (Union), enum, typedef

Birlik (Union) 1 Birlik (Union), enum, typedef Birlik (Union) Union birden fazla alanı temsil eder ve o alana ait en uzun alanın büyüklüğü kadar hafızada yer ayrilir. union [birlik adi] { değişken türü ; değişken türü ;...

Detaylı

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları 2. Veri Tipleri Turbo Pascal bilgisayar programlama dili ile programlama yapabilmek için bilgisayara işlem yapacağımız verilerin tiplerini bildirmemiz gereklidir. Veri tipleri değişken olabileceği gibi

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA İŞARETÇİ ELEMANLI SINIFLAR REFERANSLAR OPERATÖRLERİN AŞIRI YÜKLENMESİ ATAMA OPERATÖRÜ Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü İşaretçi Elemanlı Sınıflar

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü String ve Karakter Dizileri #include Temel giriş çıkış akımları nesnelerinin tanımlandığı kütüphanedir. cin,cout,cerr,clog, wcin,wcout,wcerr,wclog nesneleri içerir. using namespace std; //std

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı İLERI MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı EK-A IDE, Program Geliştirme Araçları Geliştirme Araçları Keil C51 Yazılımı Geliştirme Araçları ISIS Programı ISIS/Proteus programı:

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı