Hesaplama ve Hesaplamalı Düşünme
Ç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.
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.
Başlangıç: başlık en sağdaki 1’in üzerinde.
Okunan 1, durum q0 → kural 1 uygulanacak.
0 yazıldı, başlık sola kaydı (elde 1 devam ediyor).
Yine 1 okundu → kural 1: 0 yaz, sola git.
Okunan 0 → kural 2 uygulanacak: elde bu basamakta biter.
1 yazıldı ve makine durdu.
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 aCevabı göster
| tur | a | b | r = a mod b | yeni a, b |
|---|---|---|---|---|
| 1 | 84 | 36 | 12 | 36, 12 |
| 2 | 36 | 12 | 0 | 12, 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).
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.
Çağrı: a = 252, b = 105.
105 ≠ 0 → 1. tur.
252 = 2 × 105 + 42 → r = 42; a = 105, b = 42.
42 ≠ 0 → 2. tur.
105 = 2 × 42 + 21 → r = 21; a = 42, b = 21.
21 ≠ 0 → 3. tur.
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ım | a | b |
|---|---|---|
| 1–2 | 5 | 8 |
| a = a + b | 13 | 8 |
| b = a − b | 13 | 5 |
| a = a − b | 8 | 5 |
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.
- 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şul | i (sonra) | sayac |
|---|---|---|
| 1 <= 20 ✓ | 3 | 1 |
| 3 <= 20 ✓ | 9 | 2 |
| 9 <= 20 ✓ | 27 | 3 |
| 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
| tur | koşul | toplam | i (sonra) |
|---|---|---|---|
| 1 | 2 <= 6 | 2 | 4 |
| 2 | 4 <= 6 | 6 | 6 |
| 3 | 6 <= 6 | 12 | 8 |
| — | 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.
İlk elemanla başlanır; listede olmayan bir değer (ör. 0) varsayılmaz.
3 < 7 → doğru: enKucuk = 3.
9 < 3 → yanlış: değişmez.
1 < 3 → doğru: enKucuk = 1.
4 < 1 → yanlış: değişmez.
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
toplamve dizi uzunluğuintolduğundantoplam / dizi.lengthtam sayı bölmesi yapıp 7 verir. Sınav çözümünde(double) toplam / dizi.lengthyazı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) / 2Cevabı 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).
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
- Ü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.