FBEB-512. C++ ile Nesne Tabanlı Programlama. Güz (5. Hafta)

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

Download "FBEB-512. C++ ile Nesne Tabanlı Programlama. Güz (5. Hafta)"

Transkript

1 FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (5. Hafta) (Yrd. Doç. Dr. Deniz Dal)

2 Diziler (Arrays) Diziler (arrays), aynı veri tipine sahip birden fazla veriyi bünyelerinde saklayan veri yapılarıdır. (Data Structures) Değişkenler içerisinde yalnız bir tek bilgi depolarken dizileri kullanarak aynı türden birden fazla bilgiyi saklayabiliriz. Programımız içerisinde kullanacağımız 100 adet tamsayıyı 100 farklı değişken içinde saklamak yerine bu amaçla içinde 100 tamsayı saklı bir dizi kullanmak daha mantıklıdır.

3 Diziler (Arrays) C++ ta diziler statik yapılardır. Yani program işletilmeden önce depolayacakları bilgi miktarı belirlidir ve işletilme esnasında bu miktar hiçbir şekilde değiştirilemez. Daha sonraki derslerimizde göreceğimiz bazı veri yapılarının (örneğin list, queue ve stack) işletilme esnasında kapasiteleri büyüyebilir veya küçülebilir.

4 Diziler (Arrays) Bir dizinin elemanlarının hepsi aynı veri tipine sahiptir ve bellekte ardışıl olarak sıralanırlar. Bir dizinin elemanlarına indeks (index) ile ulaşılır. İndeks: Belirli bir dizi elemanına ulaşmak amacıyla pozisyon numarası olarak kullanılır. Köşeli parantezler [ ] içine yazılır. Dizinin ilk elemanının indeks değeri daima sıfırdır.!!!!!!! Örneğin (a = 5 ve b = 6 değerleri için) c[ a + b ] += 2; deyimi c[11] dizi elemanının değerine 2 ekler.

