Ders kitabının açık uçlu alıştırmaları. Bunlar çoktan seçmeli sınav sorusu değil — düşünmeni, araştırmanı, kendi cümlelerinle anlatmanı isteyen etkinlikler. Kitabın verdiği örnek yanıtlar kapalı duruyor; önce kendin dene.
Alıştırma 1myders hazırladı
C dilinde statik dizi boyutunun sınırlarını ve dinamik bellek ihtiyacını düşünerek, program çalışırken boyutu değiştirilemeyen bir dizinin yaratabileceği olası sorunları ve bu durumun önüne geçmek için programcının ne yapması gerektiğini araştırıp açıklayınız.
Yanıt / ipucu
Dizinin boyutu çalışma zamanında değiştirilemediği için ya gereğinden fazla bellek ayrılarak israf edilir ya da yetersiz boyut nedeniyle veri kaybı veya taşma yaşanır. Programcı, bu durumu önlemek için programın ihtiyaç duyabileceği maksimum eleman sayısını önceden doğru tahmin etmeli veya dinamik veri yapılarını tercih etmelidir.
Alıştırma 2myders hazırladı
'int sayilar[10] = {5, 3};' şeklinde tanımlanmış bir dizide, ilk iki eleman dışındaki diğer elemanların bellek adreslerindeki değerlerinin ne olacağını C derleyicisinin kurallarına göre açıklayınız.
Yanıt / ipucu
C dilinde bir diziye boyutundan daha az sayıda başlangıç değeri verildiğinde, geri kalan tüm sağdaki elemanlar derleyici tarafından otomatik olarak sıfır (0) değerine eşitlenir. Dolayısıyla, bu dizinin indeks 2'den indeks 9'a kadar olan tüm elemanları sıfır değerini alacaktır.
Alıştırma 3myders hazırladı
Bir fonksiyona dizinin tamamını göndermek ile dizinin sadece tek bir elemanını göndermek arasındaki mekanizma farkını (call-by-reference ve call-by-value) karşılaştırarak açıklayınız.
Yanıt / ipucu
Dizinin tamamı gönderildiğinde, dizinin başlangıç adresini temsil eden bir referans aktarılır (call-by-reference) ve fonksiyondaki değişiklikler orijinal diziyi etkiler. Tek bir eleman gönderildiğinde ise sadece o elemanın kopyası aktarılır (call-by-value) ve fonksiyondaki değişiklikler orijinal elemanı etkilemez.
Alıştırma 4myders hazırladı
Bubble Sort (Baloncuğu Sıralaması) algoritmasının çalışma mantığını göz önüne alarak, [5, 1, 4, 2] dizisinin küçükten büyüğe sıralanması esnasındaki ilk geçiş (first pass) adımlarını ve yer değiştirme işlemlerini kağıt üzerinde simüle ediniz.
Yanıt / ipucu
İlk geçişte sırasıyla (5,1) karşılaştırılır ve yer değiştirerek dizi [1, 5, 4, 2] olur; ardından (5,4) karşılaştırılıp yer değiştirerek [1, 4, 5, 2] olur; son olarak (5,2) karşılaştırılıp yer değiştirerek [1, 4, 2, 5] elde edilir. Böylece en büyük eleman olan 5, ilk geçiş sonunda dizinin en sonuna 'baloncuk' gibi yükselmiş olur.
Alıştırma 5myders hazırladı
'int matris[3][4];' şeklinde tanımlanmış iki boyutlu bir dizinin satır ve sütun yapısını çizerek görselleştiriniz ve bu matrisin son satırının son sütunundaki elemana erişmek için kullanılması gereken indeks numaralarını belirtiniz.
Yanıt / ipucu
Bu matris 3 satır (0, 1, 2 indeksli) ve 4 sütundan (0, 1, 2, 3 indeksli) oluşur. Son satırın son sütunundaki elemana erişmek için kullanılması gereken indeksler 'matris[2][3]' şeklindedir.