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
+98
View File
@@ -0,0 +1,98 @@
# Metinler: Türkçe büyük/küçük harf, bölme, birleştirme, arama ve uzunluk
#
# Metin (string) bir harf dizisidir. KabaLang metinleri Türkçe kurallara göre
# işler: "i" büyüyünce "İ", "I" küçülünce "ı" olur. Birçok dilde bu yanlış çalışır.
# Bir metni tersine çeviren fonksiyon: harfleri tek tek gezip her birini başa ekler.
fonksiyon ters_cevir(m: metin) -> metin:
sonuc = ""
dongu harf icinde m:
sonuc = harf + sonuc
don sonuc
# Boşlukları ve büyük/küçük farkını atınca tersi kendisine eşit mi?
fonksiyon palindrom_mu(m: metin) -> mantik:
sade = m.kucult().degistir(" ", "")
don sade == ters_cevir(sade)
# ── Türkçe büyük/küçük harf ───────────────────────────────────
sehir = "istanbul"
yazdir(f"\"{sehir}\".buyut() → {sehir.buyut()}")
yazdir(f"\"IĞDIR\".kucult() → {'IĞDIR'.kucult()}")
yazdir(f"\"ılık İğne\".buyut() → {'ılık İğne'.buyut()}")
yazdir(f"\"ŞİŞLİ ÖĞÜT\".kucult() → {'ŞİŞLİ ÖĞÜT'.kucult()}")
# Büyük/küçük harfe aldırmadan karşılaştırmak için iki tarafı da küçültürüz.
girilen = "İZMİR"
eger girilen.kucult() == "izmir":
yazdir(f"\"{girilen}\" ile \"izmir\" aynı şehir")
yazdir()
# ── Uzunluk ve harflere erişim ────────────────────────────────
# uzunluk() harf sayısını verir; ş, ğ, İ gibi harfler de tek harf sayılır.
kelime = "Şanlıurfa"
yazdir(f"\"{kelime}\" {kelime.uzunluk()} harf")
yazdir(f"İlk harf: {kelime[0]}, son harf: {kelime[-1]}, 0..3 arası: {kelime[0..3]}")
yazdir(f"bastan(5): {kelime.bastan(5)}, sondan(4): {kelime.sondan(4)}, dilim(2, 3): {kelime.dilim(2, 3)}")
yazdir()
# ── Temizleme, arama, değiştirme ──────────────────────────────
# kirp() baştaki ve sondaki boşlukları siler; kullanıcı girdisinde çok işe yarar.
ham = " Merhaba Dünya "
yazdir(f"[{ham}] → [{ham.kirp()}]")
cumle = "Ankara Türkiye'nin başkentidir"
yazdir(f"\"başkent\" geçiyor mu? {cumle.icerir('başkent')}")
yazdir(f"\"Ankara\" ile mi başlıyor? {cumle.ile_baslar('Ankara')}")
yazdir(f"\"dir\" ile mi bitiyor? {cumle.ile_biter('dir')}")
yazdir(f"\"Türkiye\" hangi konumda başlıyor? {cumle.bul('Türkiye')} (0'dan sayarak; yoksa -1)")
yazdir(f"Değiştir: {cumle.degistir('Ankara', 'Bursa').degistir('başkentidir', 'dördüncü büyük şehridir')}")
yazdir()
# ── Bölme ve birleştirme ──────────────────────────────────────
# bol(ayrac) metni parçalara ayırıp liste verir; birlestir(ayrac) tersini yapar.
satir = "Ayşe;Kaya;Eskişehir;34"
alanlar = satir.bol(";")
yazdir(f"Bölündü : {alanlar} ({alanlar.uzunluk()} parça)")
yazdir(f"Ad soyad: {alanlar[0]} {alanlar[1].buyut()}")
yazdir(f"Birleşti: {alanlar.birlestir(' | ')}")
# Bir cümleyi kelimelere ayırıp her kelimenin ilk harfini büyütelim.
baslik = "yaşlı ırmak ile genç irmik"
kelimeler = baslik.bol(" ")
duzgun = []
dongu k icinde kelimeler:
duzgun.ekle(k.bastan(1).buyut() + k.dilim(1, k.uzunluk() - 1))
yazdir(f"Başlık biçimi: {duzgun.birlestir(' ')}")
yazdir()
# ── Harf harf gezme ───────────────────────────────────────────
# dongu harf icinde metin: her turda bir harf gelir.
metin_ornegi = "Çalışkan öğrenciler ödevlerini erken bitirir"
unlu = 0
bosluk = 0
dongu harf icinde metin_ornegi.kucult():
eger "aeıioöuü".icerir(harf):
unlu += 1
degilse eger harf == " ":
bosluk += 1
yazdir(f"\"{metin_ornegi}\"")
yazdir(f" {metin_ornegi.uzunluk()} karakter, {unlu} ünlü, {bosluk + 1} kelime")
dongu aday icinde ["Ey Edip Adanada pide ye", "Kayak", "Kalem"]:
eger palindrom_mu(aday):
yazdir(f" \"{aday}\" tersten de aynı okunur")
degilse:
yazdir(f" \"{aday}\" tersten \"{ters_cevir(aday)}\" olur")
yazdir()
# ── Tekrarlama ve hizalama ────────────────────────────────────
# tekrarla(n) metni n kez yan yana koyar. f-string içinde
# {x:<10} sola, {x:>10} sağa, {x:^10} ortaya yaslar.
yazdir("=".tekrarla(32))
yazdir(f"{'ŞEHİR':^32}")
yazdir("=".tekrarla(32))
dongu ad icinde ["Rize", "Muğla", "Çanakkale"]:
yazdir(f"{ad:<14}|{ad.buyut():>17}")
yazdir("=".tekrarla(32))