- 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ı.
102 lines
3.7 KiB
Plaintext
102 lines
3.7 KiB
Plaintext
# Koşullar: eger, degilse eger, degilse; karşılaştırma ve ve/veya/degil
|
|
#
|
|
# Program bazen bir şeyi yalnız belli bir durumda yapmalıdır.
|
|
# "eger koşul:" satırının altındaki girintili kod, koşul doğruysa çalışır.
|
|
# Girinti (satır başındaki 4 boşluk) hangi satırların bloğa ait olduğunu gösterir.
|
|
|
|
# ── Karşılaştırma işleçleri ───────────────────────────────────
|
|
# Her karşılaştırmanın sonucu bir mantık değeridir: dogru ya da yanlis.
|
|
# == eşit mi != farklı mı
|
|
# < küçük mü <= küçük ya da eşit mi
|
|
# > büyük mü >= büyük ya da eşit mi
|
|
yazdir(f"7 > 3 : {7 > 3}")
|
|
yazdir(f"7 == 3 : {7 == 3}")
|
|
yazdir(f"7 != 3 : {7 != 3}")
|
|
yazdir(f"\"elma\" == \"Elma\" : {'elma' == 'Elma'} (büyük/küçük harf fark eder)")
|
|
yazdir()
|
|
|
|
# ── eger / degilse ────────────────────────────────────────────
|
|
sicaklik = 31
|
|
|
|
eger sicaklik > 30:
|
|
yazdir(f"Hava {sicaklik} derece: sıcak, bol su için.")
|
|
degilse:
|
|
yazdir(f"Hava {sicaklik} derece: serin.")
|
|
|
|
# ── degilse eger: birden çok seçenek ──────────────────────────
|
|
# Koşullar yukarıdan aşağı denenir; DOĞRU çıkan İLK dal çalışır, gerisi atlanır.
|
|
# Bu yüzden sıralama önemlidir: önce en büyük eşiği soruyoruz.
|
|
puan = 77
|
|
|
|
eger puan >= 85:
|
|
harf = "AA"
|
|
degilse eger puan >= 70:
|
|
harf = "BA"
|
|
degilse eger puan >= 60:
|
|
harf = "BB"
|
|
degilse eger puan >= 50:
|
|
harf = "CC"
|
|
degilse:
|
|
harf = "FF"
|
|
|
|
yazdir(f"{puan} puan → harf notu {harf}")
|
|
yazdir()
|
|
|
|
# ── ve / veya / degil ─────────────────────────────────────────
|
|
# ve : iki taraf da doğruysa doğru
|
|
# veya : taraflardan en az biri doğruysa doğru
|
|
# degil : doğruyu yanlışa, yanlışı doğruya çevirir
|
|
yas = 16
|
|
veli_izni = dogru
|
|
|
|
eger yas >= 18 veya veli_izni:
|
|
yazdir(f"{yas} yaşında: geziye katılabilir.")
|
|
degilse:
|
|
yazdir(f"{yas} yaşında: veli izni gerekli.")
|
|
|
|
# Artık yıl kuralı: 4'e bölünür ve 100'e bölünmez, YA DA 400'e bölünür.
|
|
# Uzun koşulları parantezle gruplamak hem doğru çalışmasını hem okunmasını sağlar.
|
|
yil = 2024
|
|
artik = (yil % 4 == 0 ve yil % 100 != 0) veya yil % 400 == 0
|
|
eger artik:
|
|
yazdir(f"{yil} artık yıl: şubat 29 gün.")
|
|
degilse:
|
|
yazdir(f"{yil} artık yıl değil: şubat 28 gün.")
|
|
|
|
eger degil artik:
|
|
yazdir("Bu satır görünmez, çünkü yıl artık yıl.")
|
|
yazdir()
|
|
|
|
# ── İç içe koşul ──────────────────────────────────────────────
|
|
# Bir eger bloğunun içine başka bir eger yazılabilir. Her düzey 4 boşluk daha içeride.
|
|
kullanici = "ayse"
|
|
parola = "kirmizi-kalem"
|
|
|
|
eger kullanici == "ayse":
|
|
eger parola == "kirmizi-kalem":
|
|
yazdir("Giriş başarılı. Hoş geldin, Ayşe.")
|
|
degilse:
|
|
yazdir("Parola yanlış.")
|
|
degilse:
|
|
yazdir("Böyle bir kullanıcı yok.")
|
|
|
|
# ── Küçük bir hesap: kargo ücreti ─────────────────────────────
|
|
# Sepet 500 TL ve üstüyse kargo ücretsiz; değilse ağırlığa göre ücret.
|
|
sepet = 420.0
|
|
agirlik_kg = 3.2
|
|
|
|
eger sepet >= 500.0:
|
|
kargo = 0.0
|
|
degilse eger agirlik_kg <= 1.0:
|
|
kargo = 39.90
|
|
degilse eger agirlik_kg <= 5.0:
|
|
kargo = 59.90
|
|
degilse:
|
|
kargo = 89.90
|
|
|
|
yazdir()
|
|
yazdir(f"Sepet {sepet:.2f} TL, {agirlik_kg} kg → kargo {kargo:.2f} TL")
|
|
eger kargo > 0.0:
|
|
eksik = 500.0 - sepet
|
|
yazdir(f"\033[33m{eksik:.2f} TL'lik ürün daha eklerseniz kargo ücretsiz.\033[0m")
|