Hesaplama ve Hesaplamalı Düşünme

Hesaplama ve Hesaplamalı Düşünme · Çalışma Soruları
Programlama ve çeviriTuring makinesiAlgoritma ve ÖklidKontrol yapılarıAlgoritma örnekleriHesaplamalı düşünme
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 · Programlama ve Çeviri

Soru 1: javac Ne Üretir?

javac Merhaba.java komutu hatasız çalıştığında ortaya çıkan dosya ve içeriği nedir?

C: javac kaynak kodu denetler ve belirli bir işlemciye değil Java Sanal Makinesi’ne yönelik bytecode üretir. Aynı .class dosyası JVM bulunan her platformda çalışır. Hata varsa süreç durur, .class üretilmez.

Çoktan Seçmeli · Programlama ve Çeviri

Soru 2: Üç Dil, Üç Çeviri Yolu

Dillerin tipik çeviri yolları için aşağıdakilerden hangisi doğrudur?

A: C derleyicisi işlemciye özgü makine kodu üretir. JVM sık çalışan kısımları JIT ile makine koduna çevirir (B yanlış); CPython önce bytecode’a derler, sonra sanal makinede yorumlar (C yanlış). Çoğu sistem iki yaklaşımı birlikte kullanır (D yanlış).

Çoktan Seçmeli · Hesaplama Modelleri

Soru 3: Depolanan Program

Bir makinede farklı bir görev yapmak için kabloları ve dişlileri yeniden düzenlemek yerine yalnızca bellekteki komutları değiştirmek yeterli oluyor. Bu hangi fikirdir?

D: Depolanan program yaklaşımında komutlar bellekte veri gibi saklanır; program değiştirilerek farklı görevler yapılır. Kuramsal temeli, bantta verilen başka bir makinenin kurallarını okuyup taklit eden evrensel Turing makinesidir.

Çıktı Sorusu · Hesaplama Modelleri

Soru 4: Turing Makinesi ile 1 Ekleme

Sayıya 1 ekleyen Turing makinesi, başlık en sağdaki basamakta ve durum q0 iken başlatılıyor. Makine durduğunda bantta ne yazar?
(a) bant: 1001   (b) bant: 11

(q0, 1) → 0 yaz, sola git, q0
(q0, 0) → 1 yaz, DUR
(q0, □) → 1 yaz, DUR
Cevabı göster

(a) 1010 (9 + 1 = 10) · (b) 100 (3 + 1 = 4)

  • (a) En sağda 1 → 0 yaz, sola. Sonra 0 okunur → 1 yaz, dur.
  • (b) İki 1 de 0 olur (elde sola taşınır). Sonra boş hücre □ okunur → kural 3: 1 yaz, dur. Bant bir hücre uzar.
bant□100DUR

Her adımı yalnızca (durum, okunan sembol) çifti belirler.

Adım Adım Çalıştırma · Hesaplama Modelleri

Soru 5: Turing Makinesi: 1011 + 1

Aynı makine bantta 1011 (ikilik 11) ile çalışıyor; başlık en sağda. Her adımda bant, başlık ve durum ne olur?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

bant□1011q0

Başlangıç: başlık en sağdaki 1’in üzerinde.

bant□1011q0

Okunan 1, durum q0 → kural 1 uygulanacak.

bant□1010q0

0 yazıldı, başlık sola kaydı (elde 1 devam ediyor).

bant□1000q0

Yine 1 okundu → kural 1: 0 yaz, sola git.

bant□1000q0

Okunan 0 → kural 2 uygulanacak: elde bu basamakta biter.

bant□1100DUR

1 yazıldı ve makine durdu.

bant□1100DUR

Bant 1100 = 12 = 11 + 1 ✓. Kural 3 bu girdide hiç kullanılmadı.

durum = q0, başlık en sağda
tekrarla:
  okunan = başlığın altındaki sembol
  (q0, 1) → 0 yaz, sola git, q0
  (q0, 0) → 1 yaz, DUR
  (q0, □) → 1 yaz, DUR
yaz(bant)

Çoktan Seçmeli · Bilgi ve Algoritma

Soru 6: Buyurgan Bilgi

Aşağıdakilerden hangisi buyurgan (emirsel) bilgiye örnektir?

B: Buyurgan bilgi bir sonuca nasıl ulaşılacağını adımlarla anlatır; algoritmalar bu bilgiyi açık ve sonlu adımlara dönüştürür. A, C ve D neyin doğru olduğunu söyleyen bildirimsel bilgilerdir.

Çoktan Seçmeli · Bilgi ve Algoritma

Soru 7: Hangi Özellik Eksik?

Aşağıdaki “algoritma” iyi bir algoritmanın hangi özelliğini sağlamaz?

i = 1
while i > 0
   yaz(i)
   i = i + 1

C: i hep pozitif kalır ve büyür; devam koşulu i > 0 hiç yanlış olmaz → sonsuz döngü. Algoritma sıfır girdi alabilir (A sorun değildir), her adımı açıktır ve çıktı üretir; ama belirli sayıda adımdan sonra durmalıdır.

Adım Adım Çalıştırma · Bilgi ve Algoritma

Soru 8: Karekökü Yaklaşık Bulma: x = 10

Sunumdaki karekök algoritması x = 10 ve tahmin = 1 ile çalışıyor. Her turda hata ve yeni tahmin nedir, hangi değer yazılır? (4 basamağa yuvarlayın)

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

Kaba başlangıç tahmini.

|1 − 10| = 9 > 0.01 → devam.

(1 + 10/1) / 2 = 5.5

|30.25 − 10| = 20.25 → devam. Hata arttı ama tahmin doğru yöne gidiyor.

(5.5 + 1.8182) / 2 ≈ 3.6591

|13.3889 − 10| ≈ 3.3889 → devam.

(3.6591 + 2.7329) / 2 ≈ 3.1960

|10.2144 − 10| ≈ 0.2144 → devam.

(3.1960 + 3.1289) / 2 ≈ 3.1625

|10.0011 − 10| ≈ 0.0011 ≤ 0.01 → döngü biter.

4 turda √10 ≈ 3.1623’e çok yaklaştı.

x = 10
tahmin = 1
while |tahmin * tahmin - x| > 0.01
   tahmin = (tahmin + x / tahmin) / 2
yaz(tahmin)

Çıktı Sorusu · Bilgi ve Algoritma

Soru 9: Öklid: GCD(84, 36)

Öklid algoritmasıyla GCD(84, 36) hesaplanıyor. Her turda a, b, r değerleri nedir? Sonuç kaçtır, döngü kaç tur döner?

GCD(a, b)
  while b ≠ 0
    r = a mod b
    a = b
    b = r
  return a
a84b36
Cevabı göster
turabr = a mod byeni a, b
184361236, 12
23612012, 0

b = 0 → döngü biter: GCD = 12, 2 tur.

  • 84 = 2 × 36 + 12; 36 = 3 × 12 + 0.
  • 84 ve 36, 12 uzunluğundaki parçalarla tam ölçülür (84 = 7 × 12, 36 = 3 × 12).
a12b0

Adım Adım Çalıştırma · Bilgi ve Algoritma

Soru 10: Öklid: GCD(252, 105)

GCD(252, 105) çağrılıyor. Her turda a, b ve r nasıl değişir, fonksiyon ne döndürür?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

a252b105

Çağrı: a = 252, b = 105.

105 ≠ 0 → 1. tur.

a105b42

252 = 2 × 105 + 42 → r = 42; a = 105, b = 42.

42 ≠ 0 → 2. tur.

a42b21

105 = 2 × 42 + 21 → r = 21; a = 42, b = 21.

21 ≠ 0 → 3. tur.

a21b0

42 = 2 × 21 + 0 → r = 0; a = 21, b = 0.

0 ≠ 0 yanlış → döngü biter.

GCD(252, 105) = 21 (252 = 12 × 21, 105 = 5 × 21). 3 tur.

GCD(a, b)
  while b ≠ 0
    r = a mod b
    a = b
    b = r
  return a

Çoktan Seçmeli · Bilgi ve Algoritma

Soru 11: Küçük Sayı Önce Gelirse

Aynı Öklid algoritması GCD(18, 48) ile (küçük sayı önce) çağrılırsa ne olur?

C: 1. tur: 18 mod 48 = 18 → a = 48, b = 18; sayılar yer değiştirdi. Sonra GCD(48, 18) gibi devam eder: 48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0. Toplam 4 tur, sonuç 6. Yalnızca bir fazladan tur harcanır.

Çıktı Sorusu · Kontrol Yapıları

Soru 12: Sıralı Adımlar

Sıralı yapıdaki bu sözde kodun çıktısı nedir? Adımlar ne işe yarar?

a = 5
b = 8
a = a + b
b = a - b
a = a - b
yaz(a, b)
Cevabı göster

Çıktı: 8 5 (değerler yer değiştirdi)

adımab
1–258
a = a + b138
b = a − b135
a = a − b85

Her adım tam bir kez ve yazıldığı sırada çalışır; adımların sırası değişirse sonuç bozulur.

Çoktan Seçmeli · Kontrol Yapıları

Soru 13: ≥ Yerine >

Sunumdaki koşul eğer puan >= 60 ise yaz("Geçti") aksi halde yaz("Kaldı") yanlışlıkla puan > 60 yazılırsa aşağıdaki girdilerden hangisinin çıktısı değişir?

D: 60 >= 60 doğrudur (eşitlik “büyük eşit” kapsamındadır) → “Geçti”; ama 60 > 60 yanlıştır → “Kaldı”. Diğer girdilerde iki koşul aynı sonucu verir. Sınır değerler test edilmezse bu tür hatalar gözden kaçar.

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

Soru 14: Harf Notu Sözde Kodu

Sınavda istenen tablo: 100–90 A, 89–80 B, 79–70 C, 69–60 D, 59–50 E, 49–0 F. Cevap anahtarındaki çözüm aşağıda (sözde koda çevrildi). not = 92, 79 ve 55 için ne yazar? Çözüm tabloya uygun mu?

eğer not >= 90 ise yaz("A")
aksi halde eğer not >= 80 ise yaz("B")
aksi halde eğer not >= 70 ise yaz("C")
aksi halde eğer not >= 60 ise yaz("D")
aksi halde yaz("F")
Cevabı göster

92 → A · 79 → C · 55 → F

  • Koşullar yukarıdan aşağı denenir; ilk doğru olan dal çalışır, gerisi atlanır. 79: 90 ✗, 80 ✗, 70 ✓ → C.
  • 55 için tablo E ister ama kodda E dalı yoktur: anahtardaki çözüm hatalıdır.
  • Düzeltme: D satırından sonra aksi halde eğer not >= 50 ise yaz("E") eklenmelidir.

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

Soru 15: İki Sayı Arasındaki Toplam

a = 3 ve b = 7 için çıktı nedir? Döngü gövdesi kaç kez çalışır?

toplam = 0
i = a
while i <= b
   toplam = toplam + i
   i = i + 1
yaz("toplam: ", toplam)
Cevabı göster

Çıktı: toplam: 25, gövde 5 kez çalışır.

i=3→ 3i=4→ 7i=5→ 12i=6→ 18i=7→ 25
  • toplam: 3, 7, 12, 18, 25 (her turda i eklenir).
  • i = 8 olunca 8 <= 7 yanlış → çıkılır; koşul 6 kez denetlenir.
  • Sınır dahil (<=): b’nin kendisi de toplanır.

Adım Adım Çalıştırma · Geçmiş Sınav (2025-26 Final)

Soru 16: while ile Faktöriyel

Sınavdaki faktöriyel çözümü (sözde koda çevrildi) n = 4 ile çalışıyor. Her turda sonuc ve i ne olur?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

Çarpım için başlangıç 1’dir (0 olsaydı sonuç hep 0 çıkardı).

1 <= 4 → 1. tur.

sonuc = 1 × 1 = 1, i = 2.

2 <= 4 → 2. tur.

sonuc = 1 × 2 = 2, i = 3.

3 <= 4 → 3. tur.

