Kontrol Yapıları: Örnek Uygulamalar
Bilgisayar ve Programlamaya Giriş
KoşulBasamakDöngüAsalSeri
Sercan KÜLCÜ · Giresun ÜniversitesiGiriş
Öğrenme Çıktıları
Modelleme
Problemi değişken ve adımlara ayırmak.
Seçim
Uygun karar veya döngü yapısını seçmek.
Doğrulama
Sınır değerleriyle sonucu test etmek.
İyileştirme
Tekrarlı kodu ve gereksiz işlemleri azaltmak.
Yöntem
Uygulama Çözme Yolu
Girdi / çıktı
Örnek çözüm
Algoritma
Java kodu
Test
- Her örnekte önce matematiksel veya mantıksal kural bulunur.
- Kod, bu kuralın son aşamadaki ifadesidir.
Kararlar
Tek mi Çift mi?
int sayı = 17;
if (sayı % 2 == 0)
System.out.println("Çift");
else
System.out.println("Tek");- 2 ile bölümden kalan 0 ise sayı çifttir.
- Negatif tam sayılarda da aynı kural geçerlidir.
Kararlar
Mutlak Değer
int sayı = -8;
if (sayı < 0) {
sayı = -sayı;
}
System.out.println(sayı);- Sıfır ve pozitif değer değişmeden kalır.
- Integer.MIN_VALUE özel bir taşma durumudur.
Basamaklar
Basamak Sayısı
int kalan = Math.abs(sayı);
int basamak = kalan == 0 ? 1 : 0;
while (kalan > 0) {
basamak++;
kalan /= 10;
}- Her tam sayı bölmesi son basamağı kaldırır.
- 0 sayısının bir basamağı olduğu ayrıca ele alınır.
Basamaklar
Rakamlar Toplamı
int kalan = Math.abs(sayı);
int toplam = 0;
while (kalan > 0) {
toplam += kalan % 10;
kalan /= 10;
}- % 10 son rakamı verir.
- / 10 işlenen son rakamı sayıdan çıkarır.
Döngüler
Üs Alma
int sonuç = 1;
for (int i = 0; i < üs; i++) {
sonuç *= taban;
}- Üs 0 olduğunda döngü çalışmaz ve sonuç 1 kalır.
- Bu temel örnek negatif üsleri kapsamaz.
Döngüler
Faktöriyel
long sonuç = 1;
for (int i = 2; i <= n; i++) {
sonuç *= i;
}- n negatifse girdi reddedilmelidir.
- long türü de yeterince büyük n için taşar.
Döngüler
Asal Sayı
boolean asal = n >= 2;
for (int i = 2; asal && i <= n / i; i++) {
if (n % i == 0) asal = false;
}- 0 ve 1 asal değildir.
- n / i karşılaştırması i × i taşma riskini azaltır.
Uygulamalar
Rastgele Sayı
Random rastgele = new Random(); int değer = rastgele.nextInt(1, 101); System.out.println(değer);
- Alt sınır dahil, üst sınır hariçtir.
- Testlerin tekrarlanabilir olması için gerektiğinde sabit tohum kullanılabilir.
Uygulamalar
Öğrenci Numarasını Çözme
- Basamak gruplarının anlamı önceden belgelenmelidir.
- Bölme, kalan veya metin parçalama yaklaşımı kullanılabilir.
- Başta sıfır bulunabiliyorsa numarayı sayı yerine String olarak saklamak daha güvenlidir.
Seriler
Fibonacci Serisi
long a = 0, b = 1;
for (int i = 0; i < adet; i++) {
System.out.print(a + " ");
long sonraki = a + b;
a = b;
b = sonraki;
}- Güncelleme sırası iki önceki değeri korur.
- Seri büyük indekslerde long sınırını aşar.
Karşılaştırma
Örnek ve Temel Teknik
| Örnek | Temel teknik | Sınır durumu |
|---|---|---|
| Tek/çift | Kalan | Negatif sayı |
| Basamak | / 10 | 0 |
| Faktöriyel | Çarpım biriktirici | 0 ve negatif |
| Asal | Bölen arama | n < 2 |
| Fibonacci | İki durum değişkeni | adet = 0 |
Doğrulama
Test Tasarımı
- Her problem için normal bir değer seçin.
- 0, 1, negatif ve üst sınıra yakın değerleri ayrı test edin.
- Beklenen sonucu kodu çalıştırmadan hesaplayın.
- Değişkenleri tur tur izleyerek ilk sapmayı bulun.
Özet
Bölüm Özeti
- Sayı problemleri kalan, tam sayı bölmesi ve biriktirici kalıplarını tekrar kullanır.
- Başlangıç değeri ve döngü sınırı sonuç için kritik önemdedir.
- Özel durumlar koddan önce belirlenmelidir.
- Büyük değerlerde tür taşması ve performans ayrıca değerlendirilir.
Özet
Kontrol Soruları
- 0 için basamak sayısı nasıl bulunur?
- Rakamlar toplamında % 10 ve / 10 ne yapar?
- 0! neden 1'dir?
- Asal sayı kontrolü neden karekök civarında bitebilir?
- Fibonacci güncellemesinde geçici değer neden gerekir?
Son
Kontrol Yapıları: Örnek Uygulamalar
1 / 1Sercan KÜLCÜ, Tüm hakları saklıdır.
← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt