Diziler çoğu programlama dilleri için hayati önem taşımaktadır. Eleman olarak adlandırılan bir değişken topluluğudur:

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

Download "Diziler çoğu programlama dilleri için hayati önem taşımaktadır. Eleman olarak adlandırılan bir değişken topluluğudur:"

Transkript

1 209 BÖLÜM 7 Diziler Bölümün İçindekileri Bu bölümde aynı veri türünden bir seri eleman ile çalışmanın bir yolu olarak dizileri öğreneceksiniz. Dizilerin ne olduğunu, nasıl bildirildiklerini, oluşturulduklarını, örneklerinin nasıl yaratıldıklarını ve kullanıldıklarını açıklayacağız. Tek boyutlu ve çok boyutlu dizileri inceleyeceğiz. Diziler üzerinden döngülü yinelemeler yapmaya, standart girdiden okumaya ve standart çıktıya yazmaya yarayan farklı yollar öğreneceksiniz. Dizileri kullanarak çözülebilecek birçok örnek alıştırma vereceğiz ve gerçekten ne kadar yararlı olduklarını göstereceğiz. 7.2 Dizi Nedir? Diziler çoğu programlama dilleri için hayati önem taşımaktadır. Eleman olarak adlandırılan bir değişken topluluğudur: C# dilinde bir dizinin elemanları 0, 1, 2,... N 1 ile numaralandırılır. Bu sayılara endeks denir. Belirli bir dizideki toplam eleman sayısına dizinin uzunluğu diyoruz. Belirli bir dizinin tüm elemanları temel yada referans türü olsun olmasın aynı türdendir. Bir grup benzer elemanı sıralı bir dizilim olarak temsil eder, ve bir bütün olarak onlarla çalışmayı mümkün kılar.

2 210 Diziler farklı boyutlarda olabilir, ancak en çok kullanılanları tek-boyutlu ve iki-boyutlu dizilerdir. Tek-boyutlu dizilere vektör denir ve iki-boyutlu olanlar da matris olarak bilinir. 7.3 Dizi Bildirimi ve Bellek Tahsisi C# dilinde dizilerin uzunluğu sabittir, yaratılmaları sırasında ayarlanmıştır ve toplam eleman sayısını belirler. Bir dizinin uzunluğu ayarlandıktan sonra artık bunu değiştiremezsiniz Dizi Bildirimi C# dilinde bir diziyi şu şekilde bildiririz: Bu örnekte, myarray değişkeni tamsayı türünde ([]) olan dizinin ismidir. Tamsayı dizisi bildirdik anlamına gelir. [] gösterimi ile değişkenin tek bir elemanı değil, bir eleman dizisini gösterdiğini bildiriyoruz. Dizi türünde bir değişken bildirdiğinizde, bu bir referans türüdür ve bir değere sahip olmaz (null işaret eder). Bunun nedeni elemanlar için belleğin henüz tahsis edilmemiş olmasıdır. Aşağıdaki şekil bildirilmiş bir dizi değişkeninin, dizinin elemanları için bellek henüz tahsis edilmemişken nasıl göründüğünü gösteriyor: Programın yürütme yığınında myarray ismindeki değişken oluşturuluyor ve değer olarak null atanıyor (hiçbir değer tutmuyor anlamına gelir) Dizi Oluşturma new İşleci C# dilinde bellek ayırmak için kullanılan anahtar sözcük new yardımıyla bir dizi oluşturulur:

3 211 Bu örnekte, türünde 6 eleman uzunluğunda bir dizi ayırıyoruz. Dinamik bellekte (yığın) 6 tamsayılık bir alanın tahsis edildiği ve bunların hepsinin 0 değeri ile başlatıldığı anlamına gelir. Şekil gösteriyor ki, dizi için yapılan bellek tahsisi sonrasında myarray değişkeni dinamik bellekte değerlerin saklandığı bir adrese işaret etmektedir. C# dilinde bir dizinin elemanları her zaman dinamik bellekte (aynı zamanda yığın denir) depolanır. Bir dizi için bellek tahsisi sırasında parantez içinde dizinin uzunluğunu tanımlamak için toplam eleman sayısını (negatif olmayan bir tamsayı) belirleriz. Elemanlarının türü new anahtar sözcüğünden sonra yazılır, böylece bellekte tahsis edilecek elemanların ne türde olacaklarını gösteririz Dizinin Başlatılması ve Varsayılan Değerler Verilen bir dizinin herhangi bir elemanını kullanmaya başlamadan önce, başlatılması veya varsayılan değere sahip olması gereklidir. Bazı programlama dillerinde varsayılan değerler yoktur ve o zaman, başlatılmayan bir elemana erişmeye çalışırsanız, bu hataya neden olabilir. C# dilinde dizilerin elemanları da dahil olmak üzere tüm değişkenlerin varsayılan bir başlangıç değeri vardır. Bu değer sayısal türler için 0 ve temel-olmayan türler için 0 eşdeğeridir (örneğin, referans türü için null ve bool türü için false). Tabii ki başlangıç değerlerini açıkça ayarlayabilirsiniz. Bunu farklı şekillerde yapabilirsiniz. İşte bunlardan biri: Bu durumda dizinin elemanlarını bildirim zamanında oluşturuyoruz ve başlatıyoruz. Aşağıdaki şekil üzerinde dizinin değerleri bildirim anında başlatıldığı zaman, bellekte nasıl tahsis edildiği görülmektedir.