5 c dizinin adıdır. c dizisi 12 elemana sahiptir. ( c[0], c[1], c[11] ) c[0] `ın (yani dizinin ilk elemanının) değeri -45 tir.

6 !!! Dikkat!!! Dizilerin indeks numaraları sıfırdan başladığı için, c[7] ile bu dizinin yedinci elemanı farklı şeyleri ifade eder. c[7] normalde dizinin sekizinci elemanıdır.

7 Dizilerin Deklare Edilmesi Dizinin boyutunu ve dizi elemanlarının veri tipini programcı belirler. Örnek: int c[ 12 ]; deyimi c adında içinde 12 tane integer saklayan bir dizi tanımlar. Bir dizinin boyutu sıfırdan büyük bir integer değerine sahip olmalıdır.

8 Döngü ile Dizi Elemanlarına İlk Değer Atama 1. Diziyi boyutu ve saklayacağı veri tipi ile deklare et. 2. Herhangi bir döngü yapısı kullanarak herbir dizi elemanına bir ilk değer ata. (Mesela, çok yaygın bir uygulama olarak, başlangıçta tüm dizi elemanlarına sıfır değeri atanabilir.)

9 1 2 // Dizi elemanlarına ilk değer atanması 3 #include <iostream> //cout, left, right ve endl 4 #include <iomanip> //setw 5 using namespace std; int main() 11 { 12 int n[ 10 ]; // İçerisinde 10 tamsayı saklayan n adlı bir dizi deklarasyonu // Bir döngü yardımıyla dizi elemanlarına ilk değer olarak sıfır atama 15 for ( int i = 0; i < 10; i++ ) 16 n[ i ] = 0; // Dizinin i. elemanına sıfır ata cout << "Eleman" << setw( 13 ) << "Deger" << endl; cout << "Eleman" <<right<<setw( 13 ) << Deger" << endl; //varsayilan olarak zaten saga dayali cout << "Eleman" <<left<< setw( 13 ) << Deger" << endl;

10 19 20 // Dizinin herbir elemanını yazdır 21 for ( int j = 0; j < 10; j++ ) 22 cout << setw( 6 ) << j << setw( 13 ) << n[ j ] << endl; return 0; 25 } Eleman Deger

11 İlk Değer Atama Listesi ile Dizi Oluşturma Bir dizi hem deklare edilebilir hem de aynı anda ilk değer atama listesi (initializer list) yardımıyla dizi elemanlarına ilk değer atanabilir. Dizi elemanları parantez içine ( { } ) yazılan ilk değer atama listesindeki değerlerle atanırlar ve bu elemanlar birbirlerinden virgül ile ayrılırlar. Örnek: int n[] = { 10, 20, 30, 40, 50 }; Dizinin boyutu bu tanımda yazılmadığı için derleyici bu dizinin boyutunu ilk değer atama listesinin eleman sayısını temel alarak belirler. Yukaridaki deyim 5 elemanlı bir dizi tanımlar. Dizi elemanlarının indeks değerleri sırasıyla: 0, 1, 2, 3, 4 Dizi elemanlarının ilk değerleri sırasıyla: 10, 20, 30, 40, 50

12 İlk Değer Atama Listesi ile Dizi Oluşturma Eğer ilk atama değer listesindeki eleman sayısı dizinin boyutundan az ise kalan elemanlara sıfır değeri atanır. Örnek: int n[ 10 ] = { 0 }; Dizinin ilk elemanının değeri olarak sıfır seçildiği açıkça bellidir. Kalan dokuz elemanın değeri olarak yine sıfır atanacağı dolaylı olarak bilinir. Eğer ilk değer atama listesindeki eleman sayısı dizinin boyutundan fazla ise derleyici hata verir.

13 Sabit Değişkenler (Constant Variables) Bu başlık sizlere de ilginç geldi mi? (Oxymoron) Bu tür değişkenler const anahtar kelimesi ile deklare edilirler. Sadece okunabilir değişkenler (read-only variables) olarak da adlandırılırlar. Bu tür değişkenlere, deklare edildikleri anda muhakkak bir ilk değer ataması yapılır ve bu değer daha sonra değiştirilemez. Sabit değişken tanımlamak ve bunu dizilerin boyutu olarak kullanmak genel olarak tercih edilen bir yoldur. Sebep?

14 Sabit Değişkenler (Constant Variables) Sabit değişkenleri diğer değişkenlerden ayırtedebilmek için kullanılabilecek bir notasyon: Sabit değişken isimlerinin bütün karakterlerini büyük harfle yaz, değişken ismi birden fazla kelimeden oluşuyorsa kelimeleri birbirinden alt çizgilerle ayır. ÖRNEK: const int DIZI_BOYUTU;

15 1 2 // sabit degisken tanimlama ve kullanma 3 #include <iostream> //cout ve endl 4 using namespace std; int main() 8 { 9 const int X = 7; // ilk deger atanmis sabit degisken cout << "The value of constant variable X is: " << X << endl; return 0; 14 } The value of constant variable X is: 7

16 1 2 // Sabit bir degiskene deklarasyon aninda muhakkak bir ilk deger atanmalidir 3 4 int main() 5 { 6 const int X; // Error: X must be initialized 7 8 X = 7; // Error: cannot modify a const variable 9 10 return 0; 11 } Borland C++ command-line compiler error message: Error E2304 fig07_07.cpp 6: Constant variable 'x' must be initialized in function main() Error E2024 fig07_07.cpp 8: Cannot modify a const object in function main() Microsoft Visual C++.NET compiler error message: C:\cpphtp5_examples\ch07\fig07_07.cpp(6) : error C2734: 'x' : const object must be initialized if not extern C:\cpphtp5_examples\ch07\fig07_07.cpp(8) : error C2166: l-value specifies const object GNU C++ compiler error message: fig07_07.cpp:6: error: uninitialized const `x' fig07_07.cpp:8: error: assignment of read-only variable `x'