sonuc = 2 × 3 = 6, i = 4.

4 <= 4 → 4. tur.

sonuc = 6 × 4 = 24, i = 5.

5 <= 4 yanlış → döngü biter.

4! = 24. Gövde 4, koşul 5 kez çalıştı.

sonuc = 1
i = 1
while i <= n
   sonuc = sonuc * i
   i = i + 1
yaz(sonuc)

Çıktı Sorusu · Kontrol Yapıları

Soru 17: Döngü Kaç Kez Döner?

Döngü gövdesi kaç kez çalışır, çıktı nedir?

i = 1
sayac = 0
while i <= 20
   i = i * 3
   sayac = sayac + 1
yaz(sayac, i)
Cevabı göster

Çıktı: 3 27

koşuli (sonra)sayac
1 <= 20 ✓31
3 <= 20 ✓92
9 <= 20 ✓273
27 <= 20 ✗çıkış

Döngü değişkeni her turda büyüdüğü için koşul sonunda yanlış olur. i 20’yi aşsa da son tur tamamlanır; koşul yalnızca tur başında denetlenir.

Çoktan Seçmeli · Geçmiş Sınav (2025-26 Bütünleme)

Soru 18: 1’den 100’e Tek Sayılar

Sınavdaki tek sayı çözümünün sözde kodu aşağıda. Kaç sayı yazdırılır ve son yazılan sayı hangisidir?

her i için 1'den 100'e kadar
   eğer i mod 2 == 1 ise
      yaz(i)

B: i mod 2 == 1 yalnızca tek sayılarda doğrudur: 1, 3, …, 99 → 50 sayı. 100 çifttir, yazılmaz. Döngü 100 kez döner ama koşul yalnızca yarısında doğrudur. (Final sınavındaki çift sayı sürümünde koşul i mod 2 == 0; 2…100, yine 50 sayı.)

Çıktı Sorusu · Kontrol Yapıları

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

n = 6 için her turda i ve toplam değerleri nedir? Çıktı ne olur?

toplam = 0
i = 2
while i <= n
   toplam = toplam + i
   i = i + 2
yaz(toplam)
Cevabı göster
turkoşultoplami (sonra)
12 <= 624
24 <= 666
36 <= 6128
—8 <= 6 ✗çıkış

Çıktı: 12 (2 + 4 + 6). i 2’den başlayıp 2’şer arttığı için tek sayılar hiç ziyaret edilmez; koşulla eleme yapan sürüme göre yarı sayıda tur döner.

Adım Adım Çalıştırma · Geçmiş Sınav (2023-24 Final)

Soru 20: Listedeki En Küçük Değer

Sınavdaki en küçük eleman çözümü (sözde koda çevrildi) [7, 3, 9, 1, 4] listesiyle çalışıyor. enKucuk nasıl değişir?

Önce kendiniz tahmin edin, sonra › ile ilerleyin.

7▲ enKucuk3914

İlk elemanla başlanır; listede olmayan bir değer (ör. 0) varsayılmaz.

73▲ enKucuk914

3 < 7 → doğru: enKucuk = 3.

73▲ enKucuk914

9 < 3 → yanlış: değişmez.

7391▲ enKucuk4

1 < 3 → doğru: enKucuk = 1.

7391▲ enKucuk4

4 < 1 → yanlış: değişmez.

7391▲ enKucuk4

Sonuç 1. 5 elemanlı listede 4 karşılaştırma yapıldı; her eleman bir kez incelendi.

enKucuk = listenin ilk elemanı
her sonraki eleman için
   eğer eleman < enKucuk ise
      enKucuk = eleman
yaz(enKucuk)

Çoktan Seçmeli · Algoritma Örnekleri

Soru 21: 0 ile Başlayan En Büyük

En büyük değeri bulan algoritma enBuyuk = 0 ile başlatılırsa [−3, −7, −1, −5] listesi için ne yazar?

A: Listedeki hiçbir eleman 0’dan büyük olmadığı için koşul hiç doğru olmaz ve listede bulunmayan 0 yazılır. Doğru cevap −1 olmalıydı. Bu yüzden başlangıç değeri listenin ilk elemanı seçilir.

Çıktı Sorusu · Geçmiş Sınav (2025-26 Final)

Soru 22: Dizinin Ortalaması

Sınavdaki ortalama çözümünün sözde kodu aşağıda. [7, 8, 10, 6] listesi için çıktı nedir?

toplam = 0
her eleman için
   toplam = toplam + eleman
ortalama = toplam / eleman sayısı
yaz(ortalama)
Cevabı göster

Çıktı: 7.75

  • toplam: 7, 15, 25, 31 → 31 / 4 = 7.75.
  • Java’da toplam ve dizi uzunluğu int olduğundan toplam / dizi.length tam sayı bölmesi yapıp 7 verir. Sınav çözümünde (double) toplam / dizi.length yazılmasının nedeni budur.
  • Boş listede eleman sayısı 0 olur: hata durumu ayrıca ele alınmalıdır.

Çıktı Sorusu · Algoritma Örnekleri

Soru 23: Döngü mü, Formül mü?

1 + 2 + … + n toplamı için iki algoritma var. n = 200 için ikisinin sonucu nedir? A’da kaç toplama yapılır, B’de kaç işlem yapılır?

A:  toplam = 0
    i = 1
    while i <= n
       toplam = toplam + i
       i = i + 1

B:  toplam = n * (n + 1) / 2
Cevabı göster

İkisi de 20100 verir.

  • A: gövde 200 kez çalışır → 200 toplama (ve 200 sayaç artırma).
  • B: 200 × 201 / 2 → n’den bağımsız 1 çarpma + 1 bölme (artı n + 1).
n=200A: 200B: sabitn=1000A: 1000B: sabit

Doğruluk kadar verimlilik de önemlidir: n büyüdükçe A’nın işi artar, B’ninki sabit kalır.

Çoktan Seçmeli · Hesaplamalı Düşünme

Soru 24: Hangi Bileşen?

Bir yazılımcı öğrenci, personel ve ziyaretçi kayıt formlarını inceliyor ve üçünde de ad, kimlik no ve e-posta alanlarının tekrar ettiğini fark ediyor. Bu hangi hesaplamalı düşünme bileşenidir?

D: Benzerlikleri ve tekrarları bulmak örüntü tanımadır. Ortak alanları tek bir “Kişi” modelinde toplayıp farklı ayrıntıları yalnızca gereken türde bırakmak ise bir sonraki adım olan soyutlamadır.

Klasik Soru · Hesaplamalı Düşünme

Soru 25: Kütüphane Sistemini Ayrıştırma

Bir kütüphane ödünç alma sistemini ayrıştırın: en az dört alt görev ve her birinin girdisi/çıktısı. Üye ve personel kayıtlarında hangi alanlar ortaktır (örüntü), bunlar nasıl soyutlanır?

Cevabı göster Ödünç sistemiÜye girişiKitap aramaÖdünç vermeİade / ceza
  • Üye girişi: üye no + parola → oturum / hata
  • Kitap arama: ad, yazar → kitap listesi ve rafta mı bilgisi
  • Ödünç verme: üye, kitap → kayıt + iade tarihi (kitap rafta değilse hata)
  • İade / ceza: kayıt, iade günü → gecikme günü × ücret

Örüntü: ad, kimlik no, e-posta, telefon her iki kayıtta da var. Soyutlama: bunlar ortak bir “Kişi” modelinde toplanır; üyede üye no ve ödünç sayısı, personelde birim ve yetki ayrıca tutulur.

Çoktan Seçmeli · Hesaplamalı Düşünme

Soru 26: Sınırları Test Etmek

Listedeki en büyük değeri bulan algoritmayı test ediyorsunuz. Hangi test kümesi sınır durumları en iyi kapsar?

B: En küçük (tek eleman), olağan dışı (tümü negatif, eşit değerler) ve geçersiz (boş liste) girdiler hatalı başlangıç değeri ya da eksik hata durumu gibi sorunları ortaya çıkarır. Diğer seçenekler yalnızca normal durumları sınar.

Son

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