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

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

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

Transkript

1 Diziler

2 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 ardışıl bir biçimde bulunan ve aynı türden nesnelerin oluşturduğu veri yapısına dizi denir. Dizilerin kullanılmasını gerektiren iki önemli özellikleri vardır : Bellekte ardışıl (contiguous) olarak bulunmaları Elemanların aynı türden nesne olmalarıdır. Program içerisinde aynı anda aynı tür bilgiden çok sayıda mevcut olması ve bu bilgiler üzerinde toplu işlem yapılması durumunda dizilerden yararlanılır.

3 Dizilere örnek verirsek; Dizi nin Önemi Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler bileşik nesnelerdir. Yani bir dizinin tanımlanması ile birden fazla sayıda nesne birlikte tanımlanabilir. Örneğin 10 elemanlık bir dizi tanımlamak yerine, şüphesiz farklı isimde 10 ayrı nesne de tanımlanabilir. Ama 10 ayrı nesne tanımlandığında bu nesnelerin bellekte ardışıl olarak yerleşmeleri garanti altına alınmış bir özellik değildir. Dizi tanımlamasıyla, dizinin elemanı olan bütün nesnelerin bellekte ardışıl olarak yer almaları garanti altına alınmış demektir.

4 Dizi nin Önemi 1000 adet adı, soyadı ve notu bilgisini saklamak için; Adı Adet, Soyad Adet Notu Adet Toplam 3000 adet değişkenin kullanılması gereklidir. Bir sınıfta okuyan 20 adet öğrencinin adı, soyadını ve her öğrencinin 10 farklı dersten aldıkları 3 farklı not bilgisini aynı anda bilgisayarda hafızasında tutmak için; Adı 20, Soyadı 20, Notlar 20 x 10 x 3 = 600 Toplam = 640 adet değişken kullanmamız gerekir.

5 Dizi Tanımlama Dizi içerisinde her elemanın bir indis numarası bulunur. Bu nedenle indisli değişkenler olarak da adlandırılırlar. İndis Numarası her elemanın dizi içerisindeki yerini, yani kaçıncı elemanı olduğunu gösterir. Bir dizi şu şekilde tanımlanır; <Veri Türü> <Dizi_İsmi> [Eleman Sayısı] int ders_notu [10]; Dizi değişken tanımlamak için kullanılan tanım cümleleri diğer değişkenler için kullanılan cümlelerden farksızdır. Tek farklılık, tanımlanan değişkenin dizi değişken olduğunu gösteren ve değişken isminin hemen yanında bulunan [ ] (köşeli parantez) dir.

6 Dizi Tanımlama Dizi elemanı olan nesnelerin kullanılmasından önce tanımlanmaları gerekecektir; int a[10]; float [15]; char b[20]; double [12]; long c[30]; Daha önce verilen örneklerdeki dizileri oluşturalım; 1000 adet adı, soyadı ve notu bilgisini saklamak için; Adı 1000 Adet, Soyad 1000 Adet, Notu 1000 Adet Toplam 3000 adet değişkenin kullanılması gerekliydi. Bunun yerine; char adi[1000]; char soyadi[1000]; int notu[1000]; şeklinde dizi tanımı yapılmalıdır.

7 Dizi Tanımlama değer index a[i] i i=5; int a[i] = {8,3,7,5,2}; veya a[0]=8; a[1]=3; a[2]=7; a[3]=5; a[4]=2;

8 Dizi Tanımlama Dizinin elemanları tanımlama sırasında da yapılabilir; int a[6]={11,22,33,44,55,66}; Kullanacağınız indis değerinin negatif olmaması gerekir; int a[-6]={11,22,33,44,55,66}; YANLIŞ Tanımlama anında indis değeri verilmezse, dizinin boyutu tanımlanan eleman sayısı kadar olur; int a[]={11,22,33,44,55,66,77}; dizi boyutu 7 dir. İndis için kullanılacak olan sayı tamsayı olmak zorunda. int a[1.1]={11,22,33,44}; YANLIŞ Karakter string tipi tanımlama için; char sc[]={'a','b','c'}; String tipi bir tanımlama için; string sadi[]={"umut","necla","hüseyin"};

9 Dizi Tanımlama Global tanımlanan (:: çözünürlük operatörü-scope resolution operator) dizilerin ilk dizi değerleri atanmamış ise sıfır (0) değerini, lokal (main içerisinde ya da fonksiyon v.b.) içerisinde tanımlanan dizilerde ise rastgele değer alırlar. #include <iostream> using namespace std; int x[]={}; //Diziye değer atanmadı boş. main() { int y[]={}; //Diziye değer atanmadı boş. cout << "main dışındaki x[0]=" << ::x[0] << endl; cout << "main içindeki y[0]=" << y[0] << endl; }