17 Bir Dizinin Elemanlarını Toplayan Program 1 2 // Bir dizinin elemanlarının değerlerini toplayan program 3 #include <iostream> //cout ve endl 4 using namespace std; int main() 8 { 9 const int DIZI_BOYUTU = 10; // Dizinin boyutunu saklayan sabit değişken 10 int a[ DIZI_BOYUTU ] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 }; 11 int toplam = 0; for ( int i = 0; i < DIZI_BOYUTU; i++ ) 15 toplam += a[ i ]; cout << "Dizi elemanlarinin toplami: " << toplam << endl; return 0; 20 } Dizi elemanlarinin toplami: 849

18 !!! Dikkat!!! Eğer bir dizinin elemanları bir döngü içerisinde değerlendiriliyorsa, diziye ulaşmamızı sağlayan indeks değeri hiçbir zaman sıfır değerinin altına düşmemeli ve daima dizinin sahip olduğu eleman sayısından küçük olmalıdır.

19 Karakter Dizileri Kullanarak String Manipülasyonu Karakter dizileri kullanarak string depolayabilir ve manipüle edebiliriz. String leri char veri tipi ile tanımladığımız dizilerde depolayabiliriz. Örnek: (Aşağıdaki iki kullanım birbirine denktir.) 1. char string1[] = "Hi"; 2. char string1[] = { 'H', 'i', '\0' }; Örnekteki dizi, depolanması istenen karakterleri ve dizinin en son elamanı olarak da özel bir karakter olan ve Null karakteri ('\0') diye adlandırılan string sonlandırma karakterini (string-termination character) muhafaza eder.

20 Karakter Dizileri Kullanarak String Manipülasyonu cin>> kullanarak klavyeden girilen bir string i bir karakter dizisinin içine atayabiliriz. Örnek: cin >> string1; Fakat cin>> ile dizinin kapasitesinden fazla karakterin okunabileceği unutulmamalıdır. Fazladan girilen bilgi kaybolacaktır. Null ile sonlandırılmış bir string i temsil eden bir karakter dizisi cout<< ile ekrana yazdırılabilir.

21 1 2 // Karakter dizileri string oluşturmak için kullanılabilir 3 #include <iostream> //cout, cin ve endl 4 using namespace std; int main() 9 { 10 char string1[ 20 ]; // 20 karakter saklayan bir dizi (NULL dahil) 11 char string2[] = "String Dizisi"; // 14 karakter rezerve edilir (NULL dahil) cout << "\"Merhaba Dunya\" yaz: "; 15 cin >> string1; // string1 içerisine sadece Merhaba atanır 16 // Dunya kelimesi input buffer içerisinde okunmayı bekler 17 // string1 ve string2 yi ekrana yazdir 18 cout << "1. String : " << string1 << "\n2. String : " << string2; cout << "\nkarakterleri arasina 1 bosluk birakilmis 1. String :\n"; 21

22 22 // NULL karaktere rastlayıncaya kadar 1. String i ekrana yazdır 23 for ( int i = 0; string1[ i ]!= '\0'; i++ ) 24 cout << string1[ i ] << ' '; cin >> string1; // input buffer dan Dunya yı oku ve yeniden string1 e ata 27 cout << "\n1. String : " << string1 << endl; return 0; 30 } Merhaba Dunya yaz : Merhaba Dunya 1.String : Merhaba 2.String : String Dizisi Karakterleri Arasina 1 Bosluk Birakilmis 1. String : M e r h a b a 1.String : Dunya

23 Bir Diziyi Bir Fonksiyonun Argümanı Olarak Kullanma Bir diziyi bir fonksiyona argüman olarak iletmek için: Dizinin adı parantezler olmadan kullanılır. Mesela dizimiz şu şekilde deklare edilmiş olsun. int a[ 24 ]; Bu dizinin argüman olarak kullanıldığı fonksiyon ise: DiziyiDegistir( a, 24 ); dizinin adı ve boyutu fonksiyona argüman olarak iletilir. Fonksiyon diziden istenen kadar elemanı işleyebilsin diye dizinin boyutu fonksiyona ikinci bir argüman olarak verilir. Fonksiyon ise şöyle tanımlanır. void DiziyiDegistir( int b[], int diziboyutu );

