Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur
- 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ı.
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
---
|
||||
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ış
|
||||
```
|
||||
Reference in New Issue
Block a user