10 Dizi Tanımlama Dizinin elemanları tanımlama sırasında da yapılabilir; int i; int b[]={11,22,33,44}; i=1; cout << b[i++] << endl; // 22 i=1; cout << b[++i] << endl; // 33 i=1; cout << b[--i] << endl; // 11 i=1; cout << b[i--] << endl; // 22 i=1; cout << ++b[2] << endl; // 34 b[2]=34 i=1; cout << b[2]++ << endl; // 34 b[2]=35 i=1; cout << --b[2] << endl; // 34 b[2]=34 i=1; cout << b[2]-- << endl; // 34 b[2]=33 i=1; cout << b[2] << endl; //33

11 ÖRNEK 3,6,9,11 tamsayı değerlerini bir dizi içine yerleştirdikten sonra, tek tek ekranda görüntülemek istiyoruz. Kullanacağımız dizinin adı a olsun. Bu diziye, bellekte 10 elemanlık bir yer ayıralım. Daha sonra dizinin dört elemanına ayrı ayrı 4 adet sayı yerleştiriyoruz.

12 Dizi Tanımlama Verileri klavyeden girmek istersek; #include <iostream> using namespace std; main() { int a[5]; for (int i=0; i<5; i++) {cout << "a icin " << i <<". degeri giriniz:"; cin >> a[i]; cout << i << "->" << a[i] << endl << endl;} } // Programı çalıştırdıktan sonra for döngüsündeki i<5 değerini i<=5 yapınız ve son a[i] değerini inceleyiniz. DİKKAT!!!! C++ yanlış indeks kullanılmasına karşı dahili bir kontrol mekanizması içermez.

13 Dizi Tanımlama Bir dizi tanımlaması ile karşılaşan derleyici, tanımlanan dizi için bellekte yer tahsis edecektir. Ayrılacak yer = dizinin eleman sayısı x dizinin bir eleman sayısının bellekte kapladığı yer (byte) Örneğin: int a[5]; gibi bir dizi tanımlaması yapıldığını düşünelim. 32 bit işletim sisteminde çalışıyorsak, derleyici a dizisi için bellekte 5 x 4 = 20 byte yer ayıracaktır.

14 Tamsayı Diziler Tek Boyutlu Diziler İki Boyutlu Diziler Çok Boyutlu Diziler Dizi Türleri Alfasayısal Diziler Karakter Diziler String Diziler

15 Tek Boyutlu Diziler Şimdiye kadar tanımlanan dizileri tek boyutlu olarak aşağıdaki şekilde tanımladık. <Veri Türü> <Dizi_İsmi> [Eleman Sayısı] int a[5]; Veri Türü = int Dizi_İsmi = a Eleman Sayısı = 5 #include <iostream> using namespace std; int a[5]={2,7,0,3,9}; int i; main() { for (i=0;i<=4;i++) cout << a[i] << "\n"; }

16 İki Boyutlu Diziler C++ içinde tek boyutlu diziler dışında çok boyutlu dizileri tanımlayarak kullanmamız mümkündür. İki boyutlu bir dizi bir tablo olarak değerlendirilebilir. Bu durumda iki farklı indeksin kullanılması söz konusu olacaktır. Birinci indeks iki boyutlu tablonun satır elemanlarını, ikinci indeks ise sütun elemanlarını gösterecektir. İki boyutlu dizilere matris işlemlerini örnek olarak verebiliriz.

17 İki Boyutlu Diziler İki boyutlu diziyi aşağıdaki gibi tanımlarız; <Veri Türü> <Dizi_İsmi> [Satır Eleman Sayısı] [Sütun Eleman Sayısı] <Veri Türü> <Dizi_İsmi> [1.İndis] [2.İndis] int a[3][2]; Veri Türü = int Dizi_İsmi = a Satır Eleman Sayısı = 3 Sütun Eleman Sayısı = 2 Eleman Sayısı = 3 x 2 =6 a Dizisi 1. Sütun 2. Sütun 1. Satır a(1,1) a(1,2) 2. Satır a(2,1) a(2,2) 3. Satır a(3,1) a(3,2)

18 int a[3][2]; a[0][0]=1 a[0][1]=2 a[1][0]=7 a[1][1]=9 a[2][0]=3 a[2][1]=8 İki Boyutlu Diziler

19 İki Boyutlu Diziler 4x5 matrise ait atama ve görüntüleme programını aşağıdaki şekilde yazarız;