24 Bir Diziyi Bir Fonksiyonun Argümanı Olarak Kullanma Diziler fonksiyon argümanı olarak referansla (call-byreference) çağrılırlar. Fonksiyon, dizinin baslangıç adresini argüman olarak kullanır ve böylece bellekteki yeri bilinmiş olur. Çağıran fonksiyon böylelikle çağırdığı fonksiyona argüman olarak verilen bilgiyi manipule edebilme hakkını da vermiş olur. Diziler değer ile (call-by-value) fonksiyonlara arguman olarak atansalardı eğer bu bir performans eksikliğine yol açardı. (Fonksiyon içerisinde işlensin diye dizinin herbir elemanının kopyası alınırdı.) SIKLIKLA çağrılan fonksiyonlardaki kapasitesi büyük diziler böyle bir soruna sebep olurdu.

25 1 2 // Dizileri veya dizi elemanlarını fonksiyonlara argüman olarak geçme 3 #include <iostream> //cout ve endl #include <iomanip> //setw 4 using namespace std; void DiziyiDegistir( int [], int ); //prototip 11 void ElemaniDegistir( int ); //prototip int main() 14 { 15 const int DIZI_BOYUTU = 5; 16 int a[ DIZI_BOYUTU ] = { 0, 1, 2, 3, 4 }; // Diziye ilk deger ata cout << "Fonksiyona referansla gonderilmeden once dizinin icerigi: \n"; // Orjinal dizi elemanlarini ekrana yazdir 22 for ( int i = 0; i < DIZI_BOYUTU; i++ ) 23 cout << setw( 3 ) << a[ i ]; cout << endl; // Diziyi fonksiyona referansla gonder 28 DiziyiDegistir( a, DIZI_BOYUTU ); 29 cout << "Fonksiyon icinde degistirilmis dizinin icerigi: \n";

26 30 31 // Fonksiyon icinde degistirilmis dizi elemanlarini ekrana yazdir 32 for ( int j = 0; j < DIZI_BOYUTU; j++ ) 33 cout << setw( 3 ) << a[ j ]; cout << "\n\nfonksiyona degerle bir dizi elemanini gonderme: " 36 << "\nfonksiyon oncesi a[3]: " << a[ 3 ] << endl; ElemaniDegistir( a[ 3 ] ); // Dizinin a[ 3 ] elemanini degerle gonder 39 cout << "Fonksiyon sonrasi a[3]: " << a[ 3 ] << endl; return 0; 42 } // Fonksiyon tanimi 45 void DiziyiDegistir( int b[], int dizininboyutu ) 46 { 47 // Herbir dizi elemanini 2 ile carp 48 for ( int k = 0; k < dizininboyutu; k++ ) 49 b[ k ] *= 2; 50 }

27 51 // Fonksiyon tanimi 54 void ElemaniDegistir( int e ) 55 { 56 // Parametreyi 2 ile carp 57 cout << "ElemaniDegistir fonksiyonu icinde parametre: " << ( e *= 2 ) << endl; 58 } Fonksiyona referansla gonderilmeden once dizinin icerigi: Fonksiyon icinde degistirilmis dizinin icerigi: Fonksiyona degerle bir dizi elemanini gonderme: Fonksiyon oncesi a[3]: 6 ElemaniDegistir fonksiyonu icinde parametre: 12 Fonksiyon sonrasi a[3]: 6

28 const ın Dizilerde Fonksiyon Parametresi Olarak Kullanılması Dizinin deklarasyonu anında başına const anahtar kelimesi yazılır. Böylelikle fonksiyonu çağıran, çağrılan fonksiyon içinde dizi elemanlarının modifiye edilmesinin önüne geçer. Dizi elemanlarının değeri fonksiyon gövdesi içinde sabittir ve değiştirilemez. Bu özellik sayesinde programcı değerlendirilen bilginin kazara değistirilmesini engellemiş olur.

