112 lines
2.7 KiB
Markdown
112 lines
2.7 KiB
Markdown
---
|
|||
|
|
baslik: Veri türleri
|
||
|
|
bolum: Temeller
|
||
|
|
ozet: sayi, ondalik, metin, mantik ve tür belirtmek
|
||
|
|
---
|
||
|
|
|
||
|
|
Her değerin bir türü vardır. Tür, o değerle neler yapabileceğini belirler: sayılar toplanır, metinler birleştirilir, mantık değerleriyle karar verilir.
|
||
|
|
|
||
|
|
## Dört temel tür
|
||
|
|
|
||
|
|
| Tür | Ne tutar | Örnek |
|
||
|
|
|---|---|---|
|
||
|
|
| `sayi` | tam sayı | `42`, `-7`, `85_000_000` |
|
||
|
|
| `ondalik` | küsuratlı sayı | `3.14`, `-0.5`, `1.0` |
|
||
|
|
| `metin` | yazı | `"Kars"`, `""` |
|
||
|
|
| `mantik` | doğru ya da yanlış | `dogru`, `yanlis` |
|
||
|
|
|
||
|
|
```kbl
|
||
|
|
il = "Kars" # metin
|
||
|
|
rakim = 1768 # sayi
|
||
|
|
sicaklik = -4.5 # ondalik
|
||
|
|
kar_yagiyor = dogru # mantik
|
||
|
|
yazdir(il, rakim, sicaklik, kar_yagiyor)
|
||
|
|
```
|
||
|
|
```cikti
|
||
|
|
Kars 1768 -4.5 doğru
|
||
|
|
```
|
||
|
|
|
||
|
|
Mantık değerleri kodda `dogru`/`yanlis` diye yazılır ama ekranda Türkçe harflerle `doğru`/`yanlış` görünür.
|
||
|
|
|
||
|
|
## sayi ve ondalik farklı türlerdir
|
||
|
|
|
||
|
|
Ondalık sayılarda virgül değil **nokta** kullanılır. `3` bir `sayi`, `3.0` ise bir `ondalik`tır.
|
||
|
|
|
||
|
|
```kbl
|
||
|
|
a = 3
|
||
|
|
b = 3.0
|
||
|
|
yazdir(a)
|
||
|
|
yazdir(b)
|
||
|
|
```
|
||
|
|
```cikti
|
||
|
|
3
|
||
|
|
3.0
|
||
|
|
```
|
||
|
|
|
||
|
|
Uzun sayılarda basamakları `_` ile ayırabilirsin; değer değişmez, okumak kolaylaşır.
|
||
|
|
|
||
|
|
```kbl
|
||
|
|
nufus = 85_000_000
|
||
|
|
yazdir(nufus)
|
||
|
|
```
|
||
|
|
```cikti
|
||
|
|
85000000
|
||
|
|
```
|
||
|
|
|
||
|
|
## Metinler
|
||
|
|
|
||
|
|
Metin, tırnak içindeki yazıdır. Çift ya da tek tırnak kullanabilirsin. Hiç karakter içermeyen `""` boş metindir.
|
||
|
|
|
||
|
|
```kbl
|
||
|
|
selam = "Merhaba"
|
||
|
|
isim = 'Zeynep'
|
||
|
|
yazdir(selam + " " + isim)
|
||
|
|
```
|
||
|
|
```cikti
|
||
|
|
Merhaba Zeynep
|
||
|
|
```
|
||
|
|
|
||
|
|
> **Dikkat:** `"42"` bir sayı değil, iki karakterlik bir metindir. `"42" + 1` derlenmez. Metinle sayı arasında geçişi *Tür dönüşümleri* dersinde göreceksin.
|
||
|
|
|
||
|
|
## Türü açıkça yazmak
|
||
|
|
|
||
|
|
Türü yazmak zorunlu değil ama istersen `ad: tur = değer` biçiminde yazabilirsin. Derleyici o zaman değerin o türde olduğunu denetler.
|
||
|
|
|
||
|
|
```kbl
|
||
|
|
fiyat: ondalik = 49.90
|
||
|
|
stok: sayi = 12
|
||
|
|
urun: metin = "Defter"
|
||
|
|
yazdir(urun, stok, fiyat)
|
||
|
|
```
|
||
|
|
```cikti
|
||
|
|
Defter 12 49.9
|
||
|
|
```
|
||
|
|
|
||
|
|
`49.90` ekranda `49.9` olarak görünür; sondaki sıfır sayının değerini değiştirmez. Biçimini kendin belirlemeyi *Biçimlendirme* dersinde öğreneceksin.
|
||
|
|
|
||
|
|
## Türler karşılaştırılabilir mi?
|
||
|
|
|
||
|
|
Farklı türden iki değeri karşılaştırmak anlamsızdır ve derleyici buna izin vermez:
|
||
|
|
|
||
|
|
```kbl goster
|
||
|
|
yazdir("5" == 5) # hata: 'metin' ile 'sayi' karşılaştırılamaz
|
||
|
|
```
|
||
|
|
|
||
|
|
Bu bir kolaylıktır: yanlışlıkla metni sayıyla karşılaştırdığın bir hatayı program çalışmadan yakalarsın.
|
||
|
|
|
||
|
|
## Alıştırma
|
||
|
|
|
||
|
|
```alistirma
|
||
|
|
Bir kitap için dört değişken oluştur: `ad` (metin, "Çalıkuşu"), `sayfa` (sayi, 544), `puan` (ondalik, 4.8), `okundu` (mantik, dogru). Dördünü tek bir `yazdir` ile sırayla yazdır.
|
||
|
|
%%%
|
||
|
|
# buraya yaz
|
||
|
|
%%%
|
||
|
|
ad = "Çalıkuşu"
|
||
|
|
sayfa = 544
|
||
|
|
puan = 4.8
|
||
|
|
okundu = dogru
|
||
|
|
yazdir(ad, sayfa, puan, okundu)
|
||
|
|
%%%
|
||
|
|
Çalıkuşu 544 4.8 doğru
|
||
|
|
```
|