Değişkenler ve Veri Tipleri
Lordex, dinamik tip sistemine sahip bir dildir. Bu, değişken tiplerinin otomatik olarak belirlendiği anlamına gelir.
Değişken Tanımlama
Lordex'te değişken tanımlamak son derece basittir. var veya let gibi anahtar kelimeler kullanmanıza gerek yoktur:
isim = "Ahmet"
yas = 25
pi = 3.14159
aktif = evet
Değişken isimleri Türkçe karakterler içerebilir (ö, ç, ş, ğ, ü, ı).
Temel Veri Tipleri
Lordex şu temel veri tiplerini destekler:
1. Tamsayılar (Integer)
Ondalık kısmı olmayan sayılardır:
sayi = 42
negatif = -15
sifir = 0
buyuk_sayi = 1000000
Özellikler:
- Sınırsız uzunlukta olabilir (bellek izin verdiğince)
- Negatif değerler desteklenir
- Matematiksel işlemlerde kullanılabilir
2. Ondalıklı Sayılar (Float)
Kesirli sayılardır:
pi = 3.14159
e = 2.71828
ondalik = 0.5
negatif_float = -3.14
Özellikler:
- Bilimsel gösterim desteklenir
- Hassasiyet: IEEE 754 double precision
- Aritmetik işlemlerde otomatik tip dönüşümü
Çok büyük veya çok küçük ondalıklı sayılar hassasiyet kaybına uğrayabilir. Finansal hesaplamalar için tam sayı kullanımı önerilir.
3. Dizgiler (String)
Metin verileridir:
isim = "Lordex"
mesaj = 'Merhaba Dünya!'
cok_satirli = "Bu bir
çok satırlı
dizgidir"
Özellikler:
- Tek veya çift tırnak kullanılabilir
- Türkçe karakterler desteklenir
- Escape karakterleri:
\n(yeni satır),\t(tab),\\(ters slash)
String Birleştirme:
isim = "Ahmet"
soyisim = "Yılmaz"
tam_isim = isim + " " + soyisim
yaz(tam_isim) // Çıktı: Ahmet Yılmaz
String İşlemleri:
metin = "Lordex"
uzunluk_metin = uzunluk(metin) // 6
buyuk = buyuk_harf(metin) // "LORDEX"
kucuk = kucuk_harf("MERHABA") // "merhaba"
4. Boolean Değerler
Mantıksal doğru/yanlış değerleridir:
dogru_deger = evet
yanlis_deger = hayir
Kullanım:
aktif = evet
eger (aktif) {
yaz("Sistem aktif")
}
tamamlandi = hayir
iken (degil tamamlandi) {
yaz("İşlem devam ediyor...")
tamamlandi = evet
}
evet= true (doğru)hayir= false (yanlış)ve= and (ve)veya= or (veya)degil= not (değil)
5. Diziler (Arrays)
Sıralı veri koleksiyonlarıdır:
sayilar = [1, 2, 3, 4, 5]
isimler = ["Ali", "Ayşe", "Mehmet"]
karisik = [1, "iki", 3.14, evet]
bos_dizi = []
Dizi İndeksleme:
meyveler = ["Elma", "Armut", "Muz"]
ilk = meyveler[0] // "Elma"
ikinci = meyveler[1] // "Armut"
son = meyveler[2] // "Muz"
Dizi İşlemleri:
liste = [1, 2, 3]
// Eleman ekleme
ekle(liste, 4) // [1, 2, 3, 4]
// Dizi uzunluğu
uzunluk(liste) // 4
// Elemanı silme
sil(liste, 1) // [1, 3, 4] (indeks 1 silindi)
İç İçe Diziler:
matris = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
eleman = matris[1][2] // 6
- Diziler 0'dan başlar (ilk eleman indeks 0'dadır)
- Geçersiz indekse erişim hata verir
- Negatif indeksler desteklenmez (Alpha sürümünde)
6. Sözlükler (Dictionaries)
Anahtar-değer çiftleri içeren veri yapılarıdır:
kisi = {
"ad": "Ahmet",
"soyad": "Yılmaz",
"yas": 30,
"sehir": "İstanbul"
}
Sözlük Erişimi:
isim = kisi["ad"] // "Ahmet"
yas = kisi["yas"] // 30
Sözlük Güncelleme:
// Var olan değeri değiştir
kisi["yas"] = 31
// Yeni anahtar-değer ekle
kisi["meslek"] = "Mühendis"
İç İçe Sözlükler:
ogrenci = {
"ad": "Zeynep",
"notlar": {
"matematik": 90,
"fizik": 85,
"kimya": 88
},
"iletisim": {
"email": "zeynep@example.com",
"telefon": "555-1234"
}
}
mat_notu = ogrenci["notlar"]["matematik"] // 90
Tip Kontrol ve Dönüşüm
Tip Kontrolü
Bir değişkenin tipini öğrenmek için tur() fonksiyonunu kullanın:
x = 42
y = "metin"
z = [1, 2, 3]
yaz(tur(x)) // "int"
yaz(tur(y)) // "string"
yaz(tur(z)) // "array"
Tip Dönüşümü
Değişkenleri farklı tiplere dönüştürebilirsiniz:
// String'den sayıya
metin_sayi = "42"
sayi = int(metin_sayi) // 42
ondalik = float("3.14") // 3.14
// Sayıdan string'e
sayi = 100
metin = "" + sayi // "100"
// String birleştirme
yas = 25
mesaj = "Yaşım " + yas // Otomatik dönüşüm
oku() fonksiyonu her zaman string döndürür. Sayısal işlemler için mutlaka int() veya float() ile dönüştürün.
Değişken Kapsamı (Scope)
Global Değişkenler
Fonksiyon dışında tanımlanan değişkenler globaldir:
global_degisken = "Global"
fonksiyon test() {
yaz(global_degisken) // Erişilebilir
}
Lokal Değişkenler
Fonksiyon içinde tanımlanan değişkenler lokaldır:
fonksiyon test() {
lokal_degisken = "Lokal"
yaz(lokal_degisken) // OK
}
test()
// yaz(lokal_degisken) // HATA! Erişilemez
En İyi Uygulamalar
✅ İyi Pratikler
// Anlamlı isimler kullan
kullanici_adi = "ahmet"
toplam_fiyat = 100.50
// Sabitleri büyük harfle yaz
PI = 3.14159
MAX_DENEME = 3
// İlgili verileri grupla
ogrenci = {
"ad": "Ali",
"not": 85
}
❌ Kötü Pratikler
// Anlamsız isimler
x = "ahmet"
y = 100.50
// Türkçe-İngilizce karışık
firstName = "Ahmet" // Tam Türkçe kullan: isim
// Anahtar kelimelere benzer isimler
eger_x = 10 // Karışıklığa neden olabilir
Özel Değerler
null (yok)
Değer bulunmadığını gösterir:
sonuc = yok // null değer
eger (sonuc == yok) {
yaz("Sonuç bulunamadı")
}
undefined (tanımsız)
Tanımlanmamış değişkenlerin durumudur:
// x tanımlanmamış
eger (tur(x) == "undefined") {
yaz("x tanımlanmamış")
}
Özet
| Tip | Örnek | Kullanım |
|---|---|---|
| Integer | 42, -10 | Tam sayılar |
| Float | 3.14, -0.5 | Ondalıklı sayılar |
| String | "Merhaba", 'Dünya' | Metinler |
| Boolean | evet, hayir | Mantıksal değerler |
| Array | [1, 2, 3] | Listeler |
| Dictionary | {"anahtar": "değer"} | Anahtar-değer çiftleri |
Sonraki Adımlar
- Operatörler - Matematiksel ve mantıksal işlemler
- Kontrol Yapıları - if-else, döngüler
- Fonksiyonlar - Fonksiyon tanımlama ve kullanma
Farklı veri tiplerini kullanarak basit programlar yazın. En iyi öğrenme yöntemi pratiktir!