Algoritmalar

Algoritmalar · Çalışma Soruları
Problem ve algoritmaÖrnek algoritmalarİzleme ve testDoğrusal ve ikili aramaSıralama
Her slaytta bir soru · çoktan seçmeli, çıktı ve adım adım çalıştırma soruları. Önce kendiniz çözün, sonra cevabı açın. · Sercan KÜLCÜ

Çoktan Seçmeli · Problem ve Algoritma

Soru 1: Problem Tanımında Kısıt

“n sayısının faktöriyelini 64 bitlik tam sayı (Java long) ile hesapla” probleminin tanımında aşağıdakilerden hangisi bir kısıttır?

Girdi: nAlgoritmaÇıktı: n!Kısıt: girdinin hangi değerleri geçerli?

D: Kısıt, değerlerin sınırı ve geçerlilik koşuludur. A girdiyi, B çıktıyı, C ise doğrulama için küçük bir örneği tanımlar. 20! = 2.432.902.008.176.640.000 long'a sığar, 21! sığmaz; bu yüzden kısıt 0 ≤ n ≤ 20'dir.

Çoktan Seçmeli · Problem ve Algoritma

Soru 2: Hangisi Algoritma Değil?

İyi bir algoritma açık, sıralı, uygulanabilir ve sonlu olmalıdır. Aşağıdaki adım dizilerinden hangisi bu özelliklerden birini sağlamadığı için algoritma sayılmaz?

B: i 1'den başlayıp hep artar; i > 0 koşulu hiçbir zaman yanlış olmaz, adımlar sonsuza dek sürer (sonluluk bozulur). A'da i her turda büyür ve n'i geçince döngü biter; C ve D zaten tek bir karardan oluşur.

Çıktı Sorusu · Örnek Algoritmalar

Soru 3: Geçicisiz Yer Değiştirme

İki sayıyı küçükten büyüğe yazmak isteyen bir öğrenci gecici değişkenini kullanmamış. a = 7, b = 3 girilirse çıktı nedir?

oku a, b
eğer a > b ise
    a = b
    b = a
yaz a, b
Cevabı göster

Çıktı: 3 3

  • 7 > 3 doğru → bloğa girilir.
  • a = b: a = 3; a'nın eski değeri 7 kaybolur.
  • b = a: b = 3 (a artık 3).
a3b3

Doğrusu: önce gecici = a, sonra a = b, b = gecici → 3 7.

Adım Adım Çalıştırma · Örnek Algoritmalar

Soru 4: Üç Sayıyı Sırala

İki sayıyı sıralama adımı (a-b, b-c, a-b) üç kez uygulanıyor. a = 9, b = 2, c = 5 için değişkenleri izleyin.

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

Üç değer okunur.

2a9b5c

9 > 2 doğru → a ile b yer değiştirir (gecici ile üç atama).

2a5b9c

9 > 5 doğru → b ile c yer değiştirir. En büyük (9) artık c'de.

2 > 5 yanlış → değişim yok. Bu son karşılaştırma, ikinci adımda c'den gelen küçük değeri a ile karşılaştırmak için gerekir.

2a5b9c

Çıktı 2 5 9. En fazla 3 karşılaştırma ile üç sayı sıralanır.

oku a, b, c
eğer a > b ise a ile b yer değiştir
eğer b > c ise b ile c yer değiştir
eğer a > b ise a ile b yer değiştir
yaz a, b, c

Çoktan Seçmeli · Örnek Algoritmalar

Soru 5: Çarpımın Başlangıç Değeri

Faktöriyel algoritmasında sonuc = 1 yerine yanlışlıkla sonuc = 0 yazılırsa n = 5 için ne yazılır?

oku n
eğer n < 0 ise "hata" yaz ve dur
sonuc = 0      // hata burada
i = 2
i ≤ n iken
    sonuc = sonuc × i
    i = i + 1
yaz sonuc

A: 0 × i her zaman 0'dır; döngü 4 kez döner ama sonuc hiç değişmez. Biriktiricinin başlangıç değeri işleme uygun seçilir: toplam için 0, çarpım için 1.

Çıktı Sorusu · Örnek Algoritmalar

Soru 6: Bir Eksik Tur

Faktöriyel algoritmasında döngü koşulu i ≤ n yerine i < n yazılmış. n = 5 ve n = 1 için çıktılar nedir?

oku n
sonuc = 1
i = 2
i < n iken
    sonuc = sonuc × i
    i = i + 1