29 1 2 // const dizilerin kullanimi 3 #include <iostream> //cout ve endl 4 using namespace std; void DiziyiDegistir( const int [] ); // prototip 8 9 int main() 10 { 11 int a[] = { 10, 20, 30 }; DiziyiDegistir( a ); 14 cout << a[ 0 ] << ' ' << a[ 1 ] << ' ' << a[ 2 ] << '\n'; return 0; 17 } 18

30 21 void DiziyiDegistir( const int b[] ) 22 { 23 b[ 0 ] /= 2; // error 24 b[ 1 ] /= 2; // error 25 b[ 2 ] /= 2; // error 26 } Borland C++ command-line compiler error message: Error E2024 fig07_15.cpp 23: Cannot modify a const object in function trytomodifyarray(const int * const) Error E2024 fig07_15.cpp 24: Cannot modify a const object in function trytomodifyarray(const int * const) Error E2024 fig07_15.cpp 25: Cannot modify a const object in function trytomodifyarray(const int * const) Microsoft Visual C++.NET compiler error message: C:\cpphtp5_examples\ch07\fig07_15.cpp(23) : error C2166: l-value specifies const object C:\cpphtp5_examples\ch07\fig07_15.cpp(24) : error C2166: l-value specifies const object C:\cpphtp5_examples\ch07\fig07_15.cpp(25) : error C2166: l-value specifies const object GNU C++ compiler error message: fig07_15.cpp:23: error: assignment of read-only location fig07_15.cpp:24: error: assignment of read-only location fig07_15.cpp:25: error: assignment of read-only location

31 !!! Dikkat!!! Dizilerin fonksiyon parametresi olarak referansla gönderildiğini ve dolayısıyla fonksiyon içinde değiştirilebilecegini unutursak beklemediğimiz sonuçlarla karşılaşırız. Bunun önüne geçebilmek için const ı kullanabiliriz.

32 Dizi İçinde Lineer Arama Yapma (Linear Search) Dizi içinde herhangi bir aranan değerin varolup olmadığı ya da var ise eğer hangi indeks değerine sahip olduğu bilinmek istenebilir. Lineer Arama (Linear Search) Dizinin herbir elemanı aranan değer ile karşılaştırılır. Aranan değerin dizinin ilk elemanı olması ihtimali, son elemanı olması ihtimali ile aynıdır. Aranan değerin dizi içerisinde olmadığını garanti edebilmek için sözkonusu değer dizinin tüm elemanları ile karşılaştırılmalıdır. Halihazırda sıralı olmayan küçük dizilerde arama yaparken kullanılabilen bir metoddur.

33 1 2 // Dizi icinde lineer arama yapma 3 #include <iostream> //cout, cin ve endl 4 using namespace std; int LineerArama( const int [], int, int ); // prototip 9 10 int main() 11 { 12 const int DIZI_BOYUTU = 100; 13 int a[ DIZI_BOYUTU ]; 14 int aranandeger; // dizi icinde aranacak tamsayi for ( int i = 0; i < DIZI_BOYUTU ; i++ ) 17 a[ i ] = 2 * i; cout << "Aranacak tamsayiyi gir: "; 20 cin >> aranandeger; int indeks = LineerArama( a, aranandeger, DIZI_BOYUTU ); 24

34 25 26 if ( indeks!= -1 ) 27 cout << "Aranan degerin dizideki indeksi: " << indeks << endl; 28 else 29 cout << "Aranan deger bulunamadi..." << endl; return 0; 32 } // Aranan degeri dizinin icindeki butun elemanlarla kiyasla. 35 // Buldugun an indeksi geri gonder. 36 // Bulamazsan geriye -1 degerini gonder. 37 int LineerArama( const int dizi[], int deger, int dizininboyutu ) 38 { 39 for ( int j = 0; j < dizininboyutu; j++ ) 40 if ( dizi[ j ] == deger ) // aradigini bulduysan 41 return j; // indeksi geri gonder return -1; // aradigini bulamadiysan geriye -1 gonder 44 } Aranacak tamsayiyi gir: 36 Aranan degerin dizideki indeksi: 18 Aranacak tamsayiyi gir: 37 Aranan deger bulunamadi...

