Files
ornekler/dersler/06-sayilar-aritmetik.md
T

146 lines
2.9 KiB
Markdown
Raw Normal View History

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