20 Çok Boyutlu Diziler 3 ve daha fazla boyutlu olan dizilerdir. Bu tür diziler kullanıldığında programın anlaşılırlığı azalmaktadır. Özellikle 3 boyutludan sonrası oldukça karışık ortamlar oluşturmaktadır. Çok boyutlu diziyi aşağıdaki gibi tanımlarız; <Veri Türü> <Dizi_İsmi> [1.İndis] [2.İndis] [3.İndis] [n.indis] int a[3][2][7][n.]; Veri Türü = int Dizi_İsmi = a 1. İndis= 3 2. İndis= 2 3. İndis= 7 n Eleman Sayısı = 3 x 2 x 7 = 42

21 Çok Boyutlu Diziler

22 Karakter (Katar) Diziler <Veri Türü> <Dizi_İsmi> [Eleman Sayısı+1] char il[10]; char il[11]={'i','s','k','e','n','d','e','r','u','n','\0'}; char il[10]={'i','s','k','e','n','d','e','r','u','n'}; char il[]={'i','s','k','e','n','d','e','r','u','n','\0'}; Karakter boyutları tanımlanırken dikkatli olmak gerekir. Çünkü Karakter en son karakteri NULL (\0) olacaktır.

23 Karakter (Katar) Diziler

24 Karakter (Katar) Diziler

25 String Diziler <Veri Türü> <Dizi_İsmi> [Eleman Sayısı+1]="string" char il[7]="ankara"; char ilce[10]={"iskenderun"}; HATA char ilce[11]={"iskenderun"}; DOĞRU char ilce[]={"iskenderun"}; DOĞRU

26 String Diziler 1) char *ck3[] = "karakterler"; // Hata Err 2) const char *ck4[] = "karakterler"; // Hata Err 3) char ck6[] = "karakterler"; // Doğru 4) char ck9[6]="123456"; // Hata Err 5) char ck10[6]="12345"; // Doğru 6) const char *ck5=new char[karakter_uzunluğu];// Doğru const char *ck5=new char[10]; // 10 veya 0. ck5="karakterler"; cout << ck5 << endl; // karakterler cout << ck5[2] << endl; // r