35 Çok Boyutlu Diziler (Multidimensional Arrays) Örneğin 2 boyutlu dizileri ele alalım.(matrisler) İçinde bilgi saklanan bir tablo gibi düşünülebilir. Satırlar (rows) ve sütunlar (columns) vardır. Dizinin elemanlarına iki indeksle ulaşılır. ([ x ][ y ]) Genellikle m tane satıra ve n tane sütuna sahip bir dizi m-by-n array diye adlandırılır. Bu tür diziler 2 den fazla boyuta da sahip olabilirler.

36 İki Boyutlu Bir Diziyi Deklare Etme ve İlk Değer Atama int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } }; b[ 0 ][ 0 ]=1 ve b[ 0 ][ 1 ]=2 b[ 1 ][ 0 ]=3 ve b[ 1 ][ 1 ]=4 int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } }; b[ 0 ][ 0 ]=1 ve b[ 0 ][ 1 ]=0 (ima ile) b[ 1 ][ 0 ]=3 ve b[ 1 ][ 1 ]=4

37 3 satır ve 4 sütuna sahip 2 boyutlu bir dizi

38 Çok Boyutlu Dizileri Fonksiyon Parametresi Olarak Kullanma Bir boyutlu dizilerde olduğu gibi ilk boyutun kapasitesi belirtilmez. Takip eden boyutların kapasitesi ise belirtilmelidir. Derleyici ancak bu yolla ikinci satıra geçmek için kaç eleman atlayacağını bilir. Örneğin : void DiziyiYAzdir( const int a[][ 3 ] ); Bu fonksiyon 2. satıra geçebilmek icin ilk satırın 3 elemanını atlamak zorundadır.

39 Çok Boyutlu Dizilerde Bilgi Manipülasyonu Genellikle for deyimi kullanılır. Örnek: Örnek: Sadece bir satırın elemanlarını modifiye etmek için: for ( int sutun = 0; sutun < 4; sutun++ ) a[ 2 ][ sutun ] = 0; Dizinin tüm elemanlarını modifiye etmek için: total = 0; for ( satir = 0; satir < 3; satir++ ) for ( sutun = 0; sutun < 4; sutun++ ) total += a[ satir ][ sutun ];

40 Bir Dizinin En Küçük ve En Büyük Elemanını Bulma #include <iostream> //cout ve endl #include <cstdlib> //rand() #include <ctime> using namespace std; //time(0) void KucuguBuyuguBul(const int [ ], int, int&, int&); //Fonksiyon prototipi int main() { //srand(time(0)); int enkucuk, //Icinde dizinin en kucuk elemanini saklayacak degisken enbuyuk; //Icinde dizinin en buyuk elemanini saklayacak degisken const int DIZI_BOYUTU=10; //Dizinin boyutunu saklayan sabit degisken int a[dizi_boyutu]; cout<< Dizinin Icerigi:\n"; for(int i=0;i<dizi_boyutu;i++) { a[ i ]=rand()%6+1; //Dizinin i. elemanina 1 ile 6 arasinda rastgele bir sayi ata } cout<<a[ i ]<<" "; cout<<endl;

41 Bir Dizinin En Küçük ve En Büyük Elemanını Bulma KucuguBuyuguBul(a, DIZI_BOYUTU, enkucuk, enbuyuk); cout<< Dizinin En Kucuk Elemani: <<enkucuk<<endl; cout<< Dizinin En Buyuk Elemani: <<enbuyuk<<endl; } return 0;

42 Bir Dizinin En Küçük ve En Büyük Elemanını Bulma //Kendine arguman olarak aldigi dizinin en kucuk ve en buyuk elemanini bulan //fonksiyonun tanimi (Geriye referansla birden fazla degerin donduruldugune dikkat ediniz!!!!) void KucuguBuyuguBul(const int b[ ], int dizininboyutu, int &minimum, int &maksimum) { minimum=b[0]; //Dizinin en kucuk elemaninin ilk eleman oldugunu varsay maksimum=b[0]; //Dizinin en buyuk elemaninin ilk eleman oldugunu varsay for(int i=1 ; i<dizininboyutu ; i++) //i nin 1 den basladigina dikkat ediniz!!!! { if(b[ i ] < minimum) { minimum=b[ i ]; } if(b[ i ] > maksimum) { maksimum=b[ i ]; } } }

