Ana içeriğe geç

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
İpucu

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ü
Dikkat

Ç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
}
Boolean Anahtar Kelimeleri
  • 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
Dizi İndeksleri
  • 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
İpucu

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ÖrnekKullanım
Integer42, -10Tam sayılar
Float3.14, -0.5Ondalıklı sayılar
String"Merhaba", 'Dünya'Metinler
Booleanevet, hayirMantıksal değerler
Array[1, 2, 3]Listeler
Dictionary{"anahtar": "değer"}Anahtar-değer çiftleri

Sonraki Adımlar

Pratik Yapın

Farklı veri tiplerini kullanarak basit programlar yazın. En iyi öğrenme yöntemi pratiktir!