Programlamaya Giriş
Çoktan Seçmeli · Temel Kavramlar
Soru 1: Söz Dizimi ve Anlam
Programlama dilinin söz dizimi (syntax) ve anlamı (semantics) hakkında hangisi doğrudur?
B: Söz dizimi biçimi (nasıl yazılır), anlam davranışı (ne yapar) tanımlar. A yanlıştır: kuralına uygun yazılmış program yanlış iş yapabilir (mantık hatası). Aynı problem farklı dillerle çözülebilir; seçim gereksinime bağlıdır.
Çoktan Seçmeli · Temel Kavramlar
Soru 2: Kaynak Kod ve Makine Dili
Kaynak kod ve makine dili ile ilgili ifadelerden hangisi yanlıştır?
C yanlıştır: işlemci yalnızca kendi makine dilini anlar. Kaynak kod önce derleyici veya yorumlayıcı (Java'da javac + JVM) aracılığıyla çalıştırılabilir hâle getirilir; programlama dili ile işlemci dili aynı şey değildir.
Çoktan Seçmeli · Çalıştırma
Soru 3: Derlenen, Yorumlanan, Hibrit
C, Python ve Java dilleri (yaygın uygulamalarına göre) sırasıyla nasıl sınıflandırılır?
D: C önceden hedef makine koduna derlenir. Python komutları çalışma sırasında (bytecode üzerinden) yürütülür, yorumlanan olarak anılır. Java kaynak kodu bytecode'a derlenir, bytecode JVM'de yürütülür: hibrit. C# da hibrittir.
Çoktan Seçmeli · Çalıştırma
Soru 4: Python Neden Yorumlanan?
CPython bir .py dosyasını nasıl çalıştırır?
C: CPython önce bytecode üretir (bu adım programcıdan gizlidir), sonra sanal makinesinde yürütür; makine kodu dosyası üretilmez. "Yorumlanan" etiketi bu yürütme biçiminden gelir. Derlenen/yorumlanan ayrımı dilin değil, uygulamanın özelliğidir.
Çıktı Sorusu · Çalıştırma
Soru 5: Yazım Hatası: Derleyici ve Yorumlayıcı
3. satırda bir yazım (söz dizimi) hatası var. Program (a) bir derleyiciyle, (b) satır satır çalışan basit bir yorumlayıcıyla çalıştırılırsa ekranda ne görünür?
yaz "Merhaba" x ← 10 yaz (x + 2 // ) eksik! yaz "Son"
Cevabı göster
(a) Derleyici: ekranda hiçbir şey görünmez; yalnızca "satır 3: söz dizimi hatası" iletisi çıkar. Çeviri başarısız olduğu için çalıştırılabilir dosya üretilmez, program hiç başlamaz.
(b) Basit yorumlayıcı: Merhaba yazılır, x = 10 atanır, satır 3'e gelince hata verip durur; "Son" yazılmaz.
Modern Python/JavaScript önce tüm dosyayı ayrıştırır, yazım hatasını en başta bildirir.
Adım Adım Çalıştırma · Çalıştırma
Soru 6: Derlenen Programda Sıfıra Bölme
Bu program derlenerek çalıştırılıyor. Çeviri ve çalıştırma aşamalarında sırayla ne olur, ekranda ne görünür?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
Derleyici programın tamamını okur ve söz dizimini denetler. Henüz hiçbir satır çalışmadı.
x / 0 yazım kuralına uygundur; çeviri başarılı. 0'a bölme bir yazım hatası değildir.
Çalıştırma başlar: satır 1 → Merhaba.
Bellekte x kutusuna 10 yazılır.
10 / 0 hesaplanamaz: çalışma zamanı hatası, program durur. Derleyici bu hatayı yakalayamadı.
Satır 4 hiç çalışmaz; "Son" yazılmaz. Önceki satırlar çoktan çalışmıştı.
yaz "Merhaba" x ← 10 yaz x / 0 yaz "Son"
Çoktan Seçmeli · Hata Türleri
Soru 7: Yanlış Bölen
Üç notun ortalaması hesaplanırken toplam yanlışlıkla 3 yerine 4'e bölünmüş. Program sorunsuz çalışıyor ama yanlış sonuç veriyor. Bu hangi hata türüdür?
B: Program derlenir ve çalışır, hata iletisi yoktur; ancak sonuç yanlıştır → mantık hatası. Bu tür hatalar ancak test edilerek (beklenen ve gerçek sonucu karşılaştırarak) bulunur.
Çoktan Seçmeli · Hata Türleri
Soru 8: Çalıştırmadan Önce Yakalanan Hata
Aşağıdaki hatalardan hangisi program hiç çalışmadan, derleme sırasında yakalanır?
A: Noktalı virgül eksikliği bir söz dizimi hatasıdır; derleyici satır numarasıyla bildirir ve program üretilmez. B çalışma zamanında (girdi 0 olunca), C ve D ise mantık hatası olarak ancak yanlış sonuçla fark edilir.
Çıktı Sorusu · Hata Türleri
Soru 9: Ortalama Neden 185?
Notları 70, 85 ve 90 olan öğrenci için bu sözde kod ne yazdırır? Beklenen sonuç nedir, hata nerededir?
n1 ← 70
n2 ← 85
n3 ← 90
ort ← n1 + n2 + n3 / 3
yaz "Ortalama: ", ortCevabı göster
Çıktı: Ortalama: 185 (beklenen 81.67)
- Bölme, toplamadan önce yapılır: yalnızca
n3 / 3= 30 hesaplanır. - 70 + 85 + 30 = 185.
- Program çalışır ve hata iletisi vermez: mantık hatası.
- Düzeltme:
ort ← (n1 + n2 + n3) / 3→ 245 / 3 ≈ 81.67.
Çoktan Seçmeli · Diller
Soru 10: Dil Seviyesi
Programlama dillerinin seviyesiyle ilgili hangisi doğrudur?
B: Assembly, makine komutlarının sembolik karşılığıdır; donanıma çok yakındır. Seviye bir kalite ölçüsü değil, soyutlama düzeyidir: yüksek seviyeli diller (Python, Java) problemi insanın ifade biçimine yakın yazdırır.
Çoktan Seçmeli · Diller
Soru 11: Dillerin Tarihsel Sırası
Aşağıdakilerden hangisi programlama dillerinin ortaya çıkış sırasına uygundur (eskiden yeniye)?
D: 1940–1960: makine dili, assembly ve ilk yüksek seviyeli diller (FORTRAN, COBOL). 1970'ler: C ile yapısal, taşınabilir sistem programlama. 1990 sonrası: Java, Python, JavaScript, C#.
Çoktan Seçmeli · Problem Çözme
Soru 12: Algoritma Olmayan Tarif
Aşağıdakilerden hangisi bir algoritma değildir?
A: Algoritma belirli bir problemi sonlu ve açık adımlarla çözer. A'nın hiçbir durma koşulu yoktur, sonsuza dek sürer. Diğerleri girdisi, çıktısı ve sonu belli tariflerdir.
Adım Adım Çalıştırma · Problem Çözme
Soru 13: Alan ve Çevre Sözde Kodu
Girdi en = 3, boy = 4 iken sözde kod satır satır nasıl çalışır, ne yazdırır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
en = 3 okunur; bellekte "en" kutusuna yazılır.
boy = 4 okunur.
İki koşul da doğru → "ise" koluna girilir.
alan = 3 × 4 = 12.
Önce parantez: 3 + 4 = 7, sonra 2 × 7 = 14.
Metin ve değer yan yana yazılır.
Çevre yazılır.
"değilse" kolu bu çalıştırmada atlanır. Program biter.
oku en oku boy eğer en > 0 ve boy > 0 ise alan ← en × boy cevre ← 2 × (en + boy) yaz "Alan: ", alan yaz "Çevre: ", cevre değilse yaz "Geçersiz ölçü"
Çıktı Sorusu · Problem Çözme
Soru 14: Sınır Durumu Girdileri
Aynı sözde kod iki kez çalıştırılıyor: (a) en = 0, boy = 5 · (b) en = 5, boy = 2. Her çalıştırmanın çıktısı nedir?
oku en oku boy eğer en > 0 ve boy > 0 ise alan ← en × boy cevre ← 2 × (en + boy) yaz "Alan: ", alan yaz "Çevre: ", cevre değilse yaz "Geçersiz ölçü"
Cevabı göster
(a) Geçersiz ölçü
- 0 > 0 yanlıştır; "ve" ile bağlanan koşulun tamamı yanlış olur → değilse kolu. Alan ve çevre hiç hesaplanmaz.
(b)
Alan: 10 Çevre: 14
- 5 × 2 = 10 ve 2 × (5 + 2) = 14. Farklı dikdörtgenlerin çevresi aynı olabilir.
0 bir sınır durumudur: algoritma tasarlanırken elle denenmesi gereken özel girdilerdendir.
Çıktı Sorusu · Problem Çözme
Soru 15: Not Ortalaması Sözde Kodu
Sözde kod iki öğrenci için çalıştırılıyor: (a) 70, 85, 90 · (b) 40, 55, 62. Çıktılar nedir? (Ortalama 2 ondalık basamağa yuvarlanarak yazılır.)
oku n1, n2, n3 ort ← (n1 + n2 + n3) / 3 eğer ort ≥ 60 ise yaz "Geçti: ", ort değilse yaz "Kaldı: ", ort
Cevabı göster
(a) Geçti: 81.67 · (b) Kaldı: 52.33
- (a) Parantez önce: 70 + 85 + 90 = 245; 245 / 3 ≈ 81.67 ≥ 60 → "ise" kolu.
- (b) 40 + 55 + 62 = 157; 157 / 3 ≈ 52.33 < 60 → "değilse" kolu.
- Her çalıştırmada iki koldan yalnızca biri çalışır.
Çoktan Seçmeli · Akış Diyagramı
Soru 16: Karar Simgesinden Çıkış
Akış diyagramında girdi x = 7 ise çıktı ne olur?
D: 7 mod 2 = 1 (7'nin 2'ye bölümünden kalan) → "x mod 2 = 0 ?" sorusunun cevabı Hayır → sol kol: tek. Karar (eşkenar dörtgen) simgesinden iki yol çıkar; her çalıştırmada yalnızca biri izlenir. x = 12 olsaydı "çift" yazılırdı.
Çıktı Sorusu · Akış Diyagramı
Soru 17: Döngülü Akış Diyagramı
Akış diyagramındaki algoritma çalıştırıldığında ekrana ne yazılır? Döngü kaç kez döner?
Cevabı göster
Çıktı: 9 · döngü gövdesi 3 kez çalışır.
| i ≤ 5 ? | s ← s + i | i ← i + 2 |
|---|---|---|
| 1 ≤ 5 Evet | 0 + 1 = 1 | 3 |
| 3 ≤ 5 Evet | 1 + 3 = 4 | 5 |
| 5 ≤ 5 Evet | 4 + 5 = 9 | 7 |
| 7 ≤ 5 Hayır | — | — |
- Geri dönen ok döngüyü gösterir; i her turda 2 arttığı için koşul sonunda yanlış olur.
- s, 5'e kadarki tek sayıların toplamıdır: 1 + 3 + 5.
Çoktan Seçmeli · Yazılım Süreci
Soru 18: Geliştirme Aşamalarının Sırası
Yazılım geliştirme döngüsünün aşamaları hangi seçenekte doğru sırada verilmiştir?
C: Önce kullanıcının ne istediği (gereksinim), sonra plan (tasarım; akış diyagramı burada), kodlama, test (hata varsa kodlamaya dönülür), dağıtım ve bakım. Bakımda gelen yeni istekler döngüyü yeniden başlatır.
Çoktan Seçmeli · Yazılım Süreci
Soru 19: Belirsiz Gereksinim
Müşteri ne istediğini tam anlatamıyor; "ekranları görünce karar veririm" diyor. Bu durumda en uygun ilk adım hangisidir?
D: Prototipleme belirsiz gereksinimi görünür kılar. Dikkat: prototip ürün sanılmamalıdır. Şelalede aşamalar nettir ama geri dönüş maliyetlidir; çevik yaklaşım da kısa döngülerle geri bildirim alır.
Çoktan Seçmeli · Yazılım Süreci
Soru 20: Doğru Araç
"Kodun değişiklik geçmişini tutmak ve ekip olarak aynı proje üzerinde çalışmak" için hangi geliştirme aracı kullanılır?
A: Sürüm kontrolü değişiklik geçmişini ve ekip çalışmasını yönetir. Hata ayıklayıcı program durumunu adım adım inceler, paket yöneticisi bağımlılıkları yönetir, derleyici programı çevirir.
Çoktan Seçmeli · Temel Yapılar
Soru 21: Uygun Veri Türleri
Bir öğrenci için sırasıyla ad, not ortalaması ve dersi geçti mi? bilgileri hangi veri türlerinde saklanmalıdır?
A: Ad karakterlerden oluşur (metin; Java'da String), ortalama 81.67 gibi kesirli olabilir (ondalık; double), geçti mi sorusu doğru/yanlış değer alır (mantıksal; boolean). Veri türü değerin temsilini ve yapılabilecek işlemleri belirler.
Adım Adım Çalıştırma · Temel Yapılar
Soru 22: Tekrarlı Toplama
Sözde kod çalıştırıldığında her turdan sonra toplam ve i ne olur, ekrana ne yazılır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
Başlangıç değerleri atanır.
1. tur: 1 ≤ 4 doğru → toplam = 0 + 1 = 1, i = 2.
2. tur: 2 ≤ 4 → toplam = 1 + 2 = 3, i = 3.
3. tur: 3 ≤ 4 → toplam = 3 + 3 = 6, i = 4.
4. tur: 4 ≤ 4 doğru (eşitlik dahil) → toplam = 10, i = 5.
5 ≤ 4 yanlış → döngüden çıkılır. i artırılmasaydı koşul hep doğru kalır, döngü sonsuz olurdu.
Çıktı 10 = 1 + 2 + 3 + 4.
toplam ← 0 i ← 1 i ≤ 4 iken tekrarla toplam ← toplam + i i ← i + 1 yaz toplam
Adım Adım Çalıştırma · Temel Yapılar
Soru 23: Geri Sayan Döngü
Bu sözde kod ekrana hangi sayıları yazar? Döngü kaç kez çalışır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
sayac = 10.
10 > 0 → sayac = 7 → yazılır.
7 > 0 → 4.
4 > 0 → 1.
1 > 0 hâlâ doğru → sayac = −2 ve −2 de yazılır: koşul yazmadan önce değil, tur başında denetlenir.
−2 > 0 yanlış → döngü biter. Toplam 4 tur.
Döngüden sonraki satır çalışır.
sayac ← 10 sayac > 0 iken tekrarla sayac ← sayac − 3 yaz sayac yaz "bitti"
Çoktan Seçmeli · Temel Yapılar
Soru 24: Sonsuz Döngü
Aşağıdaki döngülerden hangisi hiç bitmez?
C: Döngü gövdesi i'yi hiç değiştirmez; 1 ≤ 5 koşulu sonsuza dek doğru kalır ve ekrana durmadan 1 yazılır. Döngülerde koşulun ne zaman değiştiği açık olmalıdır; A, B ve D'de değişken her turda sınıra yaklaşır.
Çıktı Sorusu · Temel Yapılar
Soru 25: Dizi ve İndeks
İndeksler 0'dan başlıyor (Java'daki gibi). Sözde kodun çıktısı nedir?
dizi ← [4, 8, 15, 16, 23] yaz dizi[2] yaz dizi[0] + dizi[4] yaz uzunluk(dizi)
Cevabı göster
15 27 5
dizi[2]: ilk öğe 0. indekste olduğu için 3. öğe → 15 (8 değil).dizi[0] + dizi[4]= 4 + 23 = 27: ilk ve son öğe.- 5 öğe vardır; son indeks uzunluk − 1 = 4'tür.
dizi[5]istenseydi dizinin dışına çıkılırdı.
Adım Adım Çalıştırma · Temel Yapılar
Soru 26: Fonksiyon Çağrısı
Fonksiyon iki kez çağrılıyor. Her çağrıda x ne olur, ne döner ve ekrana ne yazılır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
Program fonksiyon tanımını atlar, 4. satırdan başlar: kare(3) çağrılır.
Yeni çağrı açılır; girdi x = 3. 3 × 3 = 9 döndürülür.
Çağrı biter, sonuç a'ya atanır: a = 9. kare'nin x'i artık yok.
Aynı fonksiyon farklı girdiyle: x = 4 → 16 döner.
b = 16.
9 + 16 = 25. Fonksiyon bir görevi adlandırır; tekrar tekrar kullanılabilir.
fonksiyon kare(x) döndür x × x son a ← kare(3) b ← kare(4) yaz a + b