Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur

- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin
  ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup
  dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md.
- temeller/: tek konulu 12 başlangıç programı.
- web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE
  önizlemesi 8080 verir), yoksa eski sabit port.
- README: öğrenme bölümü, Online IDE bağlantısı.
This commit is contained in:
2026-10-17 22:07:47 +03:00
parent c5468f5d0a
commit 494781e84f
47 changed files with 5942 additions and 4 deletions
+140
View File
@@ -0,0 +1,140 @@
---
baslik: iken döngüsü
bolum: Akış denetimi
ozet: Koşul doğru olduğu sürece tekrar etmek
---
Bir işi defalarca yapmak için aynı satırı tekrar tekrar yazmazsın; döngü kullanırsın. `iken` döngüsü, koşul doğru olduğu **sürece** bloğunu tekrarlar.
## Temel kullanım
```kbl
sayac = 1
iken sayac <= 5:
yazdir(sayac)
sayac += 1
yazdir("Bitti")
```
```cikti
1
2
3
4
5
Bitti
```
Her turdan önce koşul sorulur. `sayac` 6 olunca koşul yanlış çıkar ve döngü biter.
## Geri sayım
```kbl
kalan = 3
iken kalan > 0:
yazdir(f"{kalan}...")
kalan -= 1
yazdir("Kalkış!")
```
```cikti
3...
2...
1...
Kalkış!
```
## Toplam biriktirmek
Döngüde bir değişkene her turda ekleme yaparak toplam bulursun.
```kbl
toplam = 0
n = 1
iken n <= 100:
toplam += n
n += 1
yazdir(f"1'den 100'e kadar toplam: {toplam}")
```
```cikti
1'den 100'e kadar toplam: 5050
```
## Kaç turda biteceğini bilmediğin işler
`iken`, tekrar sayısını önceden bilmediğin durumlar için idealdir. Yıllık %40 faizle 10.000 TL kaç yılda iki katını geçer?
```kbl
para = 10_000.0
yil = 0
iken para < 20_000.0:
para = para * 1.40
yil += 1
yazdir(f"{yil} yıl sonra: {para:,.2f} TL")
```
```cikti
3 yıl sonra: 27,440.00 TL
```
Bir sayının basamaklarını tek tek ayırmak da böyle bir iştir.
```kbl
n = 4729
basamak_toplami = 0
iken n > 0:
basamak_toplami += n % 10
n = n // 10
yazdir(basamak_toplami)
```
```cikti
22
```
> **Dikkat:** Koşulu bir gün yanlış yapacak satırı unutursan döngü **sonsuza dek** döner. Aşağıdaki kodda `sayac` hiç artmıyor; program durmaz (IDE belli bir süre sonra onu keser).
```kbl goster
sayac = 1
iken sayac <= 5:
yazdir(sayac)
# sayac += 1 unutuldu!
```
## Alıştırma
```alistirma
`iken` ile 2'nin kuvvetlerini yazdır: 1, 2, 4, 8, ... 1000'i geçmeyenleri, her biri ayrı satırda.
%%%
kuvvet = 1
# buraya yaz
%%%
kuvvet = 1
iken kuvvet <= 1000:
yazdir(kuvvet)
kuvvet *= 2
%%%
1
2
4
8
16
32
64
128
256
512
```
```alistirma
Bir kumbarada 0 TL var. Her hafta 35 TL atılıyor. Kumbara 500 TL'ye ulaşana ya da geçene kadar kaç hafta gerektiğini ve son tutarı `X hafta, Y TL` biçiminde yazdır.
%%%
kumbara = 0
hafta = 0
# buraya yaz
%%%
kumbara = 0
hafta = 0
iken kumbara < 500:
kumbara += 35
hafta += 1
yazdir(f"{hafta} hafta, {kumbara} TL")
%%%
15 hafta, 525 TL
```