- 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ı.
157 lines
3.2 KiB
Markdown
157 lines
3.2 KiB
Markdown
---
|
|
baslik: Değişkenler
|
|
bolum: Temeller
|
|
ozet: Değerlere ad vermek, yeniden atamak ve değişmezler
|
|
---
|
|
|
|
Program çalışırken bilgileri bir yerde tutman gerekir: bir öğrencinin adı, sepetteki ürün sayısı, bugünkü sıcaklık. Değişken, bir değere verdiğin addır.
|
|
|
|
## Değişken oluşturmak
|
|
|
|
`ad = değer` yazınca değer o ada bağlanır. Sonra o adı her kullandığında değeri gelir.
|
|
|
|
```kbl
|
|
ogrenci = "Elif"
|
|
yas = 15
|
|
yazdir(ogrenci)
|
|
yazdir(yas)
|
|
```
|
|
```cikti
|
|
Elif
|
|
15
|
|
```
|
|
|
|
Türü yazmana gerek yoktur; KabaLang değere bakıp anlar. `"Elif"` bir metin, `15` bir tam sayıdır.
|
|
|
|
## Değeri değiştirmek
|
|
|
|
Bir değişkene yeni değer atayınca eskisi unutulur.
|
|
|
|
```kbl
|
|
sicaklik = 18
|
|
yazdir(sicaklik)
|
|
sicaklik = 24
|
|
yazdir(sicaklik)
|
|
```
|
|
```cikti
|
|
18
|
|
24
|
|
```
|
|
|
|
Değişkenin yeni değerini eskisinden de hesaplayabilirsin.
|
|
|
|
```kbl
|
|
bakiye = 500
|
|
bakiye = bakiye - 120
|
|
bakiye = bakiye + 75
|
|
yazdir(bakiye)
|
|
```
|
|
```cikti
|
|
455
|
|
```
|
|
|
|
## Kısaltmalar: += ve -=
|
|
|
|
`bakiye = bakiye + 75` yerine `bakiye += 75` yazabilirsin. `-=` ve `*=` de aynı mantıkla çalışır.
|
|
|
|
```kbl
|
|
puan = 10
|
|
puan += 5 # puan = puan + 5
|
|
puan *= 2 # puan = puan * 2
|
|
puan -= 4 # puan = puan - 4
|
|
yazdir(puan)
|
|
```
|
|
```cikti
|
|
26
|
|
```
|
|
|
|
## Değişken adları
|
|
|
|
- Harfle ya da `_` ile başlar; içinde harf, rakam ve `_` olabilir.
|
|
- Boşluk içeremez: `dogum yili` olmaz, `dogum_yili` olur.
|
|
- Anahtar sözcükler ad olamaz: `eger`, `dongu`, `sinif` gibi.
|
|
- Anlamlı ad seç: `x` yerine `fiyat`, `n` yerine `ogrenci_sayisi`.
|
|
|
|
```kbl
|
|
dogum_yili = 2010
|
|
bu_yil = 2026
|
|
yazdir(bu_yil - dogum_yili)
|
|
```
|
|
```cikti
|
|
16
|
|
```
|
|
|
|
## Bir değişkenin türü sabittir
|
|
|
|
Bir değişkene ilk verdiğin değerin türü onun türü olur. Sonra başka türde bir değer atayamazsın.
|
|
|
|
```kbl goster
|
|
adet = 5
|
|
adet = "beş" # derleme hatası: metin, sayı türündeki değişkene atanamaz
|
|
```
|
|
|
|
> **Dikkat:** Program derlenmeden önce bu hata yakalanır. Farklı türde bir değer saklamak istiyorsan yeni bir ad kullan: `adet_yazi = "beş"`.
|
|
|
|
## Aynı anda birden çok değişken
|
|
|
|
Virgülle ayırarak birkaç değişkeni tek satırda oluşturabilirsin.
|
|
|
|
```kbl
|
|
ad, sehir = "Mert", "Trabzon"
|
|
yazdir(ad, sehir)
|
|
```
|
|
```cikti
|
|
Mert Trabzon
|
|
```
|
|
|
|
## Değişmezler
|
|
|
|
Programda hiç değişmemesi gereken değerler için `degismez` kullan. Böyle bir değere yeniden atama yaparsan program derlenmez.
|
|
|
|
```kbl
|
|
degismez KDV_ORANI = 20
|
|
fiyat = 150
|
|
yazdir(fiyat + fiyat * KDV_ORANI / 100)
|
|
```
|
|
```cikti
|
|
180.0
|
|
```
|
|
|
|
```kbl goster
|
|
degismez KDV_ORANI = 20
|
|
KDV_ORANI = 18 # hata: 'KDV_ORANI' değişmez — değeri değiştirilemez
|
|
```
|
|
|
|
> **İpucu:** Değişmezleri BÜYÜK_HARFLE yazmak yaygın bir alışkanlıktır; kodu okuyan biri onun değişmeyeceğini hemen anlar.
|
|
|
|
## Alıştırma
|
|
|
|
```alistirma
|
|
`cuzdan` 200 TL ile başlıyor. Önce 45 TL'lik bir kitap al (`-=`), sonra 30 TL harçlık ekle (`+=`). Son durumu yazdır.
|
|
%%%
|
|
cuzdan = 200
|
|
# buraya yaz
|
|
yazdir(cuzdan)
|
|
%%%
|
|
cuzdan = 200
|
|
cuzdan -= 45
|
|
cuzdan += 30
|
|
yazdir(cuzdan)
|
|
%%%
|
|
185
|
|
```
|
|
|
|
```alistirma
|
|
`kenar` değişkeni bir karenin kenar uzunluğunu tutuyor. `alan` ve `cevre` adında iki değişken oluşturup karenin alanını ve çevresini hesapla, ikisini aynı satırda yazdır.
|
|
%%%
|
|
kenar = 7
|
|
# buraya yaz
|
|
%%%
|
|
kenar = 7
|
|
alan = kenar * kenar
|
|
cevre = 4 * kenar
|
|
yazdir(alan, cevre)
|
|
%%%
|
|
49 28
|
|
```
|