--- 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ış ```