Teori
Öğrenme hedefleri
Bu haftanın sonunda:
- 1 char ile int ilişkisini ve String'in değişmez olduğunu açıklar.
- 2 length, charAt, substring, indexOf, equals, toUpperCase metotlarını kullanır; == ile equals farkını bilir.
- 3 Karakter sayma, ters çevirme ve palindrom algoritmalarını yazar.
- 4 Nehir bulmacasını durum dizisi, hamle döngüsü ve kısıt kontrolü ile Java'da kodlar.
Haftanın Bulmacası
Nehir bulmacası geri döndü. 1. haftada sakladığınız kağıdı çıkarın. Bu kez durumu dört kutulu bir boolean dizisi olarak yazın: [çiftçi, tilki, tavuk, mısır] karşı kıyıda mı? Her hamle bir kutuyu (ve çiftçiyi) çevirir; kısıtlar iki if. Kağıtta kodlayın, sonra Java’da.
Ders Notları
İşlenecek başlıklar:
- char: 16 bit sayı, Unicode; karakter aritmetiği (‘A’ + 1)
- String nesneleri değişmezdir (immutable); her değişiklik yeni String
- length(), charAt(), substring(), indexOf(), contains()
- Karşılaştırma: equals ve compareTo; == neden yanlış
- toUpperCase, toLowerCase, trim, split
- Karakter sayma; String’i char dizisine çevirme; ters çevirme; palindrom
- Doubloon problemi (Think Java 7.9): dizi ile harf sayma
- Nehir bulmacasının kodlanması: durum dizisi, güvenli mi metodu, hamle döngüsü, çözüm yolu yazdırma
- Yapay zekanın 1. haftada yazdığı çözümle karşılaştırma
Temel Kavramlar
- char: Tek karakter; aslında bir sayı.
- Değişmezlik (immutability): String bir kez oluşunca değişmez; metotlar yeni String döndürür.
- charAt(i): i. karakteri verir; 0’dan başlar.
- equals: İçerik karşılaştırması; == referans karşılaştırır.
- Durum dizisi: Bulmacanın anlık durumunu tutan dizi; 1. haftanın “kim hangi kıyıda” sorusu.
Sahadan Örnekler
- Arama motoru ve otomatik tamamlama: yazdığınız her harf bir String algoritmasını tetikler.
- DNA dizileri: ACGT harflerinden oluşan devasa String’ler; gen arama tam olarak indexOf’un akıllı halidir.
Laboratuvar
Bu haftanın laboratuvarı bir hafta sonra yapılır (A Çarşamba 13.15, B Perşembe 15.15): Lab 13. Tarihler için Ders Hakkında sayfasındaki takvime bakın.
Bu haftanın araçları
- JDK 21
- VS Code
- GitHub Codespaces
Etiketler:StringcharcharAtsubstringequalspalindromnehir bulmacası