4 212 Bu sözdizimi ile new işleci yerine kıvırcık parantezleri kullanabilirsiniz. Parantez arasında dizinin başlangıç değerleri virgülle ayrılarak listelenir. Onların sayısı dizinin uzunluğunu belirler Dizi Bildirimi ve Başlatılması Örnek Bir dizinin nasıl bildirileceğine ve başlatılacağına bir örnek daha verelim: string Monday Tuesday Wednesday Thursday Friday Saturday Sunday Bu durumda string türünde yedi elemandan oluşan bir dizi tahsis ediyoruz. string türü bir referans türüdür (object) ve değerleri dinamik bellekte saklanır. daysofweek değişkeni yığıt bellekte tahsis edilir ve dinamik belleğin dizinin elemanları içeren bir bölümüne işaret etmektedir. Bu yedi elemanın tümünün türü olan string dinamik belleğin gerçek değerin saklandığı farklı bir bölümüne işaret eder. Şekilde dizinin bellekte nasıl tahsis edildiğini görüyoruz:

5 Dizi Sınırları Dizilerin varsayılan olarak sıfır-tabanlıdır, yani bu elemanların numaralandırmasının 0 ile başladığı anlamına gelir. Birinci eleman 0 endeksine sahiptir, ikinci 1, vb. N elemanlı bir dizinin son elemanı N 1 endeksine sahiptir. 7.4 Dizi Elemanlarına Erişim Dizi elemanlarına doğrudan doğruya endekslerini kullanarak erişiriz. Her bir eleman, dizinin adını takiben elemanın endeksi (ardışık sayı) köşeli parantez içine yerleştirilerek erişilebilir. Hem okuma ve hem yazma için verilen bir dizinin elemanlarına erişebilirsiniz, yani bu elemanlara değişkenlermiş gibi davranılabilir anlamına gelir. Bir dizinin elemanına ulaşmak için bir örnek aşağıda verilmiştir: Yukarıdaki örnekte index endeksli pozisyonda yer alan elemana 100 değerini atıyoruz. Aşağıdaki örnekte sayılardan oluşan bir dizi tahsis ediyoruz ve sonra bazı elemanlarını değiştiriyoruz: Değişiklik yapıldıktan sonra bu dizi bellekte aşağıda gösterildiği gibi tahsis edilir: Gördüğümüz gibi, değerleri açıkça belirlenenler dışında bütün elemanlar dizi için bellek tahsis edildiği zaman 0 ilk değeri ile başlatılmıştır.

6 214 Bir döngü deyimi kullanarak dizi boyunca yineleme yapabilirsiniz. Bu tür yinelemelerin en yaygın şekli for-döngüsü kullanmaktır: for Dizinin Sınırlarını Aşmak.NET Framework her elemana erişim girişiminde endeksin geçerli aralıkta mı yoksa dizinin sınırları dışında mı olduğuna dair otomatik denetim yapar. Geçersiz (mevcut olmayan) bir elemana erişmeye çalıştığınızda, System.IndexOutOfRangeException istisnası atılır. Otomatik denetim gerçekten dizilerle çalışırken geliştiricilerin hataları bulmasına yardımcı olur. Tabii ki, istisnalar performansı etkiler. Ancak Ayrılmamış belleğe erişim, Sınır dışında gibi hatalardan kaçınmak için bu bedeli gözardı edebiliriz. Dizinin sınırları dışında bir elemana erişmeye çalışan bir örnek aşağıda verilmiştir: IndexOutOfRangeExample static Console Yukarıdaki örnekte altı tamsayı içeren bir dizi tahsis ediyoruz. İlk endeks 0 ve son endeks 5 değerine sahiptir. Endeksi 6 olan bir elemanı konsolda yazdırmaya çalışıyoruz, ancak böyle bir eleman olmadığı için bu bir istisnaya yol açar:

7 Diziyi Tersine Çevirmek Örnek Bir sonraki örnekte dizinin elemanlara erişeceğiz ve endekslerini kullanarak onların yerlerini değiştireceğiz. Görevimiz ters sırayla elemanları yazdırmaktır. İkinci bir yardımcı dizi kullanarak dizinin elemanlarını ters çevireceğiz. Birinci dizinin tüm elemanları ters sırayla ikinci dizide tutulacaktır. Unutmayın ki her iki dizinin uzunluğu aynı olacaktır, ve ilk tahsisten sonra değişmeden kalacaktır. ArrayReverseExample // Get array size // Declare and create the reversed array // Initialize the reversed array for // Pr the reversed array for Console // Output: Örnek şu şekilde çalışır: başlangıçta türünde tek boyutlu bir dizi tahsis ediyoruz ve 1 den başlayarak 5 e kadar ardışık sayılar ile ilk değer atıyoruz. Bundan sonra length değişkeninde dizinin uzunluğunu tutuyoruz. Not ediniz ki, dizinin toplam eleman sayısını döndürecek olan Length özelliğini kullanıyoruz. C# dilinde her dizi length özelliğine sahiptir. Bundan sonra aynı length uzunluğundaki bir reversed dizisini bildiriyoruz. Bu dizide orijinal dizinin tüm elemanları tutulacak, ancak ters sırayla olacak. Elemanları tersine çevirmek için bir for-döngüsü kullanıyoruz. Her tekrarda index değişkenini bir artırıyoruz ve array dizisinin ardışık tüm elemanlarına eriştiğimizden emin oluyoruz. Döngü koşulu dizinin uçtan uca yineleneceğini garanti eder.

