Ana içeriğe geç

Operatörler

Operatörler, değişkenler ve değerler üzerinde işlemler yapmanızı sağlayan özel sembollerdir. Lordex, matematiksel, karşılaştırma, mantıksal ve atama operatörlerini destekler.

Aritmetik Operatörler

Matematiksel hesaplamalar için kullanılır.

Temel Operatörler

OperatörİşlemÖrnekSonuç
+Toplama5 + 38
-Çıkarma5 - 32
*Çarpma5 * 315
/Bölme10 / 25
%Mod (Kalan)10 % 31

Örnekler

// Temel işlemler
toplam = 10 + 5 // 15
fark = 10 - 5 // 5
carpim = 10 * 5 // 50
bolum = 10 / 5 // 2
kalan = 10 % 3 // 1

yaz("Toplam: " + toplam)
yaz("Fark: " + fark)
yaz("Çarpım: " + carpim)
yaz("Bölüm: " + bolum)
yaz("Kalan: " + kalan)

İşlem Önceliği

Matematikteki gibi, çarpma ve bölme toplama ve çıkarmadan önce gelir:

sonuc1 = 2 + 3 * 4        // 14 (önce 3*4, sonra +2)
sonuc2 = (2 + 3) * 4 // 20 (parantez öncelikli)

yaz(sonuc1) // 14
yaz(sonuc2) // 20

Öncelik Sırası:

  1. Parantez ()
  2. Çarpma *, Bölme /, Mod %
  3. Toplama +, Çıkarma -
İpucu

Karmaşık işlemlerde parantez kullanarak kodunuzu daha okunabilir yapın.

Sıfıra Bölme

x = 10
y = 0

eger (y != 0) {
sonuc = x / y
yaz("Sonuç: " + sonuc)
} degilse {
yaz("HATA: Sıfıra bölme yapılamaz!")
}
Dikkat

Sıfıra bölme runtime hatası verir. Bölme işlemlerinde her zaman kontrol yapın.

Ondalıklı Sayılarla İşlemler

a = 10
b = 3

tam_bolum = a / b // 3.333...
kalan = a % b // 1

// Float dönüşümü
c = float(a) / float(b) // 3.333...

Karşılaştırma Operatörleri

İki değeri karşılaştırır ve boolean sonuç döner.

OperatörAnlamıÖrnekSonuç
==Eşit mi?5 == 5evet
!=Eşit değil mi?5 != 3evet
>Büyük mü?5 > 3evet
<Küçük mü?5 < 3hayir
>=Büyük veya eşit mi?5 >= 5evet
<=Küçük veya eşit mi?3 <= 5evet

Örnekler

x = 10
y = 20

yaz(x == y) // hayir (false)
yaz(x != y) // evet (true)
yaz(x > y) // hayir (false)
yaz(x < y) // evet (true)
yaz(x >= 10) // evet (true)
yaz(y <= 20) // evet (true)

Koşullu İfadelerde Kullanım

yas = 18

eger (yas >= 18) {
yaz("Reşitsiniz")
} degilse {
yaz("Reşit değilsiniz")
}

// Çoklu karşılaştırma
puan = 85

eger (puan >= 90) {
yaz("Notunuz: AA")
} degilse_eger (puan >= 80) {
yaz("Notunuz: BA")
} degilse_eger (puan >= 70) {
yaz("Notunuz: BB")
} degilse {
yaz("Notunuz: Geçer")
}

String Karşılaştırma

isim1 = "Ahmet"
isim2 = "Mehmet"

eger (isim1 == isim2) {
yaz("İsimler aynı")
} degilse {
yaz("İsimler farklı")
}
Tip Karşılaştırma

Lordex dinamik tipli olduğu için farklı tipleri karşılaştırırken dikkatli olun:

yaz(5 == "5")    // hayir (tip farklı)
yaz(5 == int("5")) // evet (tip aynı)

Mantıksal Operatörler

Boolean değerleri birleştirmek için kullanılır.

OperatörAnlamıÖrnek
veAND (ve)evet ve hayirhayir
veyaOR (veya)evet veya hayirevet
degilNOT (değil)degil evethayir

VE (AND) Operatörü

Her iki koşul da doğru olmalıdır:

yas = 25
ehliyet = evet

eger (yas >= 18 ve ehliyet) {
yaz("Araba kullanabilirsiniz")
} degilse {
yaz("Araba kullanamazsınız")
}

Doğruluk Tablosu:

ABA ve B
evetevetevet
evethayirhayir
hayirevethayir
hayirhayirhayir

VEYA (OR) Operatörü

En az bir koşul doğru olmalıdır:

hafta_sonu = evet
tatil = hayir

eger (hafta_sonu veya tatil) {
yaz("Dinlenme günü!")
} degilse {
yaz("İş günü")
}

Doğruluk Tablosu:

ABA veya B
evetevetevet
evethayirevet
hayirevetevet
hayirhayirhayir

DEĞİL (NOT) Operatörü

Boolean değeri tersine çevirir:

aktif = evet
yaz(degil aktif) // hayir

tamamlandi = hayir
eger (degil tamamlandi) {
yaz("Henüz tamamlanmadı")
}

Doğruluk Tablosu:

Adegil A
evethayir
hayirevet

Karmaşık Mantıksal İfadeler

yas = 25
gelir = 50000
kredi_notu = 700

// Kredi başvurusu kontrolü
eger (yas >= 18 ve gelir >= 30000 ve kredi_notu >= 600) {
yaz("Kredi başvurunuz onaylandı")
} degilse {
yaz("Kredi başvurunuz reddedildi")
}

// Üyelik kontrolü
vip = hayir
premium = evet

