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 | Örnek | Sonuç |
|---|---|---|---|
+ | Toplama | 5 + 3 | 8 |
- | Çıkarma | 5 - 3 | 2 |
* | Çarpma | 5 * 3 | 15 |
/ | Bölme | 10 / 2 | 5 |
% | Mod (Kalan) | 10 % 3 | 1 |
Ö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ı:
- Parantez
() - Çarpma
*, Bölme/, Mod% - Toplama
+, Çıkarma-
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!")
}
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ör | Anlamı | Örnek | Sonuç |
|---|---|---|---|
== | Eşit mi? | 5 == 5 | evet |
!= | Eşit değil mi? | 5 != 3 | evet |
> | Büyük mü? | 5 > 3 | evet |
< | Küçük mü? | 5 < 3 | hayir |
>= | Büyük veya eşit mi? | 5 >= 5 | evet |
<= | Küçük veya eşit mi? | 3 <= 5 | evet |
Ö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ı")
}
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ör | Anlamı | Örnek |
|---|---|---|
ve | AND (ve) | evet ve hayir → hayir |
veya | OR (veya) | evet veya hayir → evet |
degil | NOT (değil) | degil evet → hayir |
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:
| A | B | A ve B |
|---|---|---|
| evet | evet | evet |
| evet | hayir | hayir |
| hayir | evet | hayir |
| hayir | hayir | hayir |
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:
| A | B | A veya B |
|---|---|---|
| evet | evet | evet |
| evet | hayir | evet |
| hayir | evet | evet |
| hayir | hayir | hayir |
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:
| A | degil A |
|---|---|
| evet | hayir |
| hayir | evet |
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)
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ü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:
- Parantez -
() - Mantıksal NOT -
degil - Çarpma, Bölme, Mod -
*,/,% - Toplama, Çıkarma -
+,- - Karşılaştırma -
<,>,<=,>= - Eşitlik -
==,!= - Mantıksal VE -
ve - Mantıksal VEYA -
veya - 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
| Kategori | Operatörler | Kullanım |
|---|---|---|
| Aritmetik | +, -, *, /, % | Matematiksel işlemler |
| Karşılaştırma | ==, !=, >, <, >=, <= | Değer karşılaştırma |
| Mantıksal | ve, veya, degil | Boolean işlemler |
| Atama | = | Değer atama |
Sonraki Adımlar
- Kontrol Yapıları - if-else ve döngüler
- Fonksiyonlar - Fonksiyon tanımlama
- Diziler ve Sözlükler - Veri yapıları
Operatörleri kullanarak basit hesap makinesi veya sayı tahmin oyunu gibi programlar yazın!