yaz sonuc
Cevabı göster

n = 5 → 24, n = 1 → 1

i (tur başı)2345
i < 5 ?doğrudoğrudoğruyanlış
sonuc2624—
  • i = 5 iken döngü biter; ×5 hiç yapılmaz: 4! = 24 hesaplanır (bir eksik tur, off-by-one).
  • n = 1'de döngü zaten dönmez ve 1 doğrudur; hata yalnızca n ≥ 2'de görünür. Bu yüzden tek test yetmez.

Adım Adım Çalıştırma · Geçmiş Sınav (2024-25 Final A)

Soru 7: Azalan Çarpım

Sınavdaki Java kodunun sözde kod karşılığı aşağıdadır. Her turda sonuc ve sayi nasıl değişir, ne yazılır?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

Başlangıç: çarpım için 1.

6 > 2 doğru → 1. tur.

sonuc = 1 × 6 = 6; sayi = 5; 6 yazılır.

5 > 2 doğru → sonuc = 6 × 5 = 30; sayi = 4.

4 > 2 doğru → sonuc = 30 × 4 = 120; sayi = 3.

3 > 2 doğru → sonuc = 120 × 3 = 360; sayi = 2.

2 > 2 yanlış → döngü biter. Çıktı: 6 30 120 360 (4 tur). Yazma çarpmadan sonra olduğu için ilk değer 1 değil 6'dır.

sonuc = 1
sayi = 6
sayi > 2 iken
    sonuc = sonuc × sayi
    sayi = sayi - 1
    yaz sonuc + " "

Çıktı Sorusu · Geçmiş Sınav (2024-25 Bütünleme A)

Soru 8: Hep Aynı Çarpan

Aşağıdaki algoritmanın çıktısı nedir? (Sınavdaki Java for döngüsünün sözde kod karşılığı.)

sonuc = 1
sayac = 6
i = 3
i < sayac iken
    sonuc = sonuc × sayac
    yaz sonuc + " "
    i = i + 1
Cevabı göster

Çıktı: 6 36 216

  • i = 3, 4, 5 için döngü 3 kez döner (6 − 3 = 3).
  • Çarpan i değil, hep sayac = 6'dır: 6, 6², 6³.
i3456
i < 6doğrudoğrudoğruyanlış
sonuc636216—

B kitapçığında sayac = 7, i = 4 ile başlar: 7 49 343.

Çıktı Sorusu · Örnek Algoritmalar

Soru 9: Fibonacci'de Atama Sırası

Fibonacci algoritmasında son iki atamanın yeri değiştirilmiş. n = 6 için çıktı nedir?

oku n
a = 0, b = 1
0'dan n-1'e kadar tekrarla
    yaz a
    sonraki = a + b
    b = sonraki      // yer değişti
    a = b
Cevabı göster

Çıktı: 0 1 2 4 8 16 (doğrusu 0 1 1 2 3 5)

  • b = sonraki yapıldıktan sonra a = b eski b'yi değil yeni b'yi alır; a ile b hep eşit olur.
  • Her tur sonraki = a + a = 2a → değer ikiye katlanır.
tur012345
yazılan a0124816
tur sonu a = b12481632

Doğru sıra: önce a = b, sonra b = sonraki.

Adım Adım Çalıştırma · Örnek Algoritmalar

Soru 10: Fibonacci Penceresi

Dersteki Fibonacci algoritması n = 5 için çalıştırılıyor. Her tur sonunda a, b ve sonraki ne olur?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

0a1b

İlk iki terim: a = 0, b = 1. 5 tur dönülecek (0…4).

Tur 0: 0 yazılır; sonraki = 0 + 1 = 1; pencere kayar: a = 1, b = 1.

Tur 1: 1 yazılır; sonraki = 2; a = 1, b = 2.

Tur 2: 1 yazılır; sonraki = 3; a = 2, b = 3.

Tur 3: 2 yazılır; sonraki = 5; a = 3, b = 5.

00111223345586

Tur 4: 3 yazılır; sonraki = 8; a = 5, b = 8.

5 tur bitti. Çıktı 0 1 1 2 3; a = 5 ve b = 8 hesaplandı ama yazılmadı.

oku n
a = 0, b = 1
0'dan n-1'e kadar tekrarla
    yaz a
    sonraki = a + b
    a = b
    b = sonraki