43 Selection Sort Sıralama Algoritması ile Küçükten Büyüğe Sıralama (Ascending Sort) #include <iostream> //cout ve endl #include <cstdlib> //rand() using namespace std; void DiziyiSirala(int [ ], int); //Fonksiyon prototipi int main() { const int diziboyutu=10; int a[diziboyutu]; cout<<"siralanmamis Dizinin Icerigi:\n"; for(int i=0 ; i<diziboyutu ; i++) { a[ i ]=rand()%6+1; } cout<<a[ i ]<<" "; cout<<endl;

44 Selection Sort Sıralama Algoritması ile Küçükten Büyüğe Sıralama (Ascending Sort) DiziyiSirala(a, diziboyutu); cout<<"siralanmis Dizinin Icerigi:\n"; for(int i=0 ; i<diziboyutu ; i++) cout<<a[ i ]<<" "; cout<<endl; } return 0;

45 Selection Sort Sıralama Algoritması ile Küçükten Büyüğe Sıralama (Ascending Sort) //Kendisine arguman olarak aldigi diziyi kucukten buyuge dogru siralayan fonksiyonun tanimi void DiziyiSirala(int b[ ], int dizininboyutu) { int minimumunindeksi; int gecicidegisken; } for(int i=0;i<(dizininboyutu-1);i++) { } minimumunindeksi=i; for(int j=i+1;j<dizininboyutu;j++) { } //swap yap gecicidegisken=b[ i ]; if(b[ j ]<b[minimumunindeksi]) b[ i ]=b[minimumunindeksi]; minimumunindeksi=j; b[minimumunindeksi]=gecicidegisken;

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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar Pointers Java haric, cogu programming languages memory address lerine ait abstract data type destigine sahiptirler C++ da buna pointer denir Pointers lar data structures ve parameter passing in karmasikligini

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ı

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ı

İ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İ : 1 hafta Ödev No : 5 1. Aşağıdaki programların çıktısı

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ı

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

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ı

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

Matlab da Dizi ve Matrisler. Mustafa Coşar Matlab da Dizi ve Matrisler Mustafa Coşar MATLAB Değişkenleri Matlab da değişkenler; skaler, dizi(vektör), matris veya metin (string) türünde olabilirler. Örnek olarak: a=1; b=-3.2e3; c=22/5; metin= mustafa

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ı

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ı

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ı

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ı

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ı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 7: Yapılar Diziler İçerik Yapıların Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İç içe Yapılar Yapılar ve Fonksiyonlar 2 Yapılar (structures) içinde

Detaylı

10/17/2007 Nesneye Yonelik Programlama 3.1

10/17/2007 Nesneye Yonelik Programlama 3.1 Procedure-Based Programming in C++ Çoğu gerçek dünya problemleri binlerce kod satırı gerektirir ( MS Windows NT 5.0 25 million dan fazla kod satırından oluşmaktadır). Yazılımın tasarımı, kodlanması ve

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ı

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ı

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

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ı

Standard Template Library

Standard Template Library Standard Template Library Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun STL ANSI/ISO Standard C++ ın içerdiği algoritmalar ANSI/ISO Standard C++ ın içerdiği algoritmalar

Detaylı

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri

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ı

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

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ü Genel Bilgiler Uzman Mehmet ŞİMŞEK Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

Hafta 12 Karakter Tutan Diziler

Hafta 12 Karakter Tutan Diziler BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken

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ı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar Fonksiyon Tanımı Karmaşıkveuzunprogramları,

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C DİLİNDE FONKSİYONLAR C DİLİNDE FONKSİYONLAR C programlama dili fonksiyon olarak adlandırılan alt programların

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ı

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ı

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ı

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ı

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ı

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ı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

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ı

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 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek

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ı

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler Bölüm 6 Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler Chapter 6 Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Genel Bakış Dizi: Hepsi aynı türde

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ı

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ı

