Programlamanın
Temel Kavramları
Programlamada kullanılan işlem ve semboller, operatörler, değişkenler ve veri türleri — örnekler Python ile.
Ünite
Bilgisayar = Donanım + Yazılım
- Donanım: bilgisayarın duyu organlarıyla algılanabilen fiziksel parçaları.
- Yazılım: donanımın çalışmasını ve bilgisayarın belli bir amaç için işlevsel kullanılmasını sağlayan, kodlarla yazılmış programları kapsayan sistemler.
- Bu iki unsur birbirini tamamlar.
Görsel 3.1 · Yazılımın kapsamı
İyi bir program nasıl olmalı?
Doğru
Güvenilir
Kullanışlı
Masrafsız ve basit
Amaca göre programlama dili seçilir ve program, o dilin kurallarına göre yazılır. Diller arasında küçük farklar olsa da ortak kavramlar tüm dillerin temelidir:
Veri üzerinde matematiksel işlemler yapmayı, değişkenlere değer atamayı sağlar.
Veriyi saklayan, yöneten ve değiştirebilen isim alanları: a, b, sayi1, sayi_2…
Programın akış yönünü belirler; tekrar eden işlemlerde fazla satır yazmayı önler.
Matematikteki sembol ≠ programlamadaki sembol
“x” değişken adı olarak kullanılabildiği için çarpmada kod karmaşası yaratır; bu yüzden “*” tercih edilir.
| Sembol | Kullanım |
|---|---|
| + | Matematikte de programlamada da toplama |
| < > | Küçüklük/büyüklük karşılaştırması; bazı dillerde <stdio.h> gibi kütüphane eklemek |
| / | Bölme |
| // /*…*/ | Bazı dillerde açıklama satırı |
| # | Python’da açıklama satırı |
Operatör nedir?
Tek başına bir anlam ifade etmeyen, programlama dillerinin çalışmasına katkıda bulunan özel karakter ya da karakter topluluğuna operatör denir.
Değer atamada, matematiksel ve mantıksal işlemlerde, karşılaştırmalarda kullanılır. En yaygın üç grup:
Tanımlanan değişkene değer aktarma işlemidir. = operatörü kullanılır; eşitliğin sağındaki değer soldaki isme aktarılır.
a = 2 # a artık 2 değerini temsil eder
Program kodu ve ekran çıktısı olan örneklerde Python kullanılmıştır.
Temel matematik işlemleri
| Operatör | Tanım | Örnek | Açıklama |
|---|---|---|---|
| + | Toplama | 10 + 5 | 15 |
| - | Çıkarma | 10 - 5 | 5 |
| * | Çarpma | 10 * 5 | 10 × 5 = 50 |
| / | Bölme | 10 / 5 | Bölüm hanesindeki sonuç = 2 |
| ** veya ^ | Üs alma | 10**5 | 10 × 10 × 10 × 10 × 10 = 100000 |
| % | Mod alma | 10 % 5 | Kalan hanesindeki sonuç = 0 |
Tablo 3.1 · Aritmetiksel operatörlerin gösterimi
Tablo 3.1’deki operatör sırasına göre a = 10 ve b = 5 değişkenleriyle işlemleri yapan programın kodunu ve ekran çıktısını yazınız.
Mod alma: bölmede kalan hanesindeki değer.
Üs alma: 2**4 → 2·2·2·2 = 16
print(veri): ayraç içindeki veriyi ekrana yazdırır.
a=10; b=5; print(a+b) print(a-b) print(a*b) print(b/a) print(a**b) print(a%2) print(b%3)
15 5 50 0.5 100000 0 2
Neden * ve **?
Matematikte çarpma için “x” veya “.” kullanılır. Programlamada bu karakterler değişken adında veya işlem içinde kullanıldığından karışıklık olmaması için çarpmayı “*” temsil eder.
Üs alma: ** mı ^ mı?
Birçok dilde üs alma için ** kullanılır; bazı dillerde ^ da kullanılır.
Ancak mantıksal operatörlerden Özel Veya (XOR)’un sembolü de ^ olduğundan, karmaşıklık yaratmaması için ** daha yaygındır.
print(2**3) # 8 → üs alma print(2^3) # 1 → Python'da XOR!
Hangi işlem önce yapılır?
Problemin doğru sonuca ulaşması için işlemler belli bir sırayla yapılır; buna işlem önceliği denir. Matematikte olduğu gibi programlamada da öncelik aynıdır.
print(2 + 3 * 4) # 14 print((2 + 3) * 4) # 20 print(2 * 3 ** 2) # 18
Sonuç: True ya da False
İki değeri karşılaştırır; cevap “Doğru” ise True, “Yanlış” ise False döner. Bu değerler boolean (mantıksal) veri tipidir.
| Operatör | Tanım | Örnek | Açıklama |
|---|---|---|---|
| == | Eşittir | a == b | a ile b eşit mi? |
| != | Eşit değildir | a != b | a ile b eşit değil mi? |
| > | Büyüktür | a > b | a, b’den büyük mü? |
| < | Küçüktür | a < b | a, b’den küçük mü? |
| >= | Büyük eşittir | a >= b | a, b’den büyük veya eşit mi? |
| <= | Küçük eşittir | a <= b | a, b’den küçük veya eşit mi? |
Tablo 3.2 · Karşılaştırma operatörlerinin gösterimi
Tablo 3.2’deki operatör sırasına göre a = 4 ve b = 8 değişkenleriyle işlemleri yapan programın kodunu ve ekran çıktısını yazınız.
Kitapta a! = b yazılmış; Python’da operatör boşluksuz yazılmalıdır: a != b
a = 4; b = 8; print(a == b) print(a != b) print(a > b) print(a < b) print(a >= b)
False True False True False
Birden fazla koşulu birleştirmek
İki veya daha fazla verinin kıyaslandığı durumlarda kullanılır; sonuç yine boolean tipindedir.
| Operatör | Tanım | Örnek | Açıklama |
|---|---|---|---|
| && (and) | Ve işlemi | a < 15 && b == 20 | İki şart da sağlanırsa sonuç true |
| || (or) | Veya işlemi | a > 15 || b == 20 | Şartlardan birinin sağlanması yeterli |
| ^ (xor) | Özel Veya | a == 10 ^ b > 25 | Şartların sonuçları farklıysa true |
| ! (not) | Değil işlemi | !(a < b) | Şart sonucunun tersini alır |
Tablo 3.3 · Mantıksal operatörlerin gösterimi — Python’da and, or, ^, not kullanılır.
Tablo 3.3’teki operatör sırasına göre a = 10 ve b = 20 değişkenleriyle işlemleri yapan programın kodunu ve ekran çıktısını yazınız.
Adım adım
True and True → True
True or True → True
True ^ False → True
not True → False
a = 10 b = 20 print(a < 15 and b == 20) print(a < 15 or b == 20) print((a == 10) ^ (b > 20)) print(not(a < b))
True True True False
Değişken = hafızadaki etiketli kutu
- Programdaki veriler değişkenlerle isimlendirilerek kullanılır.
- Bilgisayar, verinin türüne göre hafızada alan ve bu alanı gösteren adres oluşturur.
- Değişken adıyla adresteki veriye erişilir, veri atanır, okunur ve değiştirilir.
- Kutunun büyüklüğü, veri türüne göre değişir.
- Kutulara kısa ve kolay hatırlanan isimler verilir.
ad = "Ayşe" no = 100
sayi_1, sayi_2, toplam değişkenlerini tanımlayınız; sayi_1’e 10, sayi_2’ye 20 atayınız; iki değişkeni toplayıp sonucu toplam’a atayan formülü yazınız. Değerleri kutucuklarla gösteriniz.
sayi_1, sayi_2, toplam — kutular oluşturulur, henüz boş.sayi_1 = 10, sayi_2 = 20 — toplam’a veri girilmediği için değeri “0” kabul edilir.toplam = sayi_1 + sayi_2 — işlem yapılır, toplam kutusuna 30 yazılır.Ortalamayı kutularla göster
- İki sayıyı değişken olarak tanımlayan,
- iki sayıya değer ataması yapan,
- ortalamasını bulup
ortalamadeğişkenine atayan
programın hafızadaki tutulma alanlarını kutucuklarla çiziniz.
1) Değişken tanımı · 2) Değer ataması · 3) Ortalama formülü
sayi_1 = 10 sayi_2 = 20 ortalama = (sayi_1 + sayi_2) / 2 print(ortalama)
Değişkene isim verirken…
Dilin komutları ve ayrılmış kelimeler (for, if, else, while, and, or) isim olarak kullanılmamalı.
Boşluk veya sayı ile başlayamaz; _ ve $ ile başlayabilir. İlk karakter dışında sayı olabilir.
Bazı diller harf duyarlıdır: isim ile İsim aynı değişken değildir.
Türkçe karakter (ç, ğ, ı, İ, ö, ş, ü) kullanılmaması daha uygundur.
Özel karakter ve boşluk kullanılmaz; yalnızca _ ve $.
Metinsel veri çift "…" veya tek '…' tırnak içinde yazılır. İsimler anlamlı olmalı.
- Programlama dillerinde basit farklılıklar görülse de kullanılan işlem ve semboller benzerdir.
- Ortak kavramlar olan operatörler, değişkenler ve döngü koşulları ile program akışına yön verilir. Bu kavramlar programlama dillerinin temelidir.
Veri ve tür
- Bilgisayar işlemlerinde kullanılan en temel yapıya veri denir.
- Veri, türü belirtilerek değişkenle birlikte tanımlanır: sayısal → sayısal tür, metinsel → metinsel tür.
- İşlemlerin sınırı ve hafızada kaplanacak alan türe göre belirlenir.
- İlkel veri türleri dillerde yerleşik olarak bulunur.
int sayi = 10; string ders = "Programlamaya Giriş ve Algoritmalar";
Türler uyumlu olmalı!
3 elma ile 3 armut toplanamaz; aynı şekilde metinsel veri ile sayısal veri toplanamaz. Uyumsuzlukta program hata verir ve çalışmaz.
print("Merhaba" + 5) # TypeError!Doğru tür = daha iyi performans
Kodun sadeliği, anlaşılırlığı, hafızada kapladığı alan ve çalışma süresi performansı etkiler. Basit işlemler için boyutu küçük tür seçilirse program daha az yer kaplar, performans yükselir.
Tür adı yazmaya gerek yoktur: tırnak içindeki veri metinsel, tırnaksız sayı sayısal kabul edilir. (Bazı dillerde string yerine str kullanılır.)
Aynı “10”, iki farklı tür
a = 10 # sayısal b = "10" # metinsel print(a * a) # karesi print(b * 5) # 5 kez yan yana
100 1010101010
Sayısal ve metinsel veri türü kullanılarak oluşturulan programın kodunu ve ekran çıktısını yazınız.
a, b, c
isim
a = 5; b = 10; c = a*b; isim = "Merhaba" print(c) print(isim)
50 Merhaba
- Bilgisayarda kullanılan en temel bilgiye veri denir; kullanım alanına göre farklı veri türleri vardır.
- Doğru seçilen veri türleri programın güvenilirliğini ve performans verimliliğini artırır; işlemler sonuca daha hızlı ulaşır.
- Tanımlama ve kullanım şekli, kullanılan programlama diline göre değişebilir.
Programın amacına göre dil ve gereken veri türleri değişir: sayısal işlemde veri sayıyı, metinsel işlemde metni, mantıksal sorguda doğru/yanlış değerini temsil etmelidir.
sayi_1 = 20, sayi_2 = 30 toplamını toplam’a aktarıp yazdıran; kelime = "Merhaba"’yı yazdıran; iki sayının eşit olmadığını kontrol edip sonucu (True/False) yazdıran programı yazınız.
sayi_1 = 20; sayi_2 = 30; toplam = sayi_1+sayi_2; kelime = "Merhaba"; esit_degil = (sayi_1!=sayi_2) print(toplam) print(kelime) print(esit_degil)
50 Merhaba True
Hafızanın yapı taşları
- Bilgisayar ikilik sayı sistemiyle çalışır: bilginin varlığı 1, yokluğu 0.
- Her bir 1 veya 0’a bit denir — binary digit (ikili basamak) kısaltması.
- Veri türleri değişkenlerle eşleşince RAM’de kapasitelerine göre alan kaplar.
- 8 bit yan yana gelince en temel hafıza birimi byte oluşur; türlerin kapasiteleri byte cinsinden ifade edilir.
Görsel 3.4 · Bit görseli — örnek: 01000011
İlkel veri türleri ve kapasiteleri
🔢 Sayısal
🔤 Metinsel
🔘 Mantıksal
* Kitabın tablosunda long için “4 byte”, s. 101’deki açıklamada “8 byte” yazılıdır; yaygın kullanım 8 byte’tır.
Bölme yapacaksan ondalıklı düşün
Tür tanımına göre sonuç değişiyorsa tür seçimi önemlidir. Örneğin bölme işleminde sayıların tam bölünmeme ihtimali düşünülerek ondalıklı sayı türü seçilmelidir.
Farklı türler birlikte işleme girecekse birbirine dönüştürülmelidir; buna tür dönüştürme denir. Python’da input() ile alınan verinin önüne hedef tür adı yazılır.
yas = int(input("Yaşınız: ")) # metin → tam sayı
boy = float("1.75") # metin → ondalıklı
print(yas + 1, boy)Sayısal türleri tanıyalım
Basit, küçük kapasite gerektiren işlemler.
byte a = 10;
En yaygın tür; daha büyük verilerle çalışır.
int a = 100000;
Integer’dan daha fazla kapasite.
long a = 1000000;
Basit ondalıklı işlemler; noktadan sonra 6 karakter. Bazı dillerde sonuna f.
float a = 3.14f
Çoğu dilde , kod yazımında kullanıldığı için ondalıklı sayılarda . (nokta) kullanılır: 3.14
Python’da ondalıklı sayılar için ayrı tanımlama yapılmaz; ondalıklı veriler ve sonuçlar otomatik algılanır.
Yarıçapı 10 cm, pi sayısı 3.14 olan dairenin alanını hesaplayan ve ekrana yazdıran programın kodunu ve ekran çıktısını yazınız.
alan = π · r · r
pi = 3.14 r = 10 alan = pi*r*r print(alan)
314.0
Okul duvarının uzun kenarı 5 m, kısa kenarı 2 m. 20 öğrenci duvarı eşit alanlara bölüp resim yapacak. Bir öğrencinin boyayacağı alanı hesaplayıp yazan programı yazınız.
5 m × 2 m = 10 m² → 20 parça
uzun_kenar = 5
kisa_kenar = 2
alan = uzun_kenar*kisa_kenar
ort = alan / 20
print(" Her öğrencinin boyama alanı:",ort,"m²")Her öğrencinin boyama alanı: 0.5 m²
Matematik × Bilişim
Silindirin hacmi = taban alanı × yükseklik. Verilenler:
Silindirin hacmini bulan ve ekrana yazdıran programın kodunu ve ekran çıktısını yazınız.
pi = 3
r = 10
h = 5
taban_alani = pi*r*r
hacim = taban_alani*h
print("Silindirin hacmi:", hacim, "cm³")Silindirin hacmi: 1500 cm³
Üniversite sınavına hazırlanan bir öğrenci 10 gün boyunca her dersten çözdüğü soruların günlük ortalamasını bulmak istiyor. Soru sayılarını kullanıcıdan alıp ortalamayı gösteren programı yazınız.
int(input(...)) ile girilen metin tam sayıya dönüştürülür. Tam sayı girilse bile / bölmesi float döndürür; bu yüzden sonuç ondalıklıdır.
turkce_sayi = int(input("Türkçe soru sayısını girin:"))
mat_sayi = int(input("Matematik soru sayısını girin: "))
fen_sayi = int(input("Fen Bilimleri soru sayısını girin: "))
sos_sayi = int(input("Sosyal Bilimleri soru sayısını girin: "))
print("Türkçe ortalama soru sayınız:", turkce_sayi / 10)
print("Matematik ortalama soru sayınız:", mat_sayi / 10)
print("Fen Bilimleri ortalama soru sayınız:", fen_sayi / 10)
print("Sosyal Bilimleri ortalama soru sayınız:", sos_sayi / 10)Türkçe soru sayısını girin:150 Matematik soru sayısını girin: 200 Fen Bilimleri soru sayısını girin: 120 Sosyal Bilimleri soru sayısını girin: 80 Türkçe ortalama soru sayınız: 15.0 Matematik ortalama soru sayınız: 20.0 Fen Bilimleri ortalama soru sayınız: 12.0 Sosyal Bilimleri ortalama soru sayınız: 8.0
Haftalık harçlık 700 TL. Öğrenci harçlığının %5’ini biriktirmek, %5’ini yardımlaşmaya ayırmak, kalanını haftanın günlerine eşit harcamak istiyor. Günlük harcayabileceği miktarı hesaplayınız.
■ birikim 35 TL ■ yardım 35 TL ■ harcama
harclik = 700
birikim = (harclik * 5) / 100
yardim = (harclik * 5) / 100
print(birikim)
print(yardim)
harclik = harclik - (birikim + yardim)
gunlukpara = harclik / 7
print("harcayabileceği gunlukpara:", gunlukpara)35.0 35.0 harcayabileceği gunlukpara: 90.0
String: karakter dizisi
Karakterler birleşerek metinleri oluşturur. Karakter, sözcük, tümce, paragraf gibi metinlerde kullanılır. Genelde " " içinde yazılır; tırnak arasındaki her şey — sayı olsa bile — metin olarak algılanır.
Birçok dilde metinsel veriler char veya string ile belirtilir; tek ya da çift tırnak kullanımı dile göre değişir.
Sayısal ifadelerin metinsel tür olarak tanımlandığı ve işlemde metin gibi algılandığı programı yazınız.
ders_ad = "Programlamaya Giriş ve Algoritmalar" no = "1"; toplam = no + no; print(ders_ad) print(no) print(toplam)
Programlamaya Giriş ve Algoritmalar 1 11
"1" + "1" toplanmadı, yan yana eklendi → "11"
Boolean: True / False
İki değer alabilir; dile göre bu değerlerin yerini 1 ve 0 alabilir. Hafızada 1 byte yer kaplar. Kontrol ifadelerinde, mantıksal işlemlerde ve karar yapılarında kullanılır; bool veya boolean ile belirtilir.
İçinde veri olan değişkenlerin True, veri olmayan ya da “0” olanların False döndürdüğünü gösteren programı yazınız.
deg_1 = "Merhaba" # metin var → True deg_2 = 20 # sayı var → True deg_3 = "" # veri yok → False deg_4 = 0 # 0 verisi → False print(bool(deg_1)) print(bool(deg_2)) print(bool(deg_3)) print(bool(deg_4))
True True False False
Char ve ASCII
- 0–127 arası değer alan ASCII karakterleri için kullanılır.
- ASCII: American Standard Code for Information Interchange — Bilgi Değişimi için Amerikan Standart Kodu; 7 bitlik karakter kümesi.
- Harf, sembol, sayı ve kontrol karakterlerinin her birinin sayısal karşılığı vardır.
- Genelde tek tırnak içinde yazılır; kapladığı alan dile göre değişebilir.
Char veri türü hem sayısal hem metinsel veri türü olarak kullanılır.
char karakter1 = 'A'; char karakter2 = 'a'; char karakter3 = 65; char karakter4 = 97;
65 97 A a
65
66
97
98
Dizi: aynı türden verileri tek isimle tutmak
Birden fazla aynı tür verinin sıralanarak tek bir isimle hafızada tutulmasını sağlayan yapılara dizi denir. Veriler [ ] içinde yazılır ve 0’dan başlayarak numaralandırılır; bu numaralara indis denir. Birçok dilde liste olarak da kullanılır.
Tablo 3.5 · Dizinin indisli gösterimi — eleman sayısı 4
Farklı dillerde aynı dizi
Integer[] sayi = new Integer[] {10,20,30,40}
Cint sayi[] = {10,20,30,40}
Pythonsayi = [10,20,30,40]
Eleman sayısı belirterek
int[] sayi = new int[4]; sayi[0] = 10; sayi[1] = 20; sayi[2] = 30; sayi[3] = 40;
Aşağıdaki dizileri Python diline göre yazıp hepsinin ikinci elemanını ekrana yazdıran programı yazınız.
integer[] dizi_i = new integer[]{10, 20, 30, 40};
string[] dizi_s = new string[]{"Programlamaya ", "Giriş ", "Ve", "Algoritmalar"};
character[] dizi_c = new character[]{'P', 'G', 'V', 'A'};
double[] dizi_d = new double[]{1.2, 2.3, 3.4}Metinsel dizilerde metinler tırnak içinde yazılır. İkinci eleman = indis 1.
dizi_i = [10,20,30,40] dizi_s = ["Programlamaya ", "Giriş ", "Ve", "Algoritmalar"] dizi_c = ['P', 'G', 'V', 'A'] dizi_d = [1.2, 2.3, 3.4] print(dizi_i[1]) print(dizi_s[1]) print(dizi_c[1]) print(dizi_d[1])
20 Giriş G 2.3
- Her program farklı amaçlara hizmet ettiğinden ihtiyaç duyulan veri türleri değişebilir.
- En yaygın veri türleri:
byte,integer,long,float,string,boolean,char. - Diziler, birden fazla aynı tür veriyi depolayabilen yapılardır.
Bu bölümde öğrendiklerimiz
Aritmetik + - * / ** %
Karşılaştırma == != > < >= <=
Mantıksal and or ^ not
İşlem önceliği: ( ) → ** → * / % → + -
Hafızadaki etiketli kutular. = ile atama. Sayıyla/boşlukla başlamaz, komut olamaz, Türkçe karakter ve özel karakter içermemeli, anlamlı olmalı.
Sayısal (byte, int, long, float, double), metinsel (char, string), mantıksal (boolean), diziler. 8 bit = 1 byte. Türler uyumlu olmalı; gerekirse tür dönüştürme.