8 216 array üzerinden yineleme yapıldığında ne olacağını takip edelim: İlk yinelemede index 0 değerine sahiptir. array[index] kullanarak dizinin ilk elemanına erişiyoruz ve sırasıyla reversed[length index 1] ile yeni reversed dizisinin son elemanına erişiyoruz. Değerleri yeni diziye atıyoruz. Böylece, array dizisinin ilk elemanının değerini reversed dizisinin son elemanına tahsis ediyoruz. Her yinelemede index bir artırılıyor. Bu şekilde, array dizisinin sırayla bir sonraki elemanına ve reversed dizisinin sırayla bir önceki elemanına erişiyoruz. Sonuç olarak diziyi ters çeviriyoruz ve yazdırıyoruz. Örnekte, dizi boyunca ardışık yinelemeleri gösterdik, bu, aynı zamanda farklı döngü yapıları (örneğin, while ve foreach) ile de yapılabilir. 7.5 Konsoldan Diziyi Okutma Konsoldan dizi değerlerini nasıl okutabiliriz, görelim. Konsoldan okutma için bir for-loop ve.net Framework araçlarını kullanacağız. Başlangıçta, Console.ReadLine() kullanarak konsoldan bir satır okutacağız ve sonra.parse() kullanarak bu satırı bir tamsayıya ayrıştıracağız ve n değişkenine bu değeri atayacağız. Daha sonra dizinin uzunluğu olarak n sayısını kullanacağız. Yine dizi boyunca yineleme yapmak için bir döngü kullanıyoruz. Her tekrarda geçerli eleman olarak konsoldan okuduğumuz değeri ayarlıyoruz. Döngü, n defa devam edecektir ki, bu tüm dizi boyunca yineleme anlamına gelir ve bu yüzden dizinin her elemanı için bir değer okumuş oluruz: Console Simetrik Diziler Örnek İlk ve son elemanları eşitse ve aynı zamanda ikinci elemanı ile sondan bir önceki elemanı eşitse ve bunun gibi devam eden bir dizi simetriktir. Şekil üzerinde simetrik diziler için birkaç örnek gösterilmiştir:

9 217 Console Bir sonraki örnekte bir dizinin simetrik olup olmadığını kontrol edeceğiz: Console Enter a positive eger: Console Console Enter the values of the array: Console bool true break false Console Is symmetric? {0} Bir diziyi başlatıyoruz ve konsoldan elemanlarını okutuyoruz. Simetrik olup olmadığını kontrol etmek için dizinin yarısı boyunca yineleme yapmamız gerekiyor. Dizinin orta elemanı array.length / 2 endeksine sahiptir. Uzunluğu tek sayı ise bu indeks tam da ortadaki elemanı gösterir, ancak bir çift sayı ise bu endeks ortanın hemen sağındaki elemanı gösterir (ortadaki eleman iki eleman arasında kalmaktadır). Böylece döngü 0 ile array.length / 2 (dahil değil) arasında çalışmalıdır. Bir dizinin simetrik olup olmadığını kontrol etmek için, bir bool değişkenini kullanıyoruz ve ilk olarak dizi simetrik olduğu varsayılmaktadır. Dizi üzerinden yineleme sırasında ilk eleman ile son elemanı, ikinci eleman ile sondan bir önceki elemanı, vb. karşılaştırıyoruz. Bir noktada elemanlar eşit değilse, o zaman dizinin simetrik olmadığı anlamına gelecek şekilde bool değişkenine false atıyoruz. Sonunda konsolda bool değişkeninin değerini yazdırıyoruz.

10 Konsol Üzerine Diziyi Yazdırmak Çoğu kez, verilen bir diziyle çalışmamızı bitirdikten sonra, dizi elemanlarını konsolda yazdırmak zorunda kalırız. Konsolda bir dizinin elemanlarını yazdırmak dizi elemanlarını başlatmaya benzerdir, yani dizi boyunca yineleme yapmak için bir döngü kullanılır. Yazdırmak için katı kurallar yoktur, ancak genellikle uygun biçimlendirme çeşitleri kullanılır. Sık sık yapılan bir hata da, diziyi bir sayı gibi yazdırmak girişimidir: string one two three four Console Ne yazık ki bu kod dizinin elemanlarını yazdırmaz, sadece türünü yazdırır. Bu kod çalıştırıldıktan sonra, çıktı olarak sonucu aşağıdaki gibidir: Bir for-döngüsü kullanılarak, dizinin elemanlarını elle yazdırırız: string one two three four // Pr each element on a separate line Console Element[{0}] = {1} Bir for-döngüsü kullanarak dizi üzerinde yineleme yapıyoruz, bu yineleme array.length defa tekrarlayacaktır ve Console.WriteLine() kullanarak geçerli elemanı biçimlendirilmiş bir dize olarak yazdırıyoruz. Sonuç aşağıdaki gibidir:

11 Dizinin Elemanları Üzerinden Yineleme Gördüğümüz gibi, bir dizinin elemanları üzerinden yineleme diziler ile çalışırken en çok kullanılan tekniklerden biridir. Bir döngü kullanarak ardışık yineleme her elemana kendisinin endeksi aracılığıyla ulaşmamıza izin verir, eleman değerini istediğimiz gibi değiştirmemiz mümkün olur. Farklı döngü yapıları ile bunu yapabilirsiniz, ancak en uygun döngü for-deyimidir. Bu tür yinelemenin nasıl çalıştığını detaylı olarak inceleyeceğiz For-Döngüsü ile Yineleme Diziler ve endeks yapıları ile çalışırken, for-döngülerini kullanmak iyi bir uygulamadır. Aşağıdaki örnekte bir sayı dizisinin tüm elemanlarının değerlerini iki katına çıkaracağız ve onları yazdıracağız: Console // Pr the number Console // Output: Dizinin geçerli endeksini bir for-döngüsü kullanarak takip ediyoruz ve gerektiği gibi elemanlarına erişiyoruz. Tüm elemanlar üzerinden ardışık yineleme zorunda değilsiniz, yani algoritmanın gerektirdiği şekilde dizin elemanları boyunca yineleme yapabilirsiniz. Örneğin tüm elemanlar üzerinden değil, bunlardan bazılarını döngü içinde yineleyebilirsiniz: Console Output: Console // Output: Bu örnekte sadece çift endeksli pozisyonlarda bulunan elemanları yineliyoruz ve değerlerinin karesini alıyoruz.

