- 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ı.
146 lines
2.9 KiB
Markdown
146 lines
2.9 KiB
Markdown
---
|
|
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
|
|
```
|