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
+101
View File
@@ -0,0 +1,101 @@
# 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")