Bölüm 4.3: Programlamaya Giriş

Programlamaya Giriş · Çalışma Soruları
Programlama diliDerleme ve yorumlamaHata türleriDiller ve düzeylerProblem çözmeYazılım süreciTemel yapılar
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Ç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?

Kaynak kodinsan okurÇeviri aracıderleyici/yorumlayıcıMakine dili0101 komutlarİşlemciyürü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: Üç 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ış).

Çıktı Sorusu · Çalıştırma

Soru 5: Söz Dizimi 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.

Çeviri 1–4satır 3: hataÇalıştırmahiç 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.

Satır 1MerhabaSatır 2x = 10Satır 3hata!

Modern Python/JavaScript önce tüm dosyayı ayrıştırır, söz dizimi 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?

Derleyici programın tamamını okur ve söz dizimini denetler. Henüz hiçbir satır çalışmadı.

x / 0 söz dizimi kuralına uygundur; çeviri başarılı. 0'a bölme bir söz dizimi hatası değildir.

Çalıştırma başlar: satır 1 → Merhaba.

x10

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: ", ort
Cevabı 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.
n170n285n390ort185

Çoktan Seçmeli · Diller

Soru 10: Dil Düzeyi

Programlama dillerinin düzeyiyle ilgili hangisi doğrudur?

B: Assembly, makine komutlarının sembolik karşılığıdır; donanıma çok yakındır. Düzey bir kalite ölçüsü değil, soyutlama düzeyidir: yüksek düzeyli diller (Python, Java) problemi insanın ifade biçimine yakın yazdırır.

Çoktan Seçmeli · Diller

Soru 11: Paradigmalar

notlar = {70, 90, 80} dizisinin toplamı dört biçimde hesaplanıyor. Hangisi fonksiyonel yaklaşıma örnektir?

C: Fonksiyonel yaklaşım veriyi değiştirmeden dönüşümleri birleştirir; stream().sum() ara durum değişkeni tutmaz. A ve D durumu adım adım değiştiren buyurgan yaklaşımdır; B veri ve davranışı nesnede birleştiren nesne yönelimli yaklaşımdır. Java üçünü de destekler.

Adım Adım Çalıştırma · Problem Çözme

Soru 12: 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?

en3

en = 3 okunur; bellekte "en" kutusuna yazılır.

en3boy4

boy = 4 okunur.

İki koşul da doğru → "ise" dalına girilir.

alan = 3 × 4 = 12.

en3boy4alan12cevre14

Önce parantez: 3 + 4 = 7, sonra 2 × 7 = 14.

Metin ve değer yan yana yazılır.

Çevre yazılır.

"değilse" dalı 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 13: 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 dalı. 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 14: 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" dalı.
  • (b) 40 + 55 + 62 = 157; 157 / 3 ≈ 52.33 < 60 → "değilse" dalı.
  • Her çalıştırmada iki daldan yalnızca biri çalışır.
n140n255n362ort52.33

Çoktan Seçmeli · Yazılım Süreci

Soru 15: Geliştirme Aşamalarının Sırası

Yazılım geliştirme sürecinin aşamaları hangi seçenekte doğru sırada verilmiştir?

GereksinimTasarımKodlamaTestDağıtımBakım

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 16: 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; prototip ürünün kendisi değildir. Ş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 · Temel Yapılar

Soru 17: Uygun Veri Tipleri

Bir öğrenci için sırasıyla ad, not ortalaması ve dersi geçti mi? bilgileri hangi veri tiplerinde saklanmalıdır?

A: Ad karakterlerden oluşur (dizgi; 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 tipi değerin temsilini ve yapılabilecek işlemleri belirler.

Adım Adım Çalıştırma · Temel Yapılar

Soru 18: Geri Sayan Döngü

Bu sözde kod ekrana hangi sayıları yazar? Döngü kaç kez çalışır?

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"

Çıktı Sorusu · Temel Yapılar

Soru 19: Dizi ve İndis

İndisler 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)
4081152163234
Cevabı göster
15
27
5
  • dizi[2]: ilk öğe 0. indiste 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 indis 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 20: 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?

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.

a9b16

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

Son

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