Kontrol Yapıları: Örnek Uygulamalar

Bilgisayar ve Programlamaya Giriş
KoşulBasamakDöngüAsalSeri
Sercan KÜLCÜ · Giresun Üniversitesi

Giriş

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

ÖrnekTemel teknikSınır durumu
Tek/çiftKalanNegatif sayı
Basamak/ 100
FaktöriyelÇarpım biriktirici0 ve negatif
AsalBölen araman < 2
Fibonacciİki durum değişkeniadet = 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ı

  1. 0 için basamak sayısı nasıl bulunur?
  2. Rakamlar toplamında % 10 ve / 10 ne yapar?
  3. 0! neden 1'dir?
  4. Asal sayı kontrolü neden karekök civarında bitebilir?
  5. 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