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,145 @@
|
||||
---
|
||||
baslik: Sayılar ve aritmetik
|
||||
bolum: Temeller
|
||||
ozet: Dört işlem, tam bölme, kalan, üs ve işlem önceliği
|
||||
---
|
||||
|
||||
Bilgisayarın en iyi yaptığı iş hesaptır. Bu derste KabaLang'in aritmetik işleçlerini ve sık yapılan hesapları göreceksin.
|
||||
|
||||
## Aritmetik işleçler
|
||||
|
||||
| İşleç | Anlamı | Örnek | Sonuç |
|
||||
|---|---|---|---|
|
||||
| `+` | toplama | `17 + 5` | `22` |
|
||||
| `-` | çıkarma | `17 - 5` | `12` |
|
||||
| `*` | çarpma | `17 * 5` | `85` |
|
||||
| `/` | bölme | `17 / 5` | `3.4` |
|
||||
| `//` | tam bölme | `17 // 5` | `3` |
|
||||
| `%` | kalan | `17 % 5` | `2` |
|
||||
| `**` | üs alma | `2 ** 10` | `1024` |
|
||||
|
||||
```kbl
|
||||
a = 17
|
||||
b = 5
|
||||
yazdir(a + b, a - b, a * b)
|
||||
yazdir(a / b, a // b, a % b)
|
||||
yazdir(2 ** 10)
|
||||
```
|
||||
```cikti
|
||||
22 12 85
|
||||
3.4 3 2
|
||||
1024
|
||||
```
|
||||
|
||||
## / her zaman ondalık verir
|
||||
|
||||
`/` bölmesinin sonucu, sayılar tam bölünse bile `ondalik`tır. Küsuratsız tam sayı istiyorsan `//` kullan.
|
||||
|
||||
```kbl
|
||||
yazdir(10 / 2)
|
||||
yazdir(10 // 2)
|
||||
yazdir(7 // 2)
|
||||
```
|
||||
```cikti
|
||||
5.0
|
||||
5
|
||||
3
|
||||
```
|
||||
|
||||
## Kalan işleci: %
|
||||
|
||||
`%` bölümden kalanı verir. Bir sayının çift mi tek mi olduğunu, bir sayıya bölünüp bölünmediğini anlamak için kullanılır.
|
||||
|
||||
```kbl
|
||||
yazdir(14 % 2) # 0 ise çift
|
||||
yazdir(15 % 2) # 1 ise tek
|
||||
yazdir(2026 % 4) # 4'e tam bölünmüyor
|
||||
```
|
||||
```cikti
|
||||
0
|
||||
1
|
||||
2
|
||||
```
|
||||
|
||||
## Gerçek bir hesap: saniyeyi saate çevirmek
|
||||
|
||||
`//` ve `%` birlikte çok işe yarar.
|
||||
|
||||
```kbl
|
||||
toplam_saniye = 7384
|
||||
saat = toplam_saniye // 3600
|
||||
dakika = (toplam_saniye % 3600) // 60
|
||||
saniye = toplam_saniye % 60
|
||||
yazdir(saat, "saat", dakika, "dakika", saniye, "saniye")
|
||||
```
|
||||
```cikti
|
||||
2 saat 3 dakika 4 saniye
|
||||
```
|
||||
|
||||
## İşlem önceliği
|
||||
|
||||
Matematikteki gibi: önce `**`, sonra `*` `/` `//` `%`, en son `+` `-`. Parantez önceliği değiştirir.
|
||||
|
||||
```kbl
|
||||
yazdir(2 + 3 * 4)
|
||||
yazdir((2 + 3) * 4)
|
||||
yazdir(2 * 3 ** 2)
|
||||
```
|
||||
```cikti
|
||||
14
|
||||
20
|
||||
18
|
||||
```
|
||||
|
||||
> **İpucu:** Emin olmadığın her yerde parantez kullan. `(a + b) / 2` hem doğru çalışır hem kolay okunur.
|
||||
|
||||
## sayi ile ondalik birlikte
|
||||
|
||||
Bir işlemde biri `sayi` öteki `ondalik` ise sonuç `ondalik` olur.
|
||||
|
||||
```kbl
|
||||
adet = 3
|
||||
fiyat = 12.5
|
||||
yazdir(adet * fiyat)
|
||||
```
|
||||
```cikti
|
||||
37.5
|
||||
```
|
||||
|
||||
> **Dikkat:** Ondalık sayılar bilgisayarda yaklaşık tutulur. `0.1 + 0.2` tam `0.3` değil `0.30000000000000004` çıkar. Bu her dilde böyledir; para gibi değerleri ekrana yazarken basamak sayısını sınırlarsın (*Biçimlendirme* dersi).
|
||||
|
||||
```kbl
|
||||
yazdir(0.1 + 0.2)
|
||||
```
|
||||
```cikti
|
||||
0.30000000000000004
|
||||
```
|
||||
|
||||
## Alıştırma
|
||||
|
||||
```alistirma
|
||||
Bir sınıfta 29 öğrenci var ve 4 kişilik gruplar kurulacak. Kaç tam grup olacağını ve kaç öğrencinin açıkta kalacağını aynı satırda yazdır.
|
||||
%%%
|
||||
ogrenci = 29
|
||||
grup_buyuklugu = 4
|
||||
# buraya yaz
|
||||
%%%
|
||||
ogrenci = 29
|
||||
grup_buyuklugu = 4
|
||||
yazdir(ogrenci // grup_buyuklugu, ogrenci % grup_buyuklugu)
|
||||
%%%
|
||||
7 1
|
||||
```
|
||||
|
||||
```alistirma
|
||||
Fahrenhayt'ı Celsius'a çevir: `C = (F - 32) * 5 / 9`. `f` değişkeni 212 iken sonucu yazdır.
|
||||
%%%
|
||||
f = 212
|
||||
# buraya yaz
|
||||
%%%
|
||||
f = 212
|
||||
c = (f - 32) * 5 / 9
|
||||
yazdir(c)
|
||||
%%%
|
||||
100.0
|
||||
```
|
||||
Reference in New Issue
Block a user