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
+94
View File
@@ -0,0 +1,94 @@
# Değişkenler: sayı, ondalık, metin ve mantık türleri, dönüşümler ve aritmetik
#
# Değişken, bir değere verilen addır. "ad = değer" yazınca değer o ada bağlanır.
# Türü yazmak gerekmez; KabaLang değere bakıp türü kendisi anlar.
# ── Dört temel tür ─────────────────────────────────────────────
ogrenci = "Mehmet" # metin : tırnak içindeki yazı
yas = 17 # sayi : tam sayı
boy = 1.74 # ondalik : virgüllü sayı (Türkçedeki virgül yerine nokta yazılır)
mezun = yanlis # mantik : dogru ya da yanlis
yazdir(f"Öğrenci: {ogrenci}, yaş: {yas}, boy: {boy} m, mezun: {mezun}")
# Değişkene yeni bir değer atanabilir; eski değer unutulur.
yas = 18
mezun = dogru
yazdir(f"Bir yıl sonra: yaş {yas}, mezun: {mezun}")
# Uzun sayılarda basamakları _ ile ayırmak okumayı kolaylaştırır.
nufus = 85_000_000
yazdir(f"Nüfus: {nufus} (binlik ayırıcıyla: {nufus:,})")
# degismez ile tanımlanan değer bir daha değiştirilemez.
# PI = 3 yazmaya kalkarsan derleyici programı çalıştırmadan durdurur.
degismez PI = 3.14159
yazdir()
# ── Aritmetik ─────────────────────────────────────────────────
a = 17
b = 5
yazdir(f"{a} + {b} = {a + b}")
yazdir(f"{a} - {b} = {a - b}")
yazdir(f"{a} * {b} = {a * b}")
yazdir(f"{a} / {b} = {a / b}") # / her zaman ondalık sonuç verir
yazdir(f"{a} // {b} = {a // b}") # // tam bölme: küsuratı atar
yazdir(f"{a} % {b} = {a % b}") # % bölümden kalan
yazdir(f"2 ** 10 = {2 ** 10}") # ** üs alma
yazdir()
# İşlem önceliği matematikteki gibidir; parantez önceliği değiştirir.
yazdir(f"2 + 3 * 4 = {2 + 3 * 4}")
yazdir(f"(2 + 3) * 4 = {(2 + 3) * 4}")
# Kısaltmalar: x += 5, "x = x + 5" demektir. -= ve *= de aynı mantıkla çalışır.
puan = 10
puan += 5
puan *= 2
yazdir(f"Puan: {puan}")
yazdir()
# ── // ve % ile gerçek bir hesap ───────────────────────────────
# Toplam saniyeyi saat, dakika ve saniyeye ayıralım.
toplam_saniye = 10_000
saat = toplam_saniye // 3600
dakika = (toplam_saniye % 3600) // 60
saniye = toplam_saniye % 60
# {dakika:02} sayıyı iki basamağa tamamlar: 6 yerine 06 yazar.
yazdir(f"{toplam_saniye} saniye = {saat} saat {dakika:02} dakika {saniye:02} saniye")
# Dairenin alanı: ondalık sayılarla hesap. {alan:.2f} virgülden sonra iki basamak yazar.
yaricap = 2.5
alan = PI * yaricap * yaricap
yazdir(f"Yarıçapı {yaricap} olan dairenin alanı: {alan:.2f}")
yazdir()
# ── Tür dönüşümü ──────────────────────────────────────────────
# Türler kendiliğinden birbirine dönüşmez; dönüşümü açıkça yazarız.
metin_sayi = "42"
gercek_sayi = sayi(metin_sayi) # metinden tam sayıya
yazdir(f"sayi(\"42\") + 8 = {gercek_sayi + 8}")
fiyat = ondalik("19.90") # metinden ondalığa
yazdir(f"ondalik(\"19.90\") * 3 = {fiyat * 3:.2f}")
yazdir(f"sayi(3.99) = {sayi(3.99)} (küsurat atılır, yuvarlanmaz)")
yazdir(f"ondalik(7) / 2 = {ondalik(7) / 2}")
# Bir sayıyı metne + ile eklemek için önce metin() ile çeviririz.
yazdir("Sınıfta " + metin(24) + " öğrenci var.")
# Dikkat: sayıya benzemeyen bir metin hata vermez, 0'a dönüşür.
# Kullanıcıdan gelen sayıları denetlemenin yolu bir sonraki derste.
yazdir(f"sayi(\"on iki\") = {sayi('on iki')}")
yazdir()
# ── Küçük bir alışveriş hesabı ─────────────────────────────────
adet = 3
birim_fiyat = 249.90
kdv_orani = 0.20
ara_toplam = adet * birim_fiyat
kdv = ara_toplam * kdv_orani
yazdir(f"Ara toplam : {ara_toplam:>9.2f} TL")
yazdir(f"KDV (%20) : {kdv:>9.2f} TL")
yazdir(f"Toplam : {ara_toplam + kdv:>9.2f} TL")