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ı
Diziler (Arrays) ile ArrayList sınıfı arasındaki temel farkları boyut, veri türü esnekliği ve bellek yönetimi (boxing/unboxing) açılarından karşılaştıran bir tablo hazırlayınız.
Yanıt / ipucu
Diziler sabit boyutlu ve tek bir veri tipine bağlıyken, ArrayList dinamik boyutludur ve 'object' türünde her türlü veriyi saklayabilir. Ancak ArrayList içerisindeki bu esneklik, verilerin sürekli boxing ve unboxing işlemine tabi tutulmasına yol açarak dizilere kıyasla performans kaybına neden olur.
Alıştırma 2myders hazırladı
Bir ArrayList nesnesi oluşturarak içerisine sırasıyla metinsel, sayısal ve mantıksal değerler ekleyen; ardından bu elemanları Sort() ve Reverse() metotlarıyla işlemeye çalıştığınızda nasıl bir sonuçla karşılaştığınızı gözlemleyen bir kod bloğu yazınız.
Yanıt / ipucu
ArrayList içerisine farklı veri tipleri (örneğin string ve int) eklendiğinde Sort() metodu hata verecektir, çünkü farklı tipler arasında varsayılan bir karşılaştırma yapılamaz. Bu alıştırma ile dinamik türlerin sıralama işlemlerindeki kısıtlamalarını ve tip güvenliğinin önemini deneyimlemiş olursunuz.
Alıştırma 3myders hazırladı
Bir kütüphane sistemi için kitapların ISBN numaralarını anahtar (key), kitap isimlerini ise değer (value) olarak tutacak bir HashTable uygulaması tasarlayınız ve aynı anahtarla iki kez veri eklemeye çalıştığınızda sistemin verdiği tepkiyi inceleyiniz.
Yanıt / ipucu
HashTable benzersiz anahtarlar gerektirir; aynı ISBN numarasıyla ikinci bir kayıt eklemeye çalıştığınızda sistem hata (ArgumentException) fırlatacaktır. Bu durum, veri bütünlüğünün ve benzersiz anahtar kullanımının önemini gösterir.
Alıştırma 4myders hazırladı
SortedList ve HashTable koleksiyonlarını elemanların sıralanma biçimi, erişim yöntemleri ve performans özellikleri açısından karşılaştırarak hangi senaryoda hangisini tercih etmeniz gerektiğini tartışınız.
Yanıt / ipucu
HashTable verileri sıralamaz ancak hash kodları sayesinde çok hızlı arama sağlar; SortedList ise elemanları anahtara göre otomatik sıralar ve hem indeks hem anahtarla erişim sunar. Sıralamanın kritik olduğu raporlama senaryolarında SortedList, sadece hızlı arama gereken büyük veri setlerinde ise HashTable tercih edilmelidir.
Alıştırma 5myders hazırladı
SortedList sınıfının sunduğu GetByIndex() ve GetKey() metotlarının işlevlerini araştırarak, bu metotları kullanan ve belirli bir indeksteki hem anahtarı hem de değeri ekrana yazdıran örnek bir C# konsol uygulaması geliştiriniz.
Yanıt / ipucu
GetByIndex(index) metodu belirtilen konumdaki değeri dönerken, GetKey(index) metodu o konumdaki anahtarı getirir. Bu metotlar sayesinde SortedList, klasik sözlük yapılarından farklı olarak elemanlara sıralı indeks numaraları üzerinden de erişebilmenizi sağlar.