- 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ı.
160 lines
3.2 KiB
Markdown
160 lines
3.2 KiB
Markdown
---
|
|
baslik: Mantık ve karşılaştırma
|
|
bolum: Temeller
|
|
ozet: dogru/yanlis, karşılaştırma işleçleri, ve/veya/degil ve işleçlerin özeti
|
|
---
|
|
|
|
Program karar verirken bir sorunun cevabına bakar: "puan 50'den büyük mü?", "kullanıcı adı doğru mu?". Bu soruların cevabı bir mantık değeridir: `dogru` ya da `yanlis`.
|
|
|
|
## Karşılaştırma işleçleri
|
|
|
|
| İşleç | Sorusu |
|
|
|---|---|
|
|
| `==` | eşit mi? |
|
|
| `!=` | farklı mı? |
|
|
| `<` | küçük mü? |
|
|
| `<=` | küçük ya da eşit mi? |
|
|
| `>` | büyük mü? |
|
|
| `>=` | büyük ya da eşit mi? |
|
|
|
|
```kbl
|
|
yazdir(7 > 3)
|
|
yazdir(7 == 3)
|
|
yazdir(7 != 3)
|
|
yazdir(5 <= 5)
|
|
```
|
|
```cikti
|
|
doğru
|
|
yanlış
|
|
doğru
|
|
doğru
|
|
```
|
|
|
|
> **Dikkat:** Eşitlik sorusu **iki** eşittir işaretiyle yazılır: `==`. Tek `=` atamadır, değeri değiştirir.
|
|
|
|
## Metinleri karşılaştırmak
|
|
|
|
Metinler harf harf karşılaştırılır; büyük/küçük harf fark eder.
|
|
|
|
```kbl
|
|
yazdir("elma" == "elma")
|
|
yazdir("elma" == "Elma")
|
|
yazdir("elma".kucult() == "Elma".kucult())
|
|
```
|
|
```cikti
|
|
doğru
|
|
yanlış
|
|
doğru
|
|
```
|
|
|
|
## Sonucu değişkende tutmak
|
|
|
|
Karşılaştırmanın sonucu bir değerdir; değişkene atayabilirsin.
|
|
|
|
```kbl
|
|
yas = 20
|
|
ehliyet_alabilir = yas >= 18
|
|
yazdir(ehliyet_alabilir)
|
|
```
|
|
```cikti
|
|
doğru
|
|
```
|
|
|
|
## ve, veya, degil
|
|
|
|
Birden çok koşulu birleştirmek için sözcük işleçleri kullanılır:
|
|
|
|
| İşleç | Ne zaman doğru? |
|
|
|---|---|
|
|
| `a ve b` | ikisi de doğruysa |
|
|
| `a veya b` | en az biri doğruysa |
|
|
| `degil a` | a yanlışsa |
|
|
|
|
```kbl
|
|
yas = 16
|
|
veli_izni = dogru
|
|
yazdir(yas >= 18 ve veli_izni)
|
|
yazdir(yas >= 18 veya veli_izni)
|
|
yazdir(degil veli_izni)
|
|
```
|
|
```cikti
|
|
yanlış
|
|
doğru
|
|
yanlış
|
|
```
|
|
|
|
> **Dikkat:** `&&`, `||`, `!` gibi simgeler KabaLang'de yoktur. Her zaman `ve`, `veya`, `degil` yaz.
|
|
|
|
## Aralık sorusu
|
|
|
|
Bir değerin iki sınır arasında olup olmadığını `ve` ile sorarsın.
|
|
|
|
```kbl
|
|
sicaklik = 22
|
|
yazdir(sicaklik >= 18 ve sicaklik <= 26)
|
|
```
|
|
```cikti
|
|
doğru
|
|
```
|
|
|
|
## Parantezle gruplamak
|
|
|
|
`ve`, `veya`'dan önce hesaplanır. Uzun koşullarda parantez kullanmak hem doğru sonucu garanti eder hem okumayı kolaylaştırır. Artık yıl kuralı buna güzel bir örnek: yıl 4'e bölünür ve 100'e bölünmez **ya da** 400'e bölünür.
|
|
|
|
```kbl
|
|
yil = 2024
|
|
artik = (yil % 4 == 0 ve yil % 100 != 0) veya yil % 400 == 0
|
|
yazdir(artik)
|
|
```
|
|
```cikti
|
|
doğru
|
|
```
|
|
|
|
## Tek satırda seçim
|
|
|
|
`A eger kosul degilse B` ifadesi, koşul doğruysa A'yı, değilse B'yi verir.
|
|
|
|
```kbl
|
|
n = 7
|
|
yazdir("çift" eger n % 2 == 0 degilse "tek")
|
|
```
|
|
```cikti
|
|
tek
|
|
```
|
|
|
|
## İşleçlerin özeti
|
|
|
|
| Tür | İşleçler |
|
|
|---|---|
|
|
| Aritmetik | `+` `-` `*` `/` `//` `%` `**` |
|
|
| Atama | `=` `+=` `-=` `*=` |
|
|
| Karşılaştırma | `==` `!=` `<` `<=` `>` `>=` |
|
|
| Mantık | `ve` `veya` `degil` |
|
|
|
|
## Alıştırma
|
|
|
|
```alistirma
|
|
Bir bilet indirimi şöyle: yaşı 12'den küçük **veya** 65'ten büyük olanlar indirim alır. `yas` için bu koşulun sonucunu yazdır.
|
|
%%%
|
|
yas = 70
|
|
# buraya yaz
|
|
%%%
|
|
yas = 70
|
|
yazdir(yas < 12 veya yas > 65)
|
|
%%%
|
|
doğru
|
|
```
|
|
|
|
```alistirma
|
|
Bir şifre geçerli sayılmak için en az 8 karakter olmalı **ve** içinde boşluk bulunmamalı. `sifre` için `gecerli` değişkenini hesaplayıp yazdır.
|
|
%%%
|
|
sifre = "kirmizi kalem"
|
|
# buraya yaz
|
|
%%%
|
|
sifre = "kirmizi kalem"
|
|
gecerli = sifre.uzunluk() >= 8 ve degil sifre.icerir(" ")
|
|
yazdir(gecerli)
|
|
%%%
|
|
yanlış
|
|
```
|