eger (vip veya premium) {
yaz("Özel içeriklere erişebilirsiniz")
}

Parantez Kullanımı

x = 5
y = 10
z = 15

// Parantez olmadan
sonuc1 = x > 3 ve y < 20 veya z == 15 // Karışık

// Parantezle daha anlaşılır
sonuc2 = (x > 3 ve y < 20) veya (z == 15)
En İyi Pratik

Karmaşık mantıksal ifadelerde parantez kullanarak okunabilirliği artırın.

Atama Operatörleri

Değişkenlere değer atamak için kullanılır.

Basit Atama

x = 10              // x'e 10 ata
isim = "Ahmet" // isim'e "Ahmet" ata
aktif = evet // aktif'e true ata

Çoklu Atama

// Aynı değeri birden fazla değişkene atama
a = b = c = 10
yaz(a) // 10
yaz(b) // 10
yaz(c) // 10

Birleşik Atama Operatörleri

Alpha sürümünde +=, -= gibi operatörler desteklenmeyebilir. Normal atama kullanın:

// Geleneksel yöntem (önerilen)
sayac = 0
sayac = sayac + 1 // sayac'ı 1 artır
sayac = sayac + 5 // sayac'a 5 ekle
sayac = sayac - 2 // sayac'tan 2 çıkar
İleriki Sürümler

İleriki sürümlerde +=, -=, *=, /= operatörleri eklenebilir.

String İşlemleri

String Birleştirme

isim = "Ahmet"
soyisim = "Yılmaz"
tam_isim = isim + " " + soyisim
yaz(tam_isim) // "Ahmet Yılmaz"

// Sayı ile string birleştirme
yas = 25
mesaj = "Yaşım " + yas
yaz(mesaj) // "Yaşım 25"

String Tekrarlama

Alpha sürümünde string tekrarlama için döngü kullanın:

karakter = "*"
sonuc = ""

sayac = 0
iken (sayac < 10) {
sonuc = sonuc + karakter
sayac = sayac + 1
}

yaz(sonuc) // **********

Operatör Önceliği (Genel)

En yüksekten en düşüğe:

  1. Parantez - ()
  2. Mantıksal NOT - degil
  3. Çarpma, Bölme, Mod - *, /, %
  4. Toplama, Çıkarma - +, -
  5. Karşılaştırma - <, >, <=, >=
  6. Eşitlik - ==, !=
  7. Mantıksal VE - ve
  8. Mantıksal VEYA - veya
  9. Atama - =

Örnek

sonuc = 2 + 3 * 4 > 10 ve 5 < 8
// Değerlendirme sırası:
// 1. 3 * 4 = 12
// 2. 2 + 12 = 14
// 3. 14 > 10 = evet
// 4. 5 < 8 = evet
// 5. evet ve evet = evet

Pratik Örnekler

Örnek 1: Sayı Kontrolü

sayi = int(oku("Bir sayı girin: "))

eger (sayi > 0) {
yaz("Pozitif sayı")
} degilse_eger (sayi < 0) {
yaz("Negatif sayı")
} degilse {
yaz("Sıfır")
}

// Çift mi tek mi?
eger (sayi % 2 == 0) {
yaz("Çift sayı")
} degilse {
yaz("Tek sayı")
}

Örnek 2: Aralık Kontrolü

puan = 75

// Puan 0-100 arasında mı?
eger (puan >= 0 ve puan <= 100) {
eger (puan >= 50) {
yaz("Geçtiniz")
} degilse {
yaz("Kaldınız")
}
} degilse {
yaz("Geçersiz puan!")
}

Örnek 3: Hesap Makinesi

yaz("Birinci sayı:")
sayi1 = float(oku())

yaz("İşlem (+, -, *, /):")
islem = oku()

yaz("İkinci sayı:")
sayi2 = float(oku())

eger (islem == "+") {
sonuc = sayi1 + sayi2
} degilse_eger (islem == "-") {
sonuc = sayi1 - sayi2
} degilse_eger (islem == "*") {
sonuc = sayi1 * sayi2
} degilse_eger (islem == "/") {
eger (sayi2 != 0) {
sonuc = sayi1 / sayi2
} degilse {
yaz("Hata: Sıfıra bölme!")
sonuc = 0
}
} degilse {
yaz("Geçersiz işlem!")
sonuc = 0
}

yaz("Sonuç: " + sonuc)

Yaygın Hatalar

❌ Hata 1: Atama ile Karşılaştırma Karışıklığı

x = 5
eger (x = 10) { // YANLIŞ! = atama operatörü
yaz("x 10'a eşit")
}

Doğrusu:

x = 5
eger (x == 10) { // DOĞRU! == karşılaştırma operatörü
yaz("x 10'a eşit")
}

❌ Hata 2: String ve Sayı Karışıklığı

yas = "25"
yas_iki_kat = yas * 2 // HATA! String çarpılamaz

Doğrusu:

yas = int("25")
yas_iki_kat = yas * 2 // 50

❌ Hata 3: Yanlış Operatör Önceliği

sonuc = 10 + 5 * 2  // 20 mi 30 mu?
// Sonuç: 20 (5*2=10, sonra +10)

Daha Açık:

sonuc = (10 + 5) * 2  // 30 (parantez öncelikli)

Özet Tablo

KategoriOperatörlerKullanım
Aritmetik+, -, *, /, %Matematiksel işlemler
Karşılaştırma==, !=, >, <, >=, <=Değer karşılaştırma
Mantıksalve, veya, degilBoolean işlemler
Atama=Değer atama

Sonraki Adımlar

Pratik Yapın

Operatörleri kullanarak basit hesap makinesi veya sayı tahmin oyunu gibi programlar yazın!