Compare commits
3
Commits
33fcf942f8
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3aa5fc3b5 | ||
|
|
5bca5489e4 | ||
|
|
121b8ac2bd |
@@ -77,7 +77,7 @@ Birinci bölüm
|
||||
İkinci bölüm
|
||||
```
|
||||
|
||||
> **Dikkat:** `yazdir` küçük harfle yazılır. `Yazdir("x")` yazarsan derleyici "'Yazdir' adında bir değişken veya fonksiyon tanımlanmamış" der. KabaLang büyük ve küçük harfi ayırır.
|
||||
> **Dikkat:** `yazdir` küçük harfle yazılır. `Yazdir("x")` yazarsan derleyici "'Yazdir' adında bir işlev tanımlı değil" der ve altına "'yazdir' mi demek istediniz?" önerisini ekler. KabaLang büyük ve küçük harfi ayırır.
|
||||
|
||||
> **İpucu:** Örnekleri yalnız okuma; **Dene**'ye basıp metni değiştir, kendi adını yazdır. En hızlı böyle öğrenirsin.
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ 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.
|
||||
Sebepsiz girinti de hatadır: blok açmayan bir satırın altını içeriden başlatamazsın. Bir de `:`'yı unutursan derleyici "blok açan satırın sonunda ':' eksik" der ve `:`'nın gideceği yeri gösterir.
|
||||
|
||||
## Büyük ve küçük harf
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ doğru
|
||||
yanlış
|
||||
```
|
||||
|
||||
> **Dikkat:** Yöntem adlarına dikkat: büyütme `buyut()`, küçültme `kucult()`, uzunluk `uzunluk()`'tür. `buyuk()`, `kucuk()` diye yöntem yoktur; derleyici "böyle bir metot bulunamadı" der.
|
||||
> **Dikkat:** Yöntem adlarına dikkat: büyütme `buyut()`, küçültme `kucult()`, uzunluk `uzunluk()`'tür. `buyuk()`, `kucuk()` diye yöntem yoktur; derleyici "metinde 'buyuk' diye bir metot yok" der ve "'buyut' mi demek istediniz?" diye önerir.
|
||||
|
||||
## Yöntemleri zincirlemek
|
||||
|
||||
|
||||
@@ -111,7 +111,64 @@ ciftleri_yaz(12)
|
||||
2 4 6 8 10 12
|
||||
```
|
||||
|
||||
> **Dikkat:** Fonksiyonun içinde, programın başka bir yerinde kullandığın değişken adlarını kullanmamaya özen göster; her fonksiyonun içinde kendine özgü adlar seç. İyi bir alışkanlık da şudur: fonksiyonlarını dosyanın başına yaz, programın asıl işini altlarına koy.
|
||||
## Dışarıdaki değişkenler: okumak serbest, değiştirmek bildirim ister
|
||||
|
||||
Fonksiyon, kendisinden önce dosyada tanımlanmış bir değişkeni **okuyabilir**:
|
||||
|
||||
```kbl
|
||||
kdv_orani = 20
|
||||
|
||||
fonksiyon kdv(fiyat):
|
||||
don fiyat * kdv_orani // 100
|
||||
|
||||
yazdir(kdv(450))
|
||||
```
|
||||
```cikti
|
||||
90
|
||||
```
|
||||
|
||||
Ama fonksiyonun içinde ona yeni bir değer **atamak** derleme hatasıdır:
|
||||
|
||||
```kbl goster
|
||||
sayac = 0
|
||||
|
||||
fonksiyon arttir():
|
||||
sayac = sayac + 1 # hata: 'sayac' fonksiyonun dışında tanımlı
|
||||
```
|
||||
|
||||
Neden? Bir fonksiyonun dışarıdaki bir değeri sessizce değiştirmesi, programın bambaşka bir yerinde "bu değer neden değişti?" sorusunu doğurur. Gerçekten değiştirmek istiyorsan fonksiyonun **ilk satırına** `kuresel` yazarak bunu açıkça söylersin:
|
||||
|
||||
```kbl
|
||||
sayac = 0
|
||||
|
||||
fonksiyon arttir():
|
||||
kuresel sayac
|
||||
sayac = sayac + 1
|
||||
|
||||
arttir()
|
||||
arttir()
|
||||
yazdir(sayac)
|
||||
```
|
||||
```cikti
|
||||
2
|
||||
```
|
||||
|
||||
Birden çok değişken için adları virgülle ayır: `kuresel toplam, adet`. Çoğu zaman daha temiz yol ise değeri parametre olarak alıp `don` ile geri vermektir; böylece neyin değiştiği çağrının olduğu satırda görünür:
|
||||
|
||||
```kbl
|
||||
fonksiyon arttir(n):
|
||||
don n + 1
|
||||
|
||||
sayac = 0
|
||||
sayac = arttir(sayac)
|
||||
sayac = arttir(sayac)
|
||||
yazdir(sayac)
|
||||
```
|
||||
```cikti
|
||||
2
|
||||
```
|
||||
|
||||
> **İpucu:** Fonksiyonlarını dosyanın başına yaz, programın asıl işini altlarına koy; fonksiyonun içinde de kendine özgü adlar seç.
|
||||
|
||||
## Gerçek bir örnek
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ Hata: sıfıra bölünemez
|
||||
| `tamam(deger)` | başarı döndür |
|
||||
| `hata("mesaj")` | hata döndür |
|
||||
| `.tamam_mi()` / `.hatali_mi()` | hangisi olduğunu sor |
|
||||
| `.deger()` | başarıdaki değeri al |
|
||||
| `.deger()` | başarıdaki değeri al — sonuç hatalıysa program burada durur, önce `tamam_mi()` ile sor |
|
||||
| `.hata().mesaj()` | hatanın açıklamasını al |
|
||||
| `.deger_veya(yedek)` | hata varsa yedek değeri ver |
|
||||
|
||||
@@ -148,6 +148,8 @@ yağmur
|
||||
yok
|
||||
```
|
||||
|
||||
> **Dikkat:** `.deger()` yalnız değer varken okunur. `bos` bir `belki`'nin (ya da hatalı bir `sonuc`'un) içini `.deger()` ile okursan program o satırda durur ve `BOS_BELKI` (`HATALI_SONUC`) hatası verir — sessizce `0` ya da boş metin vermez. Emin değilsen önce `var_mi()` / `tamam_mi()` ile sor ya da `deger_veya(yedek)` kullan.
|
||||
|
||||
## Alıştırma
|
||||
|
||||
```alistirma
|
||||
|
||||
Reference in New Issue
Block a user