12 220 Bazen bir dizi üzerinden ters sırada yineleme yapmak isteyebilirsiniz. Benzer şekilde yapılır, ancak bu sefer döngü son elemanın endeksi ile başlamalıdır ve endeks 0 (dahil olmak üzere) değerine gelene kadar her adımda azalmalıdır. Bir örnek aşağıda verilmiştir: Console Reversed: Console // Reversed: Bu örnekte tersten diziyi yineliyoruz ve konsolda her elemanı yazdırıyoruz foreach Döngüsü ile Yineleme Dizi elemanlarının yinelenmesi için en çok kullanılan yapılardan biri de foreach döngüsüdür. C# dilinde foreach döngü yapısı aşağıdaki gibidir: foreach in // Process the value here Bu programlama yapısında var yinelenen elemanların türüdür. collection dizinin kendisidir (yada herhangi bir başka eleman topluluğu) ve item her adımdaki geçerli dizi elemanıdır. Genel olarak foreach döngü yapısı for-döngüsü gibi aynı özelliklere sahiptir. Temel fark yinelemenin tüm elemanlar üzerinden daima yapılmış olmasıdır başından sonuna kadar. Mevcut endekse erişemeyiz, sadece topluluğun kendisi tarafından tanımlanan bir şekilde topluluk üzerinden yineleme yapabiliriz. Diziler için yinelemenin sırası birinci elemandan başlayarak ardışık olarak sonuncuya kadardır. Foreach-döngülerinde döngü değişkeni salt-okunurdur, bu nedenle döngü gövdesi içinden mevcut döngü elemanını değiştiremeyiz. Elemanları değiştirmemizin gerekli olmadığı, sadece onları okumamızın gerektiği durumlar için foreach-döngü deyimi kullanılır foreach Döngüsü ile Yineleme Örnek Bir sonraki örnekte dizi boyunca yinelemek için foreach döngüsünü nasıl kullanacağınızı öğreneceksiniz:

13 221 string foreach Sofia Washington London Paris in Console Her elemanı bir dizeden oluşan capitals dizisini bildirdikten sonra, foreach döngüsünü kullanarak dizi boyunca yineleme yapıyoruz ve konsolda elemanlarını yazdırıyoruz. Her adımdaki mevcut eleman capital değişkeninde saklanıyor. Kod çalıştırıldığında çıktı olarak sonucu aşağıdaki gibidir: 7.8 Çokboyutlu Diziler Tek-boyutlu diziler matematikte vektör olarak da bilinmektedir. Çoğu zaman birden fazla boyutta dizilere gerek duyarız. Örneğin standart satranç tahtasını kolayca 8 x 8 büyüklüğünde olan (yatay yönde 8 hücre ve dikey yönde 8 hücre içeren) iki boyutlu bir dizi olarak temsil edebiliriz Çokboyutlu Dizi Nedir? Matris Nedir? C# dilinde her geçerli tür bir dizinin elemanları için kullanılabilir. Yani, daha sonra tartışacağımız gibi dizilerden oluşan bir dizi oluşturabiliriz. [] kullanarak tamsayılardan oluşan tek-boyutlu bir diziyi bildiririz, ve iki-boyutlu bir diziyi bildirmek için [,] kullanırız. Bunu aşağıdaki örnek göstermektedir: İki boyutu olduğu için bu diziler iki-boyutlu olarak adlandırılır. Aynı zamanda matris (matematiksel terimi) olarak da bilinir. Birden fazla boyutu olan diziler genel olarak çok-boyutlu olarak adlandırılır.

14 222 Bir boyut daha ekleyerek, bu şekilde üç-boyutlu diziler bildirebilirsiniz: Teorik olarak bir dizinin boyutları için sınır yoktur, ancak pratikte ikiden fazla boyutlu dizileri kullanmayız, bu nedenle iki-boyutlu diziler üzerinde odaklanacağız Çokboyutlu Dizi Bildirimi ve Bellek Tahsisi Çokboyutlu dizileri tek-boyutlu dizilere benzer şekilde bildiririz. İlk boyut dışında her boyut virgül ile işaretlenmiştir: float string Yukarıdaki örnekte, iki-boyutlu ve üç-boyutlu diziler oluşturuyoruz. Her boyut köşeli parantez [] içinde bir virgül tarafından temsil edilmektedir. new anahtar sözcüğünü kullanarak çokboyutlu diziler için bellek tahsis edilir ve gösterildiği gibi her boyut için parantez içinde bir uzunluk belirlenir: float string float string Bu örnekte Matrix, [] türünde 3 elemandan oluşan iki-boyutlu bir dizidir ve bu 3 elemanın her biri 4 uzunluğundadır. İki-boyutlu dizileri bu şekilde açıklamanın anlaşılması zordur. Bu nedenle onları boyut olarak satır ve sütunları olan iki-boyutlu matrisler olarak düşünebiliriz: Kare matrisin satır ve sütunları 0 dan başlayarak n 1 e kadar olan endeksler ile numaralandırılır. m x n boyutlarına sahip iki-boyutlu bir dizi, tam olarak m*n elemanı barındırır.

