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:
@@ -0,0 +1,96 @@
|
||||
# Döngüler: dongu ... icinde, sayı aralıkları, iken, kir ve devam
|
||||
#
|
||||
# Döngü, bir kod bloğunu tekrar tekrar çalıştırır. KabaLang'de iki türü var:
|
||||
# dongu x icinde ... : bir listenin ya da aralığın her öğesi için bir kez
|
||||
# iken koşul: : koşul doğru olduğu sürece
|
||||
|
||||
# ── Bir listenin üzerinden geçmek ─────────────────────────────
|
||||
# Her turda sehir değişkeni sıradaki öğeyi alır.
|
||||
sehirler = ["Ankara", "İzmir", "Trabzon", "Van"]
|
||||
dongu sehir icinde sehirler:
|
||||
yazdir(f"• {sehir}")
|
||||
yazdir()
|
||||
|
||||
# ── Sayı aralığı: 1..5 ────────────────────────────────────────
|
||||
# 1..5 aralığı 1, 2, 3, 4, 5 demektir; üst sınır DAHİLDİR.
|
||||
toplam = 0
|
||||
dongu i icinde 1..5:
|
||||
toplam += i
|
||||
yazdir(f"i = {i}, şimdiye kadarki toplam = {toplam}")
|
||||
yazdir()
|
||||
|
||||
# Aralığın sınırları değişken de olabilir.
|
||||
n = 6
|
||||
konsol.yaz(f"7'nin ilk {n} katı:")
|
||||
dongu i icinde 1..n:
|
||||
konsol.yaz(f" {7 * i}")
|
||||
yazdir()
|
||||
yazdir()
|
||||
|
||||
# ── İç içe döngü: çarpım tablosu ──────────────────────────────
|
||||
# Dıştaki döngünün her turunda içteki döngü baştan sona çalışır.
|
||||
# {deger:4} sayıyı 4 karakterlik alana sağa yaslar; sütunlar böyle hizalanır.
|
||||
dongu satir icinde 1..5:
|
||||
cizelge = ""
|
||||
dongu sutun icinde 1..5:
|
||||
cizelge = cizelge + f"{satir * sutun:4}"
|
||||
yazdir(cizelge)
|
||||
yazdir()
|
||||
|
||||
# ── iken: koşul doğru olduğu sürece ───────────────────────────
|
||||
# Aralık yalnız ileri sayar (5..1 boştur); geri saymak için iken kullanılır.
|
||||
# Koşulu bir gün yanlış yapacak satırı (burada sayac -= 1) unutmak döngüyü sonsuz yapar.
|
||||
sayac = 5
|
||||
iken sayac > 0:
|
||||
konsol.yaz(f"{sayac}... ")
|
||||
sayac -= 1
|
||||
yazdir("kalkış!")
|
||||
|
||||
# Kaç turda biteceğini bilmediğimiz işler için iken uygundur.
|
||||
# Yıllık %40 faizle 10.000 TL kaç yılda iki katını geçer?
|
||||
para = 10_000.0
|
||||
yil = 0
|
||||
iken para < 20_000.0:
|
||||
para = para * 1.40
|
||||
yil += 1
|
||||
yazdir(f"{yil} yıl sonra para {para:,.2f} TL oldu; iki katını geçti.")
|
||||
yazdir()
|
||||
|
||||
# ── devam: bu turu atla ───────────────────────────────────────
|
||||
# devam'a gelince turun geri kalanı atlanır, döngü bir sonraki öğeyle sürer.
|
||||
konsol.yaz("1-20 arası 3'e bölünmeyen tek sayılar:")
|
||||
dongu i icinde 1..20:
|
||||
eger i % 2 == 0:
|
||||
devam # çift sayıysa geç
|
||||
eger i % 3 == 0:
|
||||
devam # 3'e bölünüyorsa geç
|
||||
konsol.yaz(f" {i}")
|
||||
yazdir()
|
||||
|
||||
# ── kir: döngüden tümden çık ──────────────────────────────────
|
||||
# Aradığımızı bulunca aramaya devam etmenin anlamı yok.
|
||||
notlar = [62, 48, 91, 77, 35, 88]
|
||||
dongu notu icinde notlar:
|
||||
eger notu < 50:
|
||||
yazdir(f"İlk başarısız not bulundu: {notu}")
|
||||
kir
|
||||
yazdir()
|
||||
|
||||
# ── Hepsi bir arada: asal sayılar ─────────────────────────────
|
||||
# Bir sayı, 1 ve kendisinden başka böleni yoksa asaldır.
|
||||
# Her aday için 2'den başlayıp bölen arıyoruz; bölen bulunca kir ile çıkıyoruz.
|
||||
asal_sayisi = 0
|
||||
konsol.yaz("50'ye kadar asal sayılar:")
|
||||
dongu aday icinde 2..50:
|
||||
asal = dogru
|
||||
bolen = 2
|
||||
iken bolen * bolen <= aday:
|
||||
eger aday % bolen == 0:
|
||||
asal = yanlis
|
||||
kir # yalnız içteki iken döngüsünden çıkar
|
||||
bolen += 1
|
||||
eger asal:
|
||||
konsol.yaz(f" {aday}")
|
||||
asal_sayisi += 1
|
||||
yazdir()
|
||||
yazdir(f"Toplam {asal_sayisi} asal sayı.")
|
||||
Reference in New Issue
Block a user