2. Dereceden Denklemin Köklerini Bulan Program

2. Dereceden Denklemin Köklerini Bulan Program 2. Dereceden Denklemin Köklerini Bulan Program [crayon-5bb74e5b18b15225541464/] C++ 2.dereceden denklemin köklerini bulan program [crayon-5bb74e5b18b25989362529/] ÇIKTI; C++ 2. dereceden denklemin köklerini

Detaylı

D İ Z İ L E R A R R A Y S

D İ Z İ L E R A R R A Y S D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String

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 Yapılar ve Birlikler enum Deyimi

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ı

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ı

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ı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I 1 BLM 111 ALGORİTMA VE PROGRAMLAMA I DİZİLER (ARRAYS) Kullanıcıdan N tane tamsayı, xi, alalım ve 1. Bu sayıların ortalamasını hesaplamak isteyelim ort = 0; for (i=0; i

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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 9: Sınıf İçerik Sınıf Tanımı Nesne Tanımı İkili Kapsam Çözme Operatörü UML ile Sınıfların Gösterimi 2 Sınıf kavramı, nesne-tabanlı programlamanın temelini oluşturur.

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

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ı

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ı

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ı

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ı

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ü Genel Bilgiler Öğretim üyesi : Doç.Dr.M.Ali Akcayol Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-11 Karakter Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Karakter ve String Karakter Karakter bir sabit tek tırnak

Detaylı

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN BLM111 Programlama Dilleri I Hafta 10 Diziler Yrd. Doç. Dr. Caner ÖZCAN Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri girilmesi ve girilen verilerin işlenerek belirli bir sistematiğe

Detaylı

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür. DİZİLR GİRİŞ Bu ünitede, akış diyagramlarının yardımıyla birçok veriyi tek bir alanda nasıl saklayabileceğimiz, işleyebileceğimiz ve çağırabileceğimiz konusundaki bilgiler anlatılacaktır. Teknolojinin

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 Giriş Fonksiyonlara Genel Bakış C

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 17: string Sınıfı İçerik string Yapıcı Fonksiyonları string ile Girdi/Çıktı string Operatörleri ı string Nesnesine Sayı Değeri Ekleme 2 string Birden fazla karakter

Detaylı

BİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1

BİLG214. 20.10.2009 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ı

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) 1. Kendisine gönderilen iki karakter dizisini birleştirip geriye tek bir dizi döndüren ve

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ı

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ı

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

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 5. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Programlamaya Giriş Yük. Müh. Köksal Gündoğdu 2 Programlama Dili Bilgisayar dünyası 1960 lardan bu yana pek çok dille tanıştı.

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ı

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından faydalanılmıştır.

Detaylı

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz. Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl

Detaylı

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir. DİZİLER/ARRAY: Dizi yi çeşitli şekillerde tanımlamak mümkün. Dizi içlerinde birden fazla değer saklayabilen veri kümeleridir diye tanımlarsak uygun olur sanırım. Diziler yan yana dizilmiş kutucuklar olarak

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 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

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ı

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ı

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t;

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t; 02.10.2018 2018-2019 Güz Object-Oriented Programming Lab 01 Ön Çalışma - 1. soruyu çözün. - 2. soruda istenen fonksiyonların argümanlarına ve return türlerine karar verin. Nedenlerinizi kısaca açıklayın.

Detaylı

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading)

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) C++ da hazır olarak var olan operatörlere (+, -, *, /,!,

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

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ı

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ı

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ı

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri 7.0. Amaç Ve Kapsam Deneyde C dilinde kullanılan fonksiyon tanımlama ve parametre aktarım yöntemleri hakkında bilgi verilecektir. 7.1. Deneyden

Detaylı

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları Statik Veri Üye ve Metotlar Genel olarak bir sınıfa ait nesnelerin verileri bellekte farklı bölgelerde yer alır. Ancak bazı durumlarda, belirli bir üyenin ortak bir alanda tek bir kopyasının bulunması

Detaylı