Adım Adım Çalıştırma · Örnek Algoritmalar

Soru 11: Palindrom: "Kayık"

Palindrom algoritması "Kayık" metni için çalıştırılıyor. Kaç karşılaştırma yapılır, sonuç ne olur?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

k0a1y2ı3k4

Küçük harfe çevrilir: "kayık" (5 harf).

İki uç: sol = 0, sag = 4.

k0a1y2ı3k4

0 < 4 doğru. metin[0] = 'k', metin[4] = 'k' → aynı.

İçe doğru: sol = 1, sag = 3.

k0a1y2ı3k4

1 < 3 doğru. metin[1] = 'a', metin[3] = 'ı' → farklı → yanlış döndürülür.

"Kayık" palindrom değildir. 2 karşılaştırma yetti; ilk farklı çiftte algoritma durur, ortadaki 'y' hiç incelenmez.

metni oku
metni kurala göre temizle
sol = 0, sag = uzunluk - 1
sol < sag iken
    karakterler farklıysa yanlış döndür
    sol = sol + 1, sag = sag - 1
doğru döndür

Çoktan Seçmeli · Örnek Algoritmalar

Soru 12: Kaç Karşılaştırma?

Palindrom algoritması temizlenmiş hâli 11 harfli bir palindrom olan metin için çalıştırılırsa kaç karakter karşılaştırması yapılır?

D: Her karşılaştırmada iki uçtan birer karakter elenir; sol < sag oldukça devam edilir. 11 harfte (0,10), (1,9), (2,8), (3,7), (4,6) çiftleri karşılaştırılır; sol = sag = 5 olunca döngü biter. En fazla ⌊uzunluk / 2⌋ = 5.

Çıktı Sorusu · Örnek Algoritmalar

Soru 13: Asal mı: n = 91

Asal sayı algoritması n = 91 için ne yazar? Kaç kez % işlemi yapılır?

oku n
eğer n < 2 ise "asal değil" yaz ve dur
i = 2
i × i ≤ n iken
    eğer n % i == 0 ise "asal değil" yaz ve dur
    i = i + 1
"asal" yaz
Cevabı göster

Çıktı: asal değil, 6 kez % yapılır.

i234567
i×i ≤ 914916253649
91 % i113110

91 = 7 × 13: çift sayı olmadığı için ilk bakışta asal sanılabilir. Küçük bölen 7, √91 ≈ 9,5'ten küçük olduğu için sınırın içinde yakalanır.

Çoktan Seçmeli · Örnek Algoritmalar

Soru 14: Karekök Sınırında Hata

Asal sayı algoritmasında döngü koşulu i × i ≤ n yerine i × i < n yazılırsa aşağıdaki girdilerden hangisi için yanlış sonuç üretilir?

A: 49 = 7 × 7. i = 7 iken 49 < 49 yanlış olduğu için döngü 7'yi denemeden biter; 2…6 bölmediği için "asal" yazılır. Tam kareler (4, 9, 25, 49…) bu hatayı yakalayan sınır testleridir. 21 için 3 bölen olarak bulunur; 29 ve 2 zaten asaldır.

Çıktı Sorusu · Geçmiş Sınav (2023-24 Vize)

Soru 15: Sonraki Asal

Sınavdaki sonrakiAsal metodunun sözde kodu aşağıdadır. sayi = 24 için çıktı nedir?

oku sayi
tekrarla
    sayi = sayi + 1
    eğer asal(sayi) ise
        yaz sayi + " asal sayıdır"
        dur
    değilse
        yaz sayi + " asal sayı değildir"
Cevabı göster
25 asal sayı değildir
26 asal sayı değildir
27 asal sayı değildir
28 asal sayı değildir
29 asal sayıdır
  • Artırma kontrolden önce yapılır (++sayi): 24'ün kendisi denenmez.
  • 25 = 5×5, 26 = 2×13, 27 = 3×9, 28 = 4×7; 29 asaldır → döngü durur.

Aynı mantıkla oncekiAsal(100) (2024-25 Vize) 99, 98'i eler ve 97 döndürür.

Çoktan Seçmeli · Geçmiş Sınav (2023-24 Vize)

Soru 16: Basamak Toplamında Eksik Satır

Rakamlar toplamını bulan algoritmada bir satır eksik (sınavın cevap anahtarında da bu satır unutulmuştu). Boşluğa hangisi gelmelidir?

oku sayi
toplam = 0
sayi > 0 iken
    ______________
    toplam = toplam + rakam
    sayi = sayi / 10   // tam bölme
yaz toplam

C: sayi % 10 son basamağı verir (472 % 10 = 2); sayi / 10 ise son basamağı atar (472 / 10 = 47). Eksik satır olmadan rakam hiç tanımlanmaz ve kod derlenmez. Sınav anahtarındaki yorumlar da ("Son basamağı al") bu satırın yerini gösteriyordu.

Adım Adım Çalıştırma · Örnek Algoritmalar

Soru 17: Basamak Toplamı: 472

Tamamlanmış rakamlar toplamı algoritmasını sayi = 472 için izleyin.

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

Toplam için başlangıç 0.

472 > 0 doğru. rakam = 472 % 10 = 2.

sayi47rakam2toplam2

toplam = 2; sayi = 472 / 10 = 47 (tam bölme, kesir atılır).

47 > 0 doğru. rakam = 7.

toplam = 2 + 7 = 9; sayi = 4.

4 > 0 doğru. rakam = 4.

sayi0rakam4toplam13

toplam = 13; sayi = 4 / 10 = 0.

0 > 0 yanlış → döngü biter. Tur sayısı = basamak sayısı (3).

13 yazılır (4 + 7 + 2). Basamaklar sağdan sola işlendi.

oku sayi
toplam = 0
sayi > 0 iken
    rakam = sayi % 10
    toplam = toplam + rakam
    sayi = sayi / 10
yaz toplam

Çoktan Seçmeli · Geçmiş Sınav (2023-24 Telafi, 2024-25 Vize)

Soru 18: Basamak Sayısı ve 0

Sınavlarda basamak sayısı iki biçimde yazıldı. sayi = 0 girilirse sırasıyla ne yazılır?

// I. önce koşul (while)
basamak = 0
sayi > 0 iken
    basamak = basamak + 1
    sayi = sayi / 10
yaz basamak

// II. sonda koşul (do-while)
basamak = 0
tekrarla
    basamak = basamak + 1
    sayi = sayi / 10
sayi > 0 iken
yaz basamak

B: I'de 0 > 0 yanlış olduğu için gövde hiç çalışmaz → 0 (ama 0 tek basamaklıdır). II'de gövde koşuldan önce en az bir kez çalışır → 1. 2025-26 Vize anahtarı bu yüzden while'dan önce eğer sayi == 0 ise 1 döndür kontrolü ekler.

Çıktı Sorusu · Doğrulama

Soru 19: Çift Sayıların Toplamı

1'den n'e kadar çift sayıları toplayan algoritmanın n = 10 ve n = 0 için çıktısı nedir? İzleme tablosu çıkarın.

oku n
toplam = 0
i = 2
i ≤ n iken
    toplam = toplam + i
    i = i + 2
yaz toplam
Cevabı göster

n = 10 → 30, n = 0 → 0

Anitoplami ≤ 10
başlangıç20—
tur 122doğru
tur 246doğru
tur 3612doğru
tur 4820doğru
tur 51030doğru
çıkış1230yanlış

n = 0 sınır testidir: 2 ≤ 0 yanlış, döngü hiç dönmez. (n = 7 için 2+4+6 = 12.)

Çoktan Seçmeli · Doğrulama

Soru 20: Test Durumları

Faktöriyel algoritması (kısıt 0 ≤ n ≤ 20) için hazırlanan test tablosundaki satırlardan hangisi yanlıştır?

C: 21! değeri doğrudur ama long en çok 9.223.372.036.854.775.807 tutar; 21! sığmaz (taşma). Bu test, algoritmanın kısıtı (n ≤ 20) denetlemesi gerektiğini gösterir. Tek bir başarılı test, algoritmanın her girdi için doğru olduğunu kanıtlamaz.

Çıktı Sorusu · Arama

Soru 21: Doğrusal Arama

dizi = {4, 8, 15, 16, 23, 42} için aşağıdaki iki çağrı ne döndürür? Her birinde kaç karşılaştırma yapılır?

int ara(int[] dizi, int hedef) {
    for (int i = 0; i < dizi.length; i++) {
        if (dizi[i] == hedef) return i;
    }
    return -1;
}
ara(dizi, 16);
ara(dizi, 5);
Cevabı göster

ara(dizi, 16) → 3 (4 karşılaştırma)
ara(dizi, 5) → −1 (6 karşılaştırma)

4081152163234425hedef
  • 16 bulununca return döngüyü hemen bitirir; 23 ve 42'ye bakılmaz.
  • 5 dizide yok: dizi sıralı olsa da doğrusal arama bunu kullanmaz, n = 6 elemanın hepsine bakar (en kötü durum, O(n)).

Adım Adım Çalıştırma · Arama

Soru 22: İkili Arama: 27

{2, 5, 9, 14, 20, 27, 33} dizisinde 27 aranıyor. Her turda sol, sag ve orta değerlerini izleyin.

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

205192143204275336

Aralık tüm dizi: 0…6.

205192143204275336

0 ≤ 6 doğru, 1. tur. orta = 0 + 6/2 = 3, dizi[3] = 14.

205192143204275336

14 ≠ 27; 14 < 27 → hedef sağ yarıda: sol = 4.

205192143204275336

4 ≤ 6 doğru, 2. tur. orta = 4 + (6 − 4)/2 = 5, dizi[5] = 27.

27 == 27 → return 5. 2 turda bulundu; doğrusal arama 6 karşılaştırma yapardı.

int ikiliAra(int[] dizi, int hedef) {
    int sol = 0, sag = dizi.length - 1;
    while (sol <= sag) {
        int orta = sol + (sag - sol) / 2;
        if (dizi[orta] == hedef) return orta;
        if (dizi[orta] < hedef) sol = orta + 1;
        else sag = orta - 1;
    }
    return -1;
}

Çıktı Sorusu · Arama

Soru 23: İkili Arama: Olmayan Değer

Aynı dizide ({2, 5, 9, 14, 20, 27, 33}) ikili arama ile 4 aranırsa kaç tur yapılır, her turda sol / sag / orta nedir, ne döner?

205192143204275336
Cevabı göster
tursolsagortadizi[orta]karar
10631414 > 4 → sag = 2
202155 > 4 → sag = 0
300022 < 4 → sol = 1
—101 ≤ 0 yanlış → döngü biter

3 tur, sonuç −1. 4, 2 ile 5 arasında olurdu; sol sag'ı geçince aralık boşalır. 7 eleman için en çok ⌊log₂ 7⌋ + 1 = 3 tur.

Çoktan Seçmeli · Arama

Soru 24: Sırasız Dizide İkili Arama

İkili arama sıralı olmayan {7, 3, 9, 5, 1} dizisinde 5 için çalıştırılırsa ne olur?

7031925314

