- 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ı.
119 lines
2.9 KiB
Markdown
119 lines
2.9 KiB
Markdown
---
|
|
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.
|
|
```
|