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
+118
View File
@@ -0,0 +1,118 @@
---
baslik: Sözdizimi ve girinti
bolum: Giriş
ozet: Satırlar, iki nokta, girintili bloklar ve büyük/küçük harf
---
Her dilin bir yazım kuralı vardır. KabaLang'de kurallar az ve sade: her komut kendi satırında durur, bloklar süslü parantezle değil **girintiyle** belirtilir.
## Her satır bir komut
Satır sonuna noktalı virgül koymazsın. Satır bitince komut da biter.
```kbl
yazdir("Ankara")
yazdir("İzmir")
```
```cikti
Ankara
İzmir
```
## Bloklar: iki nokta ve girinti
Bazı satırlar bir **blok** açar: `eger`, `dongu`, `fonksiyon` gibi. Bu satırlar `:` ile biter. Altındaki satırlar 4 boşluk içeriden başlar; o satırlar bloğa aittir.
```kbl
sicaklik = 32
eger sicaklik > 30:
yazdir("Hava çok sıcak.")
yazdir("Bol su iç.")
yazdir("Bu satır her zaman çalışır.")
```
```cikti
Hava çok sıcak.
Bol su iç.
Bu satır her zaman çalışır.
```
Girintisi biten satır, bloğun dışına çıkmış olur. Yukarıdaki son satır `eger`'e bağlı değildir.
Sıcaklığı 20 yapıp **Dene** ile çalıştır: ilk iki satır kaybolur, son satır yine görünür.
## İç içe bloklar
Bir bloğun içinde başka bir blok açabilirsin. Her düzey 4 boşluk daha içeride başlar.
```kbl
sicaklik = 32
yagmur = yanlis
eger sicaklik > 25:
yazdir("Hava sıcak.")
eger degil yagmur:
yazdir("Pikniğe gidebilirsin.")
```
```cikti
Hava sıcak.
Pikniğe gidebilirsin.
```
> **Dikkat:** `:`'dan sonraki satırı girintisiz yazmak hatadır. Aşağıdaki kod derlenmez; derleyici "blok gövdesi boş — ':' sonrasındaki satırlar girintili olmalı" der.
```kbl goster
eger dogru:
yazdir("girinti unutuldu")
```
Sebepsiz girinti de hatadır: blok açmayan bir satırın altını içeriden başlatamazsın. Bir de `:`'yı unutursan derleyici "':' bekleniyordu" der.
## Büyük ve küçük harf
KabaLang büyük/küçük harfi ayırır. `sehir`, `Sehir` ve `SEHIR` üç ayrı addır. Anahtar sözcükler (`eger`, `dongu`, `dogru`) ve hazır fonksiyonlar (`yazdir`) hep küçük harfle yazılır.
```kbl
sehir = "Bursa"
Sehir = "Konya"
yazdir(sehir)
yazdir(Sehir)
```
```cikti
Bursa
Konya
```
> **İpucu:** Kodda Türkçe karakterli ad kullanmak yerine ASCII harfler yeğle: `sehir`, `ogrenci`, `dogru`. Anahtar sözcükler de böyle yazılır (`degilse`, `iken`). Metinlerin içinde ise ç, ğ, ı, ö, ş, ü'yü serbestçe kullan.
## Uzun satırı bölmek
Parantez açıkken satırı bölebilirsin; parantez kapanana kadar tek satır sayılır.
```kbl
toplam = (120 +
75 +
300)
yazdir(toplam)
```
```cikti
495
```
## Alıştırma
```alistirma
`puan` 50'den büyükse önce `Geçtin.` sonra `Tebrikler!` yazdır. Bu iki satır bloğun içinde olsun. En sonda, bloğun dışında `Sınav bitti.` yazdır.
%%%
puan = 72
eger puan > 50:
# buraya yaz
%%%
puan = 72
eger puan > 50:
yazdir("Geçtin.")
yazdir("Tebrikler!")
yazdir("Sınav bitti.")
%%%
Geçtin.
Tebrikler!
Sınav bitti.
```