C: Tur 1: orta = 2, 9 > 5 → sag = 1 (5'in bulunduğu sağ taraf yanlışlıkla elendi). Tur 2: orta = 0, 7 > 5 → sag = −1; 0 ≤ −1 yanlış → −1. Yarıyı elemek ancak dizi sıralıysa güvenlidir.

Çoktan Seçmeli · Arama

Soru 25: En Kötü Durumda Karşılaştırma

1000 elemanlı sıralı bir dizide bulunmayan bir değer aranıyor. En kötü durumda doğrusal arama kaç karşılaştırma, ikili arama kaç tur yapar?

A: Doğrusal arama n = 1000 elemanın hepsine bakar: O(n). İkili arama her turda aralığı yarıya indirir: ⌊log₂ 1000⌋ + 1 = 9 + 1 = 10 tur, O(log n). n = 1.000.000'da fark 1.000.000'a karşı 20 olur.

Adım Adım Çalıştırma · Sıralama

Soru 26: Seçmeli Sıralama

[6, 2, 8, 3] dizisi seçmeli sıralama ile sıralanıyor. Her geçişte enK ve dizi nasıl değişir, toplam kaç karşılaştırma yapılır?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

60218233

i = 0: aday en küçük dizi[0] = 6.

j = 1: 2 < 6 → enK = 1. j = 2: 8 < 2 hayır. j = 3: 3 < 2 hayır.

20618233

dizi[0] ile dizi[1] yer değiştirir → 2 yerine oturdu.

i = 1: enK = 1 (6). j = 2: 8 < 6 hayır. j = 3: 3 < 6 → enK = 3.

20318263

dizi[1] ile dizi[3] yer değiştirir → 3 yerine oturdu.

i = 2: enK = 2 (8). j = 3: 6 < 8 → enK = 3.

20316283

Yer değiştir → dizi sıralı. 3 + 2 + 1 = 6 = n(n−1)/2 karşılaştırma, 3 yer değiştirme.

i = 0'dan n-2'ye kadar
    enK = i
    j = i+1'den n-1'e kadar
        eğer dizi[j] < dizi[enK] ise enK = j
    dizi[i] ile dizi[enK] yer değiştir

Çıktı Sorusu · Sıralama

Soru 27: Kabarcık Sıralama

Erken durmalı kabarcık sıralama [6, 2, 8, 3] dizisine uygulanıyor. Her geçişin sonunda dizi nedir; kaç geçiş ve kaç karşılaştırma yapılır?

tur = 0
tekrarla
    degisti = yanlış
    j = 0'dan n-2-tur'a kadar
        eğer dizi[j] > dizi[j+1] ise
            dizi[j] ile dizi[j+1] yer değiştir
            degisti = doğru
    tur = tur + 1
degisti yanlış olana kadar
Cevabı göster
geçişkarşılaştırılan çiftlersonra
1(6,2)↔ (6,8) (8,3)↔[2, 6, 3, 8]
2(2,6) (6,3)↔[2, 3, 6, 8]
3(2,3)değişim yok → dur
20316283

3 geçiş, 3 + 2 + 1 = 6 karşılaştırma, 3 yer değiştirme. Dizi 2. geçişte sıralandı ama bunu anlamak için 3. geçiş gerekir: degisti = yanlış.

Çıktı Sorusu · Sıralama

Soru 28: Yerleştirmeli Sıralama

Yerleştirmeli sıralama [6, 2, 8, 3] dizisine uygulanıyor. Her i için dizi nedir ve toplam kaç dizi[j] > anahtar karşılaştırması yapılır?

i = 1'den n-1'e kadar
    anahtar = dizi[i]
    j = i - 1
    j >= 0 ve dizi[j] > anahtar iken
        dizi[j+1] = dizi[j]
        j = j - 1
    dizi[j+1] = anahtar
Cevabı göster
ianahtarkarşılaştırmalarsonra
126>2 ✓ (j = −1 durur)[2, 6, 8, 3]
286>8 ✗[2, 6, 8, 3]
338>3 ✓ 6>3 ✓ 2>3 ✗[2, 3, 6, 8]

Toplam 1 + 1 + 3 = 5 karşılaştırma. j = −1 olunca j >= 0 yanlış olduğu için dizi[j] hiç okunmaz.

Aynı dizi için seçmeli 6, kabarcık 6 karşılaştırma yaptı; yerleştirmeli neredeyse sıralı verilerde en hızlısıdır.

Çoktan Seçmeli · Sıralama

Soru 29: Sıralı Diziyi Sıralamak

Zaten sıralı olan [1, 2, 3, 4, 5] dizisi için hangi eşleştirme doğrudur (yapılan karşılaştırma sayısı)?

B: Seçmeli sıralama girdi ne olursa olsun n(n−1)/2 = 10 karşılaştırma yapar (en iyi durum da O(n²)). Kabarcık ilk geçişte 4 karşılaştırma yapar, hiç değişim olmadığı için durur. Yerleştirmelide her anahtar için tek karşılaştırma: 4 → O(n).

Çıktı Sorusu · Geçmiş Sınav (2024-25 Final A)

Soru 30: Koşullu Dizi Güncelleme

Sınavdaki kodun sözde kod karşılığı aşağıdadır. Döngü bitince dizi ne olur?

dizi = [20, 15, 16, 6, 10, 19, 12, 5, 3, 13]
i = 0'dan 9'a kadar
    eğer dizi[i] % 2 == 0 ise
        dizi[i] = dizi[i] × 2
    değilse eğer dizi[i] % 3 == 0 ise
        dizi[i] = dizi[i] × 3
diziyi yaz
Cevabı göster

Çıktı: 40 45 32 12 20 19 24 5 9 13

4004513221232041952465798139
  • Çiftler ×2 (yeşil): 20, 16, 6, 10, 12.
  • Tek ve 3'e bölünenler ×3 (turuncu): 15 → 45, 3 → 9.
  • 6 ve 12 hem çift hem 3'e bölünür ama değilse eğer yüzünden yalnızca ilk doğru dal çalışır: ×2.
  • 19, 5, 13 değişmez.

B kitapçığında çarpanlar yer değiştirir: 60 30 48 18 30 19 36 5 6 13.

Son

Algoritmalar: Çalışma Soruları
Konu anlatımı: Algoritmalar sunumu
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.