27 String Diziler (#include <cstring>) strcpy(s1,s2); s2 değeri s1 içine kopyalanır. Dönüş değeri yoktur. strcpy(s1,"ankara"); k1 değerine atama yapılıyor. s1="ankara Fonksiyon olarak yazacak olsaydık:

28 String Diziler (#include <cstring>) strcat(s1,s2); s1 e s2 eklenir. s1="ankara" s2="baskent" strcat(s1,s2); s1="ankarabaskent strlen(s1); s1 değerinin boyutu bulunur. Dönüş değeri: integer strlen(s1) ile yeni boyut 13 olur.

29 String Diziler (#include <cstring>) strcmp(s1,s2); s1 ve s2 değerleri karşılaştırılır s1 ve s2 stringleri sözlüksel olarak karşılaştırır Dönüş değeri: Büyük harfler ASCII tabloda daha önce bulunur. Bu durumda küçük harfle başlayan bir string ile büyük harfle başlayan bir string karşılaştırılınca, büyük harfle başlayan sözlükte daha önce yer alıyormuş gibi cevap alırız. =-1, Eğer str1 < str2 (str1 ASCII tabloda str2 den önce geliyorsa) = 0, Eğer str1 == str2 = 1, Eğer str1 > str2

30 itoa(sayısal,string,taban) String degertaban degerinegöre (2,8,10,16) integerdegeredönüştürülür. atoi(string) String integere dönüşür. atol (string) String long değere dönüşür. atof(string) String reel sayıya dönüşür. String Diziler (#include <cstring> #include <cstdlib>)

31 Örnek

32 Örnek

33 Dizilerin Fonksiyonlara Parametre int a [20]; olarak Gönderilmesi şeklinde tanımlanmış bir diziyi DiziGuncelle isimli bir fonksiyona argüman olarak yollayacaksak bu fonksiyonu çağrı cümlesi şöyle yazılır: DiziGuncelle( a, 20 ); C++ dizileri fonksiyonlara call-by-reference ile geçirir; yani fonksiyona yollanan dizinin ilk elemanının adresidir. Bu demektir ki, fonksiyon, dizinin elemanlarının değerlerini değiştirirse, bu değişiklik orijinal dizide yapılmış olur dizinin başka bir kopyası üzerinde değil.

34 Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi Bir diziyi parametre olarak alacak bir fonksiyon tanımı aşağıdaki gibi yazılabilir; void DiziGuncelle(int b[],int diziboyut) Köşeli parantez içine dizinin boyutunu yazmak gerekmez; yazılırsa, derleyici bunu yok sayar; dikkate almaz. Aynı tanım şöyle de yapılabilir: void DiziGuncelle(int [], int)

35 Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi NOT: Pointer olarak tanımlasaydık En son a[3] değeri 12 olurdu. Bu örnek, bir fonksiyona tüm diziyi geçirmekle (DiziGuncelle) tek bir dizi elemanını geçirmek (DiziElemanDegistir) arasındaki farkı göstermektedir. Fonksiyona bir dizinin tümü geçirildiğinde C++ call-byreference kullanır; yani fonksiyonda dizinin yeni bir kopyası açılmaz; orijinal dizi üzerinde işlem yapılır. Orijinal dizi üzerinde işlem yapmamak yani orijinal diziyi bozmamak istiyorsak call-byvalue kullanmamız gerekir ki bunun yolu dizi elamanlarını tek tek geçirmektir bu da uzun ve pratik olmayan bir yoldur.

36 Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi Dizilerin fonksiyonlara call-by-reference ile geçirildiğini; bunun da orijinal dizi elemanları üzerinde işlem yapıp değerleri değiştirdiğini gördük. Bunu istemediğimiz (yani, kontrol etmek istediğimiz) durumlar olabilir. Bunu için const niteleyicisi kullanılır. const niteleyicisi kullanıldığında orijinal dizinin değiştirilemeyeceği görülür.

37 Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi Yandaki programda tanımlı fonksiyonda orijinal dizi a yı değiştirme çabası hata verecektir; çünkü fonksiyon prototipinde a const olarak tanımlanmıştır.

38 ÖRNEK

39 Pointers (İşaretçiler)

40 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 adres bellekte yer gösteren bir sayıdan ibarettir. Mikroişlemci bellekte bir bölgeye ancak o bölgenin adres bilgisiyle ancak erişebilir. Fiziki olarak bilgilerin yerleşimi işlemciden işlemciye göre değişiklik göstermektedir. Verilerin 0000 adresinden artan sırayla yerleştirilmesine doğrusal adresleme denir. Bazı işlemciler ise bu yerleşim hafızanın en üst kısmından (FFFF adresinden) aşağı doğru olmaktadır.

41 Pointers (İşaretçiler) Nesnelerin adresleri, sistemlerin çoğunda, derleyici ve programı yükleyen işletim sistemi tarafından ortaklaşa olarak belirlenir. Nesnelerin adresleri program yüklenmeden önce kesin olarak bilinemez ve programcı tarafından da önceden tespit edilemez. Programı yazan yada kullanan, nesnelerin adreslerini ancak programın çalışması esnasında (run time) görebilir.

42 Pointers (İşaretçiler) C++ da oluşturduğumuz her tip hafızada belirli byte boyutunda yer kaplar. 32 bit işlemcili bilgisayarlarda; char = 1 byte int = 4 byte float = 4 byte double = 8 byte 64 bit sistemlerde ise, değerler iki katı olarak değişir. Pointerlar ise tipe bakmaksızın her zaman; 32 bit sistemlerde 4 byte, 64 bit sistemlerde 8 byte yer kaplar. Kısaca; bir integer değişkenin hafızada integer değeri, ya da bir double değişkenin ondalıklı sayı tutması gibi pointer da adres değeri tutan bir değişken olarak tanımlayabiliriz.

43 Pointers Bellekte kapladığı alan

44 Pointers (İşaretçiler) Her değişkenin tipi, adı, değeri ve bellekte bulunduğu bir adresi olduğunu biliyoruz. Pointer ise bu yerin yani bellek alanındaki yerin adresinin saklandığı değişken türüdür. Örnek Verirsek; 1-A DERSLİĞİ okul_no = 453 değişkeni için; 1001, , , 823 Tipi = int 1002, , , 901 Adi = okul_no 1003, , , , , , 907 Değeri = , , bos 1025, boş Adresi = A dersliğine ait 1005 adresindeki sıra yeri sabittir. Derse değişik öğrencilerin gelmesi durumunda değişen sadece öğrenci numaralarıdır. 1006, , , boş 1007, , , , , bos 1028, boş 1009, boş 1019, boş 1029, boş 1010, boş 1020, boş 1030, boş

45 Referans Operatörü Pointerlara, veriler değil de, o verilerin bellekte saklı olduğu bellek gözlerinin başlangıç adresleri atanır. Bir pointer, diğer değişkenler gibi, sayısal bir değişkendir. Bu sebeple kullanılmadan önde program içinde bildirilmelidir Pointerlar konusunda bilmemiz gereken 2 adet önemli operatör vardır. Bunlar; Reference & ve (Referans Operatörü) Dereference * operatörleridir. (Referanstan Ayırmak) Pointerlar tek başlarına çalışamazlar ve değer alamazlar bunun için başka bir değişkeni referans almak zorundadırlar.

46 Referans Operatörü Referans operatörü (&) önüne geldiği değişkenin hafızada saklandığı yeri yani adresini gösterir. int *b; int okul_no=453; b=&okul_no; //1005!!!dikkat b atanırken * yok. Burada b isimli işaretçi okul_no isimli değişkeni referans olarak almaktadır ve b eşittir okul_no nun adresi" diyebilmekteyiz. Diğer bir deyişle, b değişkeni integer tipindeki herhangi bir değişkenin adresini tutabilecek olan bir işaretçidir. Ayrıca b değişkenine okul_no nun bellek adresini atayabilmemiz için b yi int *b şeklinde yani integer pointer olarak tanımlıyoruz. b=&okul_no işleminde b ye okul_no değişkenin referans değerinin (yani adresi) atanması için * işareti koyulmamıştır. Bu diğer değişkenlerde (int, char v.b.) yapılan işlemin bir benzeridir.

47 Pointer Tipindeki Değişkenlerin Tanımlanması Bir pointer aşağıdaki gibi tanımlanır; <Değişken Türü> *<Değişken Adı> Değişken Türü: int, double, char, string olabilir. * işaretinin iki kullanım amacı vardır. Eğer tanıtım aşamasında değişkenin önüne getirilirse o değişkenin pointer olduğu belirtilir. Eğer kod içerisinde bir işaretçi değişkenin önüne getirilirse o değişkende kayıtlı adres üzerindeki değerigösterir. Değişken Adı: c++ da geçerli herhangi bir değişken ismi.

48 Pointer Tipindeki Değişkenlerin Tanımlanması int a, b; int *p; p = &a; *p = 5; b = *p; a b p??? a b p?? a b p 5? a b p Hafıza birimi Hafıza adresi

49 Pointer Tipindeki Değişkenlerin Tanımlanması Değişken Adı : c b a Adrese Kayıtlı Değerler 0x28ff0c Adresler : 0x28ff00 0x28ff04 0x28ff08 0x28ff0c 0x28ff0e

50 Pointer Tipindeki Değişkenlerin int *b; int okul_no=453; b=&okul_no; cout << b //1005 cout << *b //453 Tanımlanması Atanmamış adrese çağrı yapılıyor. Adrese atama yapılıp tekrar çağrılıyor. Bu durumda; cout << *okul_no << endl; //HATA cout << *&okul_no << endl; //453 cout << &*okul_no << endl; //HATA cout << &okul_no << endl; //1005 Atanan adres çağrılıyor.

51 Pointer Tipindeki Değişkenlerin Tanımlanması int okul_no; int *b; okul_no =453; b=&okul_no; *b=500; cout <<okul_no; //500 burada 454 numraralı öğrencinin oturduğu sıranın adresi b değişkenine & referans operatörüyle aktarılıyor. b değişkeni ne 454 nolu öğrencinin oturduğu adres atanıyor. Daha sonra dereference (*b=500) ile 453 nolu öğrenci bu sıradan kaldırılarak yerine 500 nolu öğrenci oturtuluyor. Artık okul_no=500 oldu.

52 Pointer Tipindeki Değişkenlerin Tanımlanması Pointer tipindeki değiskenler, ayni tipte veriyi gösteriyorsa kendi aralarında atama islemi yapılabilir. int x = 99; int *p1, *p2; p1 = &x; p2 = p1; Farkli tip veri gösteren pointerlar da atama islemi yapılabilir ancak tip çevrimi yapılması gerekir. double d = 1213; int *i; i=(int *)&d; //tip dönüştürülüyor. cout << *(double *)i; //tip dönüştürülüyor.

53 Pointer Tipindeki Değişkenlerin Tanımlanması Bir integer pointer ına integer değerler, bir char pointer ına char değerleri atayabiliyoduk. Void türünde bir pointer a atama nasıl yapılır? Ayrıca bir float pointer üzerinde yürüyebiliyorduk veya bu pointer ı başka bir float pointer ile kıyaslayabiliyorduk. Bu işlemleri void pointer üzerinde yapamayız fakat void pointer ın en önemli faydası dilin esnekliğini artırmasıdır. Bir void pointer'a değişken tipi ne olursa olsun istediğimiz başka bir pointer ı atayabiliriz. Void pointer, üzerinde herhangi bir aritmetik işlem yapamayı ve indeksleyemeyiz, sadece casting (farklı tiplerdeki iki değişkeni birbirine atamak için kullanılan metottur) işlemlerini gerçekleştirmek için kullandığımız pointer türüdür.

54 Pointer Tipindeki Değişkenlerin Tanımlanması

55 ÖRNEK Tip Dönüştürme

56 ÖRNEK

57 Pointer Aritmetiği Pointer üzerinde yapılabilecek iki tip aritmetik islem vardır: 1. Toplama 2. Çıkarma. Ancak eklenecek yada çıkartılacak değer tamsayı olmalıdır Pointer değişkenin değeri 1 arttırıldığı zaman değişken bir sonraki veri bloğunu işaret eder. Değişkenin alacağı yeni değer pointer değişkenin ne tip bir veri bloğunu işaret ettiğine bağlıdır. Bir pointer her artırıldığında, hafızada aynı tipteki bir sonraki değeri, azaltıldığında ise hafızada ayni tipteki bir önceki değeri gösterir.

58 Pointer Aritmetiği sizeof() da *ip1 veya *ip2 şeklinde ederek yollanırsa int yada double değişkeninin kapladığı alanı verir. Aşağıdaki gibi ip1 ve ip2 şeklinde yollanırsa adresin kapladığı alanı verir. sizeof(*ip1)=4 sizeof(*ip2)=8 sizeof(ip1) =4 sizeof(ip2) =4

59 Pointer Aritmetiği Pointerlar ile tamsayı değerleri kullanılarak da islem yapılabilir. a1 = a1 + 8; a1, ilk değerden sonraki ayni tipteki 8. değeri gösterir. Pointerlar da diğer değiskenler gibi değiskenler gibi karsılastırılabilir. if (a1 < b1) cout << a1 hafizada daha az yer kaplar. ); Pointerlar arası karsılastırmalar genelde aynı yapı içerisinde hafıza adreslerini gösteriyorsa kullanılır. Örneğin pointer bir dizi gösteriyorsa.

60 Pointer ve Diziler Elemanları pointer lardan oluşan pointer dizileri denir. <Değişken Tipi> *<Değişken ismi>[dizi Boyutu] int *p[10] p değişkeni 4 byte x 10 =40 byte hafızada yer kaplar.

61 Pointer ve Diziler C/C++ dillerinde pointerlar ve diziler birbirinin yerine kullanılabilir Pointerlar dizi elemanlarının işlemlerinde kullanılabilir. int dizi[5]; int *ptr_dizi=null; ptr_dizi=dizi; //veya ptr_dizi=&dizi[0]; 4 numaralı elemana 2 değerini aktarmak istersek: dizi[4]=2; //veya *(ptr_dizi+4)=2; Statik değiskenler ve diziler için programın ilk çalısma anında bellekte yer ayrılır ve bu yer program bitine kadar bırakılmaz. char kelime[100]; Bu şekilde statik dizi kullanmanın sakıncaları vardır.

62 Pointer ve Diziler Pointerlar bellekte kaplanacak yerin derleme aşamasında değil çalısma sırasında belirlenmesini sağlar. Bu sekilde kullanılan değiskenlere dinamik değişken denir. new ve delete operatörleri ile C++ dinamik dizi olusturulabilir. Dinamik dizi olusturmak için new operatörü kullanılır. new <veri_tipi> [eleman_sayisi] int *odenen; odenen = new int [10] odenen adında 10 elemanlı bir int dizi oluşturur. Olusturulan diziyi silmek ve dizinin kullandığı bellek alanını serbest bırakmak için ise delete operatörü kullanılır. delete odenen;

63 Pointer ve Diziler

64 Pointer ve Diziler

65 Pointer ve Diziler

66 Pointer ve Diziler Pointer değişken aracılığı ile dizi üzerinde dolaşılması.

67 Pointerın Pointeri Şu ana dek incelediğimiz tüm pointerlar bir değişkene yada bir sabite işaret ediyordu. Yani bir değişken yada sabitin adresini içeriyordu. Bir pointerın bir başka pointere işaret etmesi mümkündür. Bu durumdaki pointerların başında ** işleci getirilir. Örneğin, **p1 pointerı bu tür bir pointerdır. Pointer tanımında * işlecinin sayısal olarak sınırı yoktur ancak bu tür tanımlar işi karıştıracağından sayısının belirlenmesi konusunda yazılımdaki amaç dikkate alınmalıdır... (***)- > Pointerin Pointeri (**) -> Pointer (*) -> Değişken (p1)

68 Pointerın Pointeri

69 Fonksiyonlarda Pointer Kullanımı Bir fonksiyon tanımlanırken, parametreleri pointer olabileceği gibi, fonksiyon tipi de pointer olabilir. Fonksiyonlara değişik şekillerde parametre geçilebilir. Bunlar; değer geçilerek (Call By Value), referans parametreleri ile ve pointer parametreler ile referans geçerek. Parametresi pointer olan fonksiyonlar şağıdaki gibi tanımlanabilir; int fonk1(int *sayi)

70 Fonksiyonlarda Pointer Kullanımı Pointer tipinde referans geçilmesi ve değer geçerek parametre yollama yöntemi ile arasındaki fark aşağıdaki programda gösterilmiştir.

71 Fonksiyonlarda Pointer Kullanımı Tipi pointer olan fonksiyon kendisini çağırana bir adres gönderir. Bu tip uygulamalar özellikle kelime dizilerinde sık kullanılır. Fonksiyona İşaret Eden Pointerlar; Bir fonksiyona isaret ederler, Fonksiyon pointer ı, bir fonksiyona parametre olabilir, Fonksiyon pointer ı bir fonksiyondan geri döndürülebilir, Baska bir fonksiyon pointer ına atanabilir. int (*fonk1) (int); // int parametresi alan ve int döndüren bir fonksiyon pointeri. int *fonk2(int,int ); // iki adet int parametre alan ve int pointeri döndüren fonksiyon pointeri.

72 Fonksiyonlarda Pointer Kullanımı int parametresi alan ve int döndüren bir fonksiyon pointeri.

73 Dinamik Bellek Yönetimi

74 Dinamik Bellek Yönetimi C++ 'ta dinamik bellek yönetimi new ve delete isimli iki operatörle yapılır. C de bellek yönetimi malloc, calloc, realloc ve free C++ içerisinde bütün standart C fonksiyonları kullanılabildiği için bunlar da kullanılabilir new Operatörü Genel biçimi: new <t> [<uzunluk>] 74 Dinamik Bellek Yönetimi

75 new Operatörü Örnek : new int new double [10] new char[strlen(s) + 1] Programda kullanım: int *p; p = new int[4]; // 4*sizeof(int) kadar byte tahsis ediliyor //ve tahsis edilen başlangıç adresi elde ediliyor 0x28ff08 0xa30fc8 p 75 Dinamik Bellek Yönetimi 0xa30fc8 0xa30fcc 0xa30fd0 0xa30fd4

76 Exception Program tarafından talep edilen dinamik bellek bilgisayarın hafıza yığını arasından tahsis edilir. Bilgisayar hafızası sınırlı bir kaynaktır ve dikkatsizce veya yoğun olarak kullanımı kaynakların tükenmesine neden olabilir Bu durumda hafızada yeni bir bellek ayrılmasını istemek başarısızlıkla sonuçlanabilir Bu durumda hafızanın ayrılıp ayrılmadığını kontrol eden bir mekanizma olmalıdır. 76 Dinamik Bellek Yönetimi

77 Exception C++ da bellek tahsisinin (memory allocation) başarılı olup olmadığı 2 şekilde kontrol edilebilir: Exception (istisna) kullanımı Bu metot kullanıldığında, eğer yer tahsisi başarısız olursa bad_alloc tipinde bir istisna yollanır. Bu istisna özel bir şekilde ele alınmaz Bu istisnanın yollanması durumunda programın çalışması sona erdirilir new metodu varsayılan olarak bu kontrolü kullanır x= new int [5]; // Eğer başarısız olunursa bad_alloc tipinde bir // istisna yollanır 77 Dinamik Bellek Yönetimi

78 Exception 2. metot nothrow olarak bilinir. Eğer yer tahsisi başarısızlıkla sonuçlanırsa bad_alloc istisnası yollamak ya da programı sona erdirmek yerine new tarafından geri döndürülen pointer null (boş) bir pointer olur program çalışmayı sürdürür Bu metot nothrow olarak bilinen özel bir nesne kullanılarak belirtilir: x= new (nothrow) int [5]; İstisna durumu pointer değerinin null olup olmadığı kontrol edilerek bulunabilir }; 78 Dinamik Bellek Yönetimi int * x; x = new (nothrow) int [5]; if (x == 0) { cout<< "Yer tasisi başarısız!!!"<<endl;

79 delete ve delete[] Operatörleri Dinamik hafızaya genelde programın belli bölümlerinde ihtiyaç duyulur Artık ihtiyaç duyulmadığında dinamik olarak ayrılan hafıza alanı boşaltılmalıdır Böylelikle daha sonraki hafıza istekleri için yer açılmış olacaktır Delete operatörünün amacı da bunu sağlamaktır delete ptr; delete [] ptr; İlk durum (delete ptr) tek eleman için tahsis edilen yeri 2. (delete [] ptr) ise elemanlar dizisi için tahsis edilen yeri boşaltır 79 Dinamik Bellek Yönetimi

80 delete ve delete[] Operatörleri Delete fonksiyonuna parametre olarak new ile yer tahsisi yapılan bir pointer ya da null pointer gönderilebilir null pointer gönderilmesi durumunda delete hiçbir işlem yapmaz 80 Dinamik Bellek Yönetimi

81 #include <iostream> #include <new> using namespace std; int main () { int i,n; int * p; cout << "Kac sayi gireceksiniz? "; cin >> i; p= new (nothrow) int[i]; if (p == 0) cout << "HATA!!! Hafıza tahsisi basarisiz oldu"; else { for (n=0; n<i; n++) { cout << "Sayilari giriniz: "; cin >> p[n]; } cout << "Girdiginiz sayilar: "; for (n=0; n<i; n++) cout << p[n] << ", "; delete[] p; } return 0; } 81 Dinamik Bellek Yönetimi Dikkat!! Dizi eleman sayısı dinamik olarak belirilendi

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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 Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

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ı

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ı

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER // 5 adet ogrenci icin 8 adet sinavi // temsil etmesi icin bir ogrenci tablosu // olusturuyoruz. Bunun icin 5x8 bir matris // yaratilmasi

Detaylı

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

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

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ı

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ı

Ö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ı

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ı

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ı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2) BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında

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ı

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ı

Ö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ı

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ı

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ı

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ı

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ı

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ı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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 Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

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ı

Giriş. ENF102 Jeoloji

Giriş. ENF102 Jeoloji DİZİLER Arrays Giriş Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.

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ı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Diziler (Arrays) 1 Dizi Kavramı 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

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ı

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ı

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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 11: Bileşim, Arkadaş ve Diğer Araçlar İçerik Bileşim Arkadaş Fonksiyonlar ve Sınıflar Arkadaş Fonksiyonlar Arkadaş Sınıflar Sabit Nesneler Sabit Üye Fonksiyonlar

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ı

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ı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

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ı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

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ı

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ı

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ı

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ı

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek Giriş DİZİLER Arrays Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı

Detaylı

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2015-2016 GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2015-2016 GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2015-2016 GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ Cemil Hoca Grubu PROJE ÖDEVİ ÖDEV TESLİM KURALLARI Ödevin son

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ı

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ı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

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ı

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İL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

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

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

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ı

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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 5: Fonksiyonlar İçerik Standart Kütüphane Fonksiyonları Kullanıcı Tarafından Tanımlanan Fonksiyonlar Fonksiyon Tanımı Fonksiyon Prototipi void Fonksiyonları Parametreli

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers) 5. İşaretç iler (pointers) C dilinin öyle bir özelliği vardır ki, programlama dilleri arasında kendisini diğerlerinden ayıran bir fark olarak sunulur: işaretçiler. Aslında, bazı diğer dillerde de direkt

Detaylı

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1

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ı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

Bölüm 6. Veri Türleri ISBN

Bölüm 6. Veri Türleri ISBN Bölüm 6 Veri Türleri ISBN 0-321-49362-1 Bölüm 6 Konular Giriş İlkel Veri Türleri Karakter Dizisi Türleri Kullanıcı Tanımlı Sıra Türleri Dizi Türleri İlişkili Diziler Giriş Bir veri türü veri nesnelerinin

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ı

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) 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 gelmesi ile oluşur.

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Fall Object-Oriented Programming Laboratory 02 - Structures

Fall Object-Oriented Programming Laboratory 02 - Structures 2017-2018 Fall Object-Oriented Programming Laboratory 02 - Structures 10.10.2017 1. Diziler. Bir tamsayi dizisinin elemanlarını ekrana yazdırmak için void printarr(int arr[], int elem_count) prototipli

Detaylı

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir. DİZGİLER (STRINGS) Dizgiler char tipli karakterlerin gruplanmş haline dizgi(string) denilir. Bazen katar ismide kullanılabilir. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir.

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; } for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları Sayfa1 NESNE TABANLI PROGRAMLAMA 25.01.2011 Final Sınavı Cevapları CEVAPLAR 1. A ve C 3x3 boyutlu kare matrislerdir. Bu matrisler için, iken, işlemini gerçekleştirerek C matrisini oluşturan bir C++ programı

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

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ı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

Programlama Dilleri III 1

Programlama Dilleri III 1 Temel Veri Türleri Programlama Dilleri III 1 İlk C# Programı class ilk_program1 static void Main() System.Console.WriteLine("Merhaba C#"); C# dilinde yazılmış kaynak kod dosyalarının uzantıları.cs dır.

Detaylı