15 İki-Boyutlu Dizinin Başlatılması İki-boyutlu dizileri tek-boyutlu dizileri başlattığımız gibi aynı şekilde başlatırız. Bildirimden hemen sonra eleman değerlerini sıralayabiliriz: // row 0 values // row 1 values // The matrix size is 2 x 4 (2 rows, 4 cols) Yukarıdaki örnekte, 2 satır ve 4 sütun boyutunda tamsayı türündeki iki-boyutlu bir diziyi başlatıyoruz. Dış parantez içine, birinci boyutun elemanlarını yerleştiriyoruz, yani dizinin satırlarını. Her satır tek-boyutlu bir diziyi içerir ve bunların değerlerini başlatmayı biliyoruz Çokboyutlu Dizi Elemanlarına Erişim Matrisler iki boyutludur ve sırasıyla iki endeks kullanarak her bir elemanına erişiriz: birincisi satır için ve ikincisi sütun için. Çok-boyutlu dizilerde her boyut için farklı bir endeks vardır.! Çok-boyutlu bir dizinin her boyutu 0 endeksi ile başlar. Sonraki örneği inceleyelim: matrix dizisinin 2 satır ve 4 sütunda saklanan 8 elemanı vardır. Her elemana şu şekilde erişilebilir: matrix matrix matrix matrix matrix matrix matrix matrix

16 224 Bu örnekte endeksleri kullanılarak her bir elemana erişebilirsiniz. Satır endeksini row değişkenine ve sütun endeksini col değişkenine atarsak, o zaman herhangi bir elemana aşağıda gösterildiği gibi erişebilirsiniz: matrix Çokboyutlu dizileri kullandığınızda her eleman benzersizdir ve dizinin endeksleri ile tanımlanabilir: ndimensionalarray Çokboyutlu Dizinin Uzunluğu Çokboyutlu bir dizinin her boyutu, programın yürütülmesi sırasında ulaşılabilir olan kendi uzunluğuna sahiptir. İki-boyutlu bir dizi için verilen bir örneğe bakalım: Bu iki boyutlu dizinin satır sayısını matrix.getlength(0) kullanarak ve satır başına toplam sütun sayısını matrix.getlength(1) kullanarak alabilirsiniz. Yani, bu durumda, matrix.get- Length(0) fonksiyonu 2 döndürür ve matrix.getlength(1) fonksiyonu 4 döndürür.

17 Matrisin Yazdırılması Örnek Bir sonraki örnekte iki boyutlu dizilerin konsolda nasıl yazdırabileceğini göstereceğiz: // Declare and initialize a matrix of size 2 x 4 // row 0 values // row 1 value // Pr the matrix on the console Console Console Öncelikle yineleme yapacağımız ve konsolda yazdırmak istediğimiz diziyi bildiriyoruz ve başlatıyoruz. Dizi iki-boyutludur, bu nedenle satırlar üzerinden yineleme yapan bir for-döngüsü ve her satır için sütunlar arasında yineleme yapacak içiçe bir for-döngüsü kullanıyoruz. Her yinelemede mevcut elemanı bu elemana erişmek için uygun olan satır ve sütun endekslerini kullanarak yazdıracağız. Bu kod parçası çalıştırıldığında, çıktı olarak sonucu aşağıdaki gibidir: Konsoldan Matrisi Okutma Örnek Bu örnekte konsoldan iki-boyutlu bir dizinin nasıl okutulacağını öğreneceksiniz. Öncelikle, iki-boyutun uzunluk değerlerini okutmalıyız ve daha sonra iki içiçe döngü yardımıyla her elemanın değerini belirlemeliyiz (ve sonunda dizi değerlerini yazdırmalıyız):

18 226 Enter the number of the rows: Enter the number of the columns: Enter the cells of the matrix: matrix[{0},{1}] = Program çalıştırıldığında, sonuç olarak çıktısı (bu durumda, üç satır ve iki sütundan oluşan bir dizi için) aşağıdaki gibidir: Bir Matrisin Maksimal Platformu Örnek Bir sonraki örnekte bir başka ilginç problemi çözeceğiz: Tamsayılardan oluşan, iki boyutlu dikdörtgensel bir dizi (matris) veriliyor ve bizden istenen elemanlarının toplamı maksimum

19 227 olan 2 x 2 boyutlu alt-matrisini bulmak ve bunu konsolda yazdırmaktır. Probleme şöyle bir çözüm bulunabilir: MaxPlatform2x2 void // Declare and initialize the matrix // Find the maximal sum platform of size 2 x 2 long long // Pr the result Console The best platform is: Console {0} {1} Console {0} {1} Console The maximal sum is: {0}

20 228 Program çalıştırıldığında, düzgün sonuç verdiğini göreceksiniz: Algoritmayı şöyle açıklayabiliriz: İlk olarak tamsayıları içeren iki-boyutlu bir dizi oluşturmalıyız. bestsum, bestrow, bestcol adındaki yardımcı değişkenleri bildiriyoruz ve bestsum değişkenini minimum long türü değeri ile başlatıyoruz (yani, herhangi bir başka değer bundan daha büyük olacaktır). Unutmayınız ki, 4 tamsayının toplamı türüne sığmayabilir, bu nedenle long kullanmalıyız. bestsum değişkeninde, mevcut maksimal toplamı ve bestrow ve bestcol değişkenlerinde, mevcut en iyi alt-matrisin endeksini tutuyoruz. Mevcut satır ve mevcut sütun 2 x 2 büyüklüğündeki alt matrisin başlangıç elemanını gösterir. Bu matris şu ana kadar bulunan ve elemanları toplamı maksimum olan matristir. 2 x 2 boyutlu bir alt-dizinin bütün elemanlarına erişmek için birinci elemanın endeksini bilmemiz gerekir. Bunu bildikten sonra, kolayca geri kalan 3 elemana aşağıdaki şekilde erişebiliriz: Bu örnekte, row ve col 2 x 2 boyutundaki alt-matrisin ilk elemanının endeksini belirtiyor. Bu alt-matris matrix dizisinin bir parçasıdır. Belirli bir satır ve sütundan başlayan 2 x 2 boyutundaki matrisin dört elemanına nasıl erişeceğimizi bildikten sonra, maksimal alt-matrisi bulmak için kullanacağımız algoritmaya bakabiliriz. En iyi toplama sahip olan platforma ulaşana kadar, matrisin her 2 x 2 platformu üzerinden yineleme yapmamız gerekiyor. İçiçe iki for-döngüsü ve row ve col adında iki değişken kullanarak bunu gerçekleştireceğiz. Unutmayın ki, tüm matris üzerinden yineleme yapmıyoruz,

