diff --git a/dersler/30-bitirme-sinavi.md b/dersler/30-bitirme-sinavi.md new file mode 100644 index 0000000..315c4ae --- /dev/null +++ b/dersler/30-bitirme-sinavi.md @@ -0,0 +1,82 @@ +--- +baslik: Bitirme sınavı: kod yazma +bolum: Bitirme sınavı +ozet: Üç küçük görevle öğrendiklerini göster; ardından akademide kod okuma bölümü gelir +--- +Kursun sonuna geldin. Bitirme sınavının iki bölümü var: + +1. **Kod yazma (bu sayfa):** üç görev. Her birini IDE'de çöz; çıktın beklenenle aynı olunca görev tamamlanır. Çözümün sunucuda yeniden çalıştırılıp doğrulanır. +2. **Kod okuma (akademide):** "bu kod ne yazdırır?" türünden yedi soru. + +İkisini de geçince akademi sertifikanı kendiliğinden üretir; belgede **Temel KabaLang** yetkinliği yazar. + +> **İpucu:** Takılırsan ilgili derse dön: döngüler için "dongu ... icinde", fonksiyonlar için "Parametreler ve dönüş değeri", listeler için "Liste işlemleri". Örnek çözümü açmadan önce kendin denemeni öneririz. + +## Görev 1: döngü ve koşul + +```alistirma +1'den 20'ye kadar (20 dahil) olan sayılardan **3'e tam bölünenlerin toplamını** hesaplayıp yazdır. +%%% +toplam = 0 +# buraya yaz +yazdir(toplam) +%%% +toplam = 0 +dongu i icinde 1..20: + eger i % 3 == 0: + toplam += i +yazdir(toplam) +%%% +63 +``` + +## Görev 2: fonksiyon + +```alistirma +`harf_notu` fonksiyonunu yaz: puan 85 ve üstüyse `"AA"`, 70 ve üstüyse `"BB"`, değilse `"FF"` döndürsün. Sonra listedeki her puanı `puan: not` biçiminde yazdır. +%%% +fonksiyon harf_notu(puan: sayi) -> metin: + # buraya yaz + don "FF" + +puanlar = [95, 72, 40] +dongu p icinde puanlar: + yazdir(f"{p}: {harf_notu(p)}") +%%% +fonksiyon harf_notu(puan: sayi) -> metin: + eger puan >= 85: + don "AA" + degilse eger puan >= 70: + don "BB" + don "FF" + +puanlar = [95, 72, 40] +dongu p icinde puanlar: + yazdir(f"{p}: {harf_notu(p)}") +%%% +95: AA +72: BB +40: FF +``` + +## Görev 3: liste ve metin + +```alistirma +Listedeki **en uzun kelimeyi** bul ve `kelime (N harf)` biçiminde yazdır. +%%% +kelimeler = ["elma", "karpuz", "kivi", "muz"] +en_uzun = "" +# buraya yaz +yazdir(f"{en_uzun} ({en_uzun.uzunluk()} harf)") +%%% +kelimeler = ["elma", "karpuz", "kivi", "muz"] +en_uzun = "" +dongu k icinde kelimeler: + eger k.uzunluk() > en_uzun.uzunluk(): + en_uzun = k +yazdir(f"{en_uzun} ({en_uzun.uzunluk()} harf)") +%%% +karpuz (6 harf) +``` + +Üç görev de tamamsa akademideki **Bitirme sınavı: kod okuma** bölümüne geç.