Compare commits

..
2 Commits
3 changed files with 84 additions and 2 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ yazdir("Sonuç: " + metin(gecti))
Sonuç: doğru
```
> **Dikkat:** `sayi()` yalnız tam sayı yazılmış bir metni doğru çevirir. `sayi("3.9")` ya da `sayi("on iki")` hata vermez ama **0** döndürür; bu da fark edilmesi zor bir yanlışa yol açar. Ondalık bir metni önce `ondalik()` ile çevir. Kullanıcıdan gelen sayıyı güvenle okumanın yolunu *Kullanıcıdan girdi* dersinde öğreneceksin.
> **Dikkat:** `sayi()` metni tam sayıya çevirir: `sayi("3.9")` ondalık kısmı atar ve **3** verir. Sayı olmayan bir metin (`sayi("on iki")`) ise programı hata iletisiyle durdurur. Ondalık bir metni önce `ondalik()` ile çevir. Kullanıcıdan gelen sayıyı güvenle okumanın yolunu *Kullanıcıdan girdi* dersinde öğreneceksin.
```kbl
yazdir(sayi(ondalik("3.9")))
+1 -1
View File
@@ -66,7 +66,7 @@ Kaç kitap okudun? on iki
Okunamadı: 'on iki' bir tam sayı değil
```
> **Dikkat:** Kullanıcıdan gelen sayıyı `sayi(satir)` ile çevirme: `sayi("on iki")` hata vermez, sessizce 0 döndürür. Tam sayı için `konsol.sayi_oku` kullan; böylece yanlış girdiyi fark edersin.
> **Dikkat:** Kullanıcıdan gelen sayıyı `sayi(satir)` ile çevirme: `sayi("on iki")` programı hata iletisiyle durdurur. Tam sayı için `konsol.sayi_oku` kullan; böylece yanlış girdiyi programın durmadan yakalarsın.
## Ondalık sayı okumak
+82
View File
@@ -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ç.