21 229 çünkü row + 1 veya col + 1 dizin endeksine erişmeye çalışırsanız, son satır veya son sütundaki gibi, matris aralığının dışına çıkılacaktır ve sırasıyla System.IndexOutOfRangeException istisnası atılır. Alt-matrisin mevcut her elemanının komşu elemanlarına erişiyoruz ve onları topluyoruz. Mevcut toplamın şu an için mevcut en yüksek toplamdan daha büyük olup olmadığını kontrol ediyoruz. Eğer öyleyse, mevcut toplamımız en iyi toplam olur ve bestrow ve bestcol güncellemesi mevcut endeksler için yapılır. Yani, ana matris boyunca yapılan yinelemelerinin tümü bittiğinde, maksimal toplam ve 2 x 2 boyutundaki alt-matrisin ilk elemanı ve endeksleri bulunur. Aynı maksimal toplama sahip birden fazla alt-matris olması durumunda, ilk görüneni bulacağız. Örneğin sonunda 2 x 2 büyüklüğünde istenilen alt-matrisi ve elemanlarının toplamını konsolda uygun formatta yazdırıyoruz.

22 Çentikli Dizi C# dilinde dizi içinde dizi tanımlayabiliriz, bunlara çentikli (jagged) dizi diyoruz. Çentikli dizilerde dizi içinde dizi görülür, yani her satırı kendine özgü bir dizi içerir, ve o dizi diğer satırlardaki dizilerden daha farklı bir uzunluğa sahip olabilir Çentikli Dizi Bildirimi Çokboyutlu dizilerle karşılaştırdığımızda, çentikli dizilerin bildiriminde göze çarpan tek fark, sadece bir adet çift parantezin kullanılmamasıdır. Çentikli dizilerde her boyut, boyut başına birer çift parantez ile bildirilir. Aşağıda gösterildiği şekilde tahsis edilir: Bir çentikli dizinin nasıl bildirileceği, nasıl bellek tahsis edileceği ve başlatılacağı aşağıda gösterilmiştir (elemanları tamsayılardan oluşan birer dizi olan çentikli dizi): Bellek Tahsisi Aşağıdaki şekil şimdi bildirilen myjaggedarray adındaki çentikli dizinin bellekte nasıl tahsis edildiğini gösteriyor. Gördüğümüz gibi çentikli dizi bir referanslar topluluğudur. Çentikli dizi herhangi bir diziyi doğrudan içermemektedir, onlara işaret eden elemanları içerir. Boyutu önceden bilinmez, ve bu nedenle CLR sadece içerideki dizilere olan referansları tutar. Çentikli dizi bir dizi-elemanı için bellek ayırdıktan sonra, bir sonraki referansın başlangıcı, dinamik bellekte yeni oluşturulan bloğa işaret eder. Örneğin myjaggedarray değişkeni programın yürütme yığıtında saklanır ve dinamik bellekte bir bloğa işaret eder. Dinamik belleğin bu noktasında diğer üç blok için ayrılan belleğin üç referansı seri olarak birbiri ardı sıra sakla-

23 231 nır. Bunların her biri çentikli dizinin elemanlarını tanımlayacak şekilde tamsayılardan oluşan birer diziyi içermektedir Elemanları Başlatma ve Erişim Çentikli diziyi oluşturan dizilerin elemanlarına onların endekslerini kullanarak erişebiliriz. Bir sonraki örnekte yukarıda bildirilen myjaggedarray içindeki 0 endeksinde saklanan dizinin endeksi 3 olan elemanına erişeceğiz: Çentikli dizinin elemanları tek-boyutlu veya çok-boyutlu diziler olabilir. İki-boyutlu dizilerden oluşan çentikli diziye bir örnek aşağıda verilmiştir:

24 Pascal Üçgeni Örnek Bir sonraki örnekte Pascal üçgenini oluşturmak ve görselleştirmek için bir çentikli dizi kullanılmıştır. Matematikten bildiğimiz gibi, üçgenin ilk satırı 1 sayısını içerir ve her bir sonraki sayı yukarıdaki satırda bulunan iki sayının toplamı tarafından oluşturulur. Buna göre Pascal üçgeninin ilk 5 satırı aşağıdaki gibi görünmelidir: Belirli bir yüksekliğe sahip, örneğin 12, bir Pascal üçgenini oluşturmak için triangle[][] adında çentikli dizi tahsis ediyoruz. Bu dizi sıfırıncı satırda 1 eleman, birinci satırda 2 eleman, ikinci satırda 3 eleman, vb. içerir. İlk önce triangle[0][0]=1 olarak diziyi başlatıyoruz ve hücrelerin geri kalanı 0 varsayılan değeri ile tahsis edilmiştir. Sonra satırlar üzerinden döngü aracılığıyla yineleme yapıyoruz ve row satırını kullanarak row + 1 satırının değerlerini elde ediyoruz. Mevcut satırın sütunları, içiçe bir for döngüsü üzerinden çalışır. Üçgenin değerlerini belirten Pascal tanımları aşağıdaki gibidir: mevcut satırdaki mevcut hücrenin değeri (triangle[row][col]) aşağıdaki hücreye (triangle[row+1][col]) ve sağ taraftaki ve aşağıdaki hücreye (triangle[row+1] [col+1]) eklenir. Sonucun hizalanması gerektiği için uygun boşluklarla (String sınıfının PadLeft() metotunu kullanarak) yazdırıyoruz. Programı çalıştırdığınızda, düzgün çalıştığını ve verilen bir satır sayısı için (aşağıdaki örnekte YÜKSEKLİK=12) Pascal üçgenini oluşturduğunu göreceksiniz.

25 233 PascalTriangle void // Allocate the array in a triangle form long long for long // Calculate the Pascal s triangle for // Pr the Pascal s triangle for Console Console {0,3} Console

26 234 Alıştırmalar adet tamsayıdan oluşan bir dizinin her elemanını kendi endeksinin 5 katı ile çarparak elemanları konsolda yazdıran bir program yazın. 2. İki diziyi konsoldan okutan ve eşit olup olmadıklarını kontrol eden bir program yazın. (İki dizinin eşit olması için eşit uzunlukta olmaları ve aynı endeksteki tüm elemanlarının eşit olması gerekir.) 3. char türünde iki diziyi alfabetik sıralamaya göre (karakter karakter) karşılaştıran ve hangisinin daha önce geldiğini yazdıran bir program yazın. 4. Bir dizinin ardışık eşit elemanlarından oluşan en uzun serisini bulan ve yazdıran bir program yazın. Örneğin: {1, 1, 2, 3, 2, 2, 2, 1} à {2, 2, 2}. 5. Bir dizinin ardışık artan sırada yerleştirilmiş elemanlarından oluşan en uzun serisini bulan ve yazdıran bir program yazın. Örneğin: {3, 2, 3, 4, 2, 2, 4} à {2, 3, 4}. 6. arr[n] dizisinin artan sırada elemanlarından oluşan en uzun serisini bulan bir program yazın. Elemanların ardışık olarak yerleştirilmiş olması gerekli değildir. Örneğin: {9, 6, 2, 7, 4, 7, 6, 5, 8, 4} à {2, 4, 6, 8}. 7. Konsoldan iki tamsayı, N, ve K (K<N) ve N adet tamsayıdan oluşan bir diziyi okutan bir program yazın. Dizinin toplamı en büyük olan K adet ardışık elemanını bulun. 8. Bir dizinin sıralanması demek elemanlarının artan (yada azalan) sırada yeniden düzenlenmesi anlamına gelir. Selection sort algoritmasını kullanarak verilen bir diziyi sıralayan bir program yazın. 9. Verilen bir dizinin toplamı en büyük olan ardışık sayılarından oluşan altdizisini bulan bir program yazın. E.g.: {2, 3, -6, -1, 2, -1, 6, 4, -8, 8} à Verilen bir dizide en sık tekrarlanan elemanı bulan bir program yazın. Örneğin: {4, 1, 1, 4, 2, 3, 4, 4, 1, 2, 4, 9, 3} à 4 (5 kere). 11. Bir dizide toplamı verilen bir S sayısı olan ardışık sayı dizisini bulan bir program yazın. Örneğin: {4, 3, 1, 4, 2, 5, 8}, S=11 à {4, 2, 5}.

27 Kare matrisler oluşturan ve elemanlarını aşağıdaki şekilde gösterildiği gibi biçimlendirilmiş halde konsolda yazdıran bir program yazın. Matrislerin boyutu konsoldan okutulacaktır. 4 x 4 boyutunda matrisler için aşağıdaki örneklere bakınız ve benzer tarzda diğer boyutlar için de programlayınız: 13. n x m boyutunda dikdörtgensel dizi oluşturan bir program yazın. Boyutları ve elemanları konsoldan okutulmalıdır. Oluşturulan dizi için (3, 3) boyutunda maksimal toplamı olan bir platform bulun. 14. string türünde bir matrisin eşit elemanlarından oluşan en uzun serisini bulan bir program yazın. Bir matris için seri, aynı satır, sütun veya çapraz komşu elemanlardan oluşan bir küme olarak tanımlanıyor. 15. Latin harflerinin tümünü içeren bir diziyi oluşturan bir program yazın. Kullanıcı konsoldan bir sözcük girişi yaptığında, program sözcüğü oluşturan harflerin endeksini konsolda yazdıracaktır. 16. Tamsayılardan oluşan sıralı bir dizide verilen bir elemanı bulmak için binary search algoritmasını kullanan bir program yazın. 17. Tamsayılardan oluşan bir diziyi merge sort algoritmasını kullanarak sıralayan bir program yazın. 18. Tamsayılardan oluşan bir diziyi quick sort algoritmasını kullanarak sıralayan bir program yazın. 19. [ ] aralığındaki tüm asal sayıları bulan bir program yazın.

28 * N elemanlı verilen bir dizinin toplamı S olan bir alt kümesi olup olmadığını kontrol eden bir program yazın. N, S sayıları ve dizinin elemanları konsoldan okutulacaktır. Dizide aynı sayı birçok kez eleman olarak girilebilir. Örneğin: {2, 1, 2, 4, 3, 5, 2, 6}, S = 14 à evet ( = 14) 21. Verilen N, K ve S sayıları için N adet sayı içinden toplamı S olan K adet elemanı bulan bir program yazın. S toplamı bulunamazsa program bunun mümkün olmadığını söylemelidir. Örneğin: {3, 1, 2, 4, 9, 6}, S = 14, K = 3 à evet ( = 14) 22. Tamsayılardan oluşan bir diziyi konsoldan okutan ve elemanlarının olabildiğince az sayıda olanları çıkarıldığında, geriye kalan dizinin artan sırada sıralı olması koşulunu sağlayacak bir program yazın. Örneğin: {6, 1, 4, 3, 0, 3, 6, 4, 5} à {1, 3, 3, 4, 5} 23. Konsoldan N ve K tamsayılarını okutan ve [1...N] sayı aralığındaki K elemanın tüm permütasyonlarını (eleman sırası önemli) yazdıran bir program yazın. Örneğin: N = 3, K = 2 à {1, 1}, {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}. 24. Konsoldan N ve K tamsayılarını okutan ve [1...N] sayı aralığındaki K elemanların tüm kombinasyonlarını (eleman sırası önemli değil) yazdıran bir program yazın. Örneğin: N = 5, K = 2 à {1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {3, 5}, {4, 5}. 25. Verilen bir matriste aynı değerden oluşan en büyük alanın kaç adet eleman tarafından oluşturulduğunu bulan bir program yazın. Matris içinde alan, (satır ve sütun bakımından) komşu elemanlardan voluşan bir küme olarak tanımlanıyor. 3 değerine sahip 13 elemandan oluşan bir maksimum alan aşağıdaki örnekte gösterilmiştir:

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 (Denetim Yapıları, Diziler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Denetim Yapıları 1 if else Seçme yapısı, mantıksal

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ı

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

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

Detaylı

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları) Çok Boyutlu Diziler gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-101/cok-boyutlu-diziler Kategori : Mobil Lisans : Creative Commons (by-nc-sa) En son 28.04.2016 tarihinde güncellendi Yazar

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

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek) HAZIRLAYAN MUSA DEMIRELLI BISHKEK KYRGYZ TURKISH BOYS HIGH SCHOOL education.online.tr.tc compsources0.tripod.com Olimpiyat Soruları 1- Bir diziyi ters çeviren algoritma ve program 2- Bir diziyi sıralayan

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

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ı

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ı

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür. Programlama Temelleri Trim: metnin başındaki ve sonundaki boşlukları kaldırır. Trim( Selam ) Selam şeklinde çıkar Split: metin içinde ayırma işlemi yapar. Split( ) Metni boşluklarını diziye atar. oşluk

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

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ı

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ı

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

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ı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 2 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Mantıksal Operatörler ve Denetim Yapıları 1 Boolean Boolean, doğru ya da yanlış

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ı

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ı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

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ı

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ı

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

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ı

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

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

Detaylı

C Konsol Giriş Çıkış Fonksiyonları

C Konsol Giriş Çıkış Fonksiyonları C Konsol Giriş Çıkış Fonksiyonları Öğr. Gör. M. Ozan AKI Rev 1.0 Stringlerde Özel Karakterler \n : Bir sonraki satırın ilk sütununa git \b : Backspace (önceki karakteri sil) \a : Bip sesi \\ : Ters bölü

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit

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ı

Dizi ( Array ) ve Dizgi ( String )

Dizi ( Array ) ve Dizgi ( String ) Java da Dizi ( Array ) ve Dizgi ( String ) Tanımlama BBS-515 Nesneye Yönelik Programlama Ders #6 (25 Kasım 2009) İçerikç Geçen ders: Kalıtım ( inheritance ) -- tekrar ziyaret Java da super kullanımı Java

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ı

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ı

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ı

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ı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

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ı

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ı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

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 Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

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ı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)... Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 5 KONU: Matlab de Diziler ve Matrisler İÇ İÇE FOR DÖNGÜSÜ

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

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ı

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ı

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ı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

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ı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

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ı

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 Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

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ı

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA BİLGİSAYAR PROGRAMLAMA YRD. DOÇ. DR. YAKUP EMÜL CUMHURİYET ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) 1 B04. C de Program

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 5. DERS NOTU Konu: Döngü Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU DÖNGÜ YAPILARI Birçok uygulamada bazı işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Bizlere bu

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 18.04.2011 1 DİSK DOSYALARI İLE ÇALIŞMA DOSYALARIN AÇILMASI C programlama dilinde bir dosyayı kullanabilmek için, öncelikle o dosyanın açılması gerekmektedir. Hem okuma hem de yazma

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

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ı

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ı

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ı

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ı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

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

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ı

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

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

Detaylı

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1 Sıralı Erişimli Dosyalar Kütük Organizasyonu 1 Dosya Fiziksel depolama ortamlarında verilerin saklandığı mantıksal yapılara dosya denir. Dosyalar iki şekilde görülebilir. Byte dizisi şeklinde veya Alanlar

Detaylı

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo Microsoft Excell Excel Nedir? Excel programı; veriler üzerinde hesap yapabilme, verileri tabloya dönüştürebilme, verileri karşılaştırıp sonuç üretebilme, grafik oluşturma, veri yönetimi yapabilir. http://mf.dpu.edu.tr/~eyup

Detaylı

C# Örnek Uygulamalar I

C# Örnek Uygulamalar I C# Örnek Uygulamalar I Operatörler Aşağıda verilen program parçalarının sonucunda ekranda ne yazar? Console.WriteLine(a+++b--); Console.WriteLine(a+++--b); Açıklama: (a++)+(b--) şeklinde olur. Önce a ile

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar BLM-112 PROGRAMLAMA DİLLERİ II Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/

Detaylı

Temel Giriş/Çıkış Fonksiyonları

Temel Giriş/Çıkış Fonksiyonları Temel Giriş/Çıkış Fonksiyonları Temel giriş/çıkış fonksiyonları, bütün programla dillerinde mevcuttur. Bu tür fonksiyonlar, kullanıcıya ekrana veya yazıcıya bilgi yazdırmasına, ve bilgisayara klavyeden

Detaylı

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez... Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen

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ı

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ı