Ana sayfateknolojiYazılım ve ProgramlamaProgramlama Nedir?
💻
Teknoloji · Konu Anlatımı

Programlama Nedir? Problemden Çalışan Yazılıma Adım Adım

Programlamaya Giriş· genel· 8 dk okuma· Son güncelleme: 19 Temmuz 2026
Öğreniyo İçerik Ekibi tarafından hazırlandı · Editör: Yusufhan Seyis
Bilgisayar ve Programlama yolunun 9/18. adımı· Yolu gör →
Kısaca

Programlama, bir problemi çözmek veya belirli bir işi yapmak için bilgisayara uygulanabilir ve sıralı talimatlar verme sürecidir. Bu talimatlar bir programlama dilinin kurallarına göre yazılır; ardından uygun araçlarla çalıştırılarak girdi işlenir ve çıktı üretilir.

Bu yazıda (7)
💻
Teknoloji

Programlama Nedir? Problemden Çalışan Yazılıma Adım Adım

Bir bilgisayarın ekranda sonuç göstermesi, bir uygulamanın kullanıcıdan bilgi alması ya da bir oyunda karakterin hareket etmesi kendiliğinden gerçekleşmez. Bu davranışların arkasında, bilgisayara hangi işlemleri hangi koşullarda ve hangi sırayla yapacağını bildiren talimatlar bulunur. Bu talimatları tasarlama, yazma, çalıştırma ve denetleme sürecine programlama denir.

Programlamayı yalnızca klavyede kod yazmak olarak düşünmek eksik kalır. Kod yazmadan önce problem anlaşılır, gerekli girdiler belirlenir, çözüm adımlara ayrılır ve beklenen çıktı tanımlanır. Daha sonra bu çözüm Python, Java, C++ veya JavaScript gibi bir programlama dilinin sözdizimiyle ifade edilir. Böylece insanın problem çözme planı, bilgisayarın işleyebileceği bir programa dönüşür.

Bir Problemi Bilgisayarın Uygulayacağı Adımlara Çevirmek

Programlamanın başlangıç noktası kod değil, problemin açık biçimde tanımlanmasıdır. Örneğin "notu hesapla" ifadesi tek başına yeterli değildir. Hangi notlar kullanılacak, notların toplam puanı kaç olacak, sonuç yüzde olarak mı gösterilecek ve geçme ölçütü bulunacak mı soruları cevaplanmalıdır.

Bir problemin programlanabilir hâle gelmesi için üç unsur özellikle önemlidir:

  1. Girdi: Programın dışarıdan aldığı bilgi. Öğrencinin doğru sayısı, ürünün fiyatı veya kullanıcının yaşı girdi olabilir.
  2. İşlem: Girdiler üzerinde yapılan hesaplama, karşılaştırma veya sıralama.
  3. Çıktı: İşlem sonunda kullanıcıya ya da başka bir programa sunulan sonuç.

Bu yapı, basit bir giriş-işleme-çıkış akışı oluşturur. Örneğin 25 soruluk testte 18 doğru sayısı girildiğinde işlem 18÷25×10018 \div 25 \times 100 olur ve çıktı yüzde 72'dir. Programın doğru çalışıp çalışmadığını değerlendirmek için yalnızca kodun hata vermemesi yetmez; bu çıktının beklenen sonuçla uyuşması gerekir.

Algoritma, bu çözümün programlama dilinden bağımsız ve sıralı anlatımıdır. Bir algoritmada adımların sırası önemlidir. Önce toplam soruya bölüp sonra 100 ile çarpmak, yüzde hesabında aynı matematiksel sonucu verir; ancak önce gerekli girdilerin alınması ve toplamın sıfır olup olmadığının kontrol edilmesi gerekir. Sıfıra bölme gibi geçersiz durumlar da problem tanımının parçasıdır.

Algoritma ile Programlama Dilindeki Kodun Farkı

Algoritma, bir problemi çözmek için tanımlanmış, sonlu ve açık adımlar bütünüdür; bu adımlar doğrusal ilerleyebileceği gibi koşullar ve döngüler de içerebilir. Programlama ise bu yöntemin belirli bir dilin kurallarıyla bilgisayara aktarılmasını kapsar. Aynı algoritma Python, Java veya C++ ile farklı biçimlerde yazılabilir. Bu nedenle algoritma ile programlama dili aynı kavram değildir.

Örneğin iki sayının büyüğünü bulma algoritması şu şekilde ifade edilebilir:

  • Birinci sayıyı al.
  • İkinci sayıyı al.
  • Birinci sayı ikinci sayıdan büyükse birinci sayıyı yazdır.
  • Aksi durumda ikinci sayıyı yazdır.

Bu açıklama henüz Python kodu değildir; çünkü belirli bir dilin yazım kurallarını kullanmaz. Koda dönüştürülürken değişken tanımlama, karşılaştırma ve ekrana yazdırma söz dizimi seçilir. Burada değişkenler, programın çalışması sırasında değer tutan adlardır. Aynı değişkene farklı aşamalarda yeni bir değer atanabilmesi, programın girdileri işleyebilmesini sağlar. Ayrıntılı kavram bağlantısı için değişken nedir konusuna bakılabilir.

Bir programlama dilinin iki temel yönü vardır: sözdizimi ve anlam. Sözdizimi, komutların nasıl yazılacağını belirler; anlam ise bu komutların çalıştığında ne yapacağını ifade eder. Noktalama veya anahtar kelime hatası sözdizimi hatasına, doğru yazıldığı hâlde yanlış sonuç üreten bir karşılaştırma ise mantık hatasına örnek olabilir.

Kodun Bilgisayarda Çalıştırılması: Derleyici ve Yorumlayıcı

Programcı tarafından yazılan kaynak kod, işlemcinin doğrudan kullandığı biçim değildir. Kaynak kodun çalıştırılmasında kullanılan yöntem, dile ve geliştirme ortamına göre değişebilir. Derleyici, kaynak kodu hedef bir biçime (örneğin nesne kodu, makine kodu veya ara kod) dönüştüren araçtır. Bu hedef biçimin doğrudan çalıştırılması için bazı durumlarda bağlayıcıya, sanal makineye veya çalışma zamanı ortamına ihtiyaç duyulur. Yorumlayıcı ise kaynak kodu çalışma sırasında okuyup komutların yürütülmesine aracılık eder.

Bu ayrımı "derleyici her zaman tek seferde, yorumlayıcı her zaman satır satır çalışır" şeklinde mutlaklaştırmak doğru değildir. Modern diller ve çalışma ortamları derleme, ara koda dönüştürme ve çalışma zamanında yorumlama aşamalarını birlikte kullanabilir. Öğretim düzeyinde temel ayrım şudur: derleme yaklaşımında kod, çalıştırmadan önce bir dönüşüm aşamasından geçer; yorumlama yaklaşımında yürütme sırasında kaynak kod veya ara biçim değerlendirilir.

Bu araçların görevi programın mantığını tasarlamak değildir. Derleyici veya yorumlayıcı, yazılan talimatları kullanılan ortamın çalıştırabileceği biçime taşır. Bu nedenle bir programın derlenmesi hatasız sonuçlansa bile program mantıksal olarak yanlış olabilir. Örneğin 18 doğruyu 25 yerine 20'ye bölen kod yazım açısından geçerli olabilir; fakat beklenen yüzdeyi üretmez.

Çalıştırma aşamasındaki önemli ayrım da şudur: kaynak kodun çalıştırılabilir hâle gelmesi, programın tüm durumlarda doğru çalıştığını kanıtlamaz. Farklı girdilerle test yapılmalı; hataların kaynağı bulunup düzeltilmelidir. Derleyici ve yorumlayıcı arasındaki ayrıntılar için derleyici nedir ve yorumlayıcı nedir bağlantılarına geçilebilir.

Bir Programın Karar Vermesini ve Tekrar Yapmasını Sağlayan Yapılar

Gerçek programlar yalnızca komutları yukarıdan aşağıya bir kez çalıştırmaz. Girdiye göre farklı işlem yapmak veya aynı işlemi birden fazla kez uygulamak için kontrol yapıları kullanılır.

Koşul ifadeleri, bir durumun doğru ya da yanlış olmasına göre farklı yollar seçer. Örneğin geçme sınırı 50 ise program, puan 50\geq 50 olduğunda "Geçti", daha düşük olduğunda "Kaldı" çıktısı verebilir. Buradaki eşik, problemde tanımlanan ölçüttür; 50 sayısı her program için geçerli evrensel bir kural değildir. Koşul ifadeleri hakkında koşul ifadesi if nedir yazısına bakılabilir.

Döngüler, belirli bir işlemi tekrarlar. 25 sorunun cevaplarını tek tek kontrol etmek, listedeki ürünleri sırayla yazdırmak veya 1'den 10'a kadar sayıları toplamak döngüyle modellenebilir. Döngünün kaç kez çalışacağı veya hangi koşul sağlanana kadar süreceği açıkça belirlenmelidir. Koşul hiçbir zaman değişmiyorsa sonsuz döngü oluşabilir. Konunun devamı için döngü nedir bağlantısı kullanılabilir.

Fonksiyonlar, tekrar kullanılacak bir işlemi isimlendirilmiş bir blokta toplar. Örneğin yüzde hesaplayan bir fonksiyon, doğru ve toplam soru sayılarını girdi olarak alıp sonucu döndürebilir. Fonksiyon kullanmak yalnızca kodu kısaltmaz; işlemin nerede tanımlandığını ve hangi girdilerle çalıştığını da görünür kılar.

Birden fazla veriyi birlikte işlemek gerektiğinde diziler veya daha genel veri yapıları kullanılır. 25 cevabı ayrı ayrı değişkenlerde tutmak yerine bir dizi içinde saklamak, veriyi döngüyle işlemeyi kolaylaştırır. Ancak dizi ile veri yapısı eş anlamlı değildir: dizi, belirli bir veri düzenleme biçimidir; veri yapısı ise verilerin saklanma ve erişilme yöntemlerini kapsayan daha geniş bir kavramdır. Ayrıntılar için dizi nedir ve veri yapısı nedir yazılarına geçilebilir.

Çözümlü Örnek: Test Başarı Yüzdesi ve Geçme Kararı

Verilenler: Bir testte 25 soru vardır. Öğrenci 18 doğru yapmıştır. Geçme ölçütü yüzde 50 olarak belirlenmiştir.

Çözüm adımları:

  1. Programın girdilerini belirle: dogru = 18, toplam = 25.
  2. Geçersiz durumu kontrol et: toplam değeri 0 ise bölme yapılamaz. Bu örnekte toplam 25 olduğu için hesaplamaya geçilebilir.
  3. Başarı yüzdesini hesapla: 18÷25×100=7218 \div 25 \times 100 = 72.
  4. Sonucu eşikle karşılaştır: 725072 \geq 50 olduğu için geçme koşulu sağlanır.
  5. Çıktıyı üret: "Başarı yüzdesi: %72 — Geçti".

Sonuç: Programın sayısal çıktısı yüzde 72, koşul değerlendirmesinin çıktısı ise "Geçti" olur.

Bu örnekte iki farklı işlem birbirine karıştırılmamalıdır. Yüzdeyi hesaplayan matematiksel işlem ile yüzdeyi geçme sınırıyla karşılaştıran koşul ayrı adımlardır. Ayrıca doğru sayısı 25'ten büyük olursa veri geçersiz olabilir; bu kontrol, testin kurallarına göre eklenmelidir. Negatif doğru sayısı da aynı şekilde kabul edilmemelidir. Dolayısıyla çalışan bir program yalnızca formülü uygulamaz, girdilerin problem tanımına uygunluğunu da denetler.

Çözümlü Örnek: İki Sayıdan Büyük Olanı Seçmek

Verilenler: Kullanıcıdan iki sayı alınacaktır: 14 ve 9.

Çözüm adımları:

  1. İki girdiyi adlandır: sayi1 = 14, sayi2 = 9.
  2. Karşılaştırma koşulunu kur: sayi1 > sayi2.
  3. 14>914 > 9 doğru olduğu için birinci sayıyı seç.
  4. Çıktı olarak 14'ü yazdır.

Sonuç: Büyük sayı 14'tür.

Sınır durumu iki sayının eşit olmasıdır. Örneğin girdiler 9 ve 9 olursa sayi1 > sayi2 koşulu yanlış olur ve yalnızca "aksi durumda ikinci sayıyı yazdır" yaklaşımı yine 9 sonucunu verse de programın eşitlik durumunu açıkça belirtmesi daha anlaşılırdır. Problem "büyük olanı" istediğinde sonuç aynı olsa bile "sayılar eşit" çıktısı isteniyorsa = veya kullanılan dildeki eşitlik karşılaştırması ayrıca ele alınmalıdır. Atama işlemi ile eşitlik karşılaştırmasının sembolleri dile göre farklı olabilir; bu ayrım kod yazarken dikkatle kontrol edilmelidir.

Sık Yapılan Hatalar ve Karıştırılan Kavramlar

Kodlama ile programlamayı aynı sanmak: Kodlama, çözüm talimatlarını bir programlama dilinde yazma eylemidir. Programlama ise problemi anlama, algoritma kurma, kodlama, çalıştırma, test ve hata düzeltme aşamalarını birlikte kapsayan daha geniş bir süreçtir.

Algoritmayı programlama dili sanmak: Algoritma, belirli bir dile bağlı olmayan çözüm planıdır. Python veya C++ ile yazılmış kod ise bu planın dil kurallarına göre ifade edilmiş biçimidir.

Derleme hatasının mantık hatası olduğunu düşünmek: Derleyici bir yazım veya tür uyumsuzluğu bildirebilir; fakat geçerli yazılmış bir formülün yanlış seçildiğini her zaman anlayamaz. 18'i 25 yerine 20'ye bölmek sözdizimi bakımından geçerli, sonuç bakımından hatalı olabilir.

Her dilin aynı biçimde çalıştığını varsaymak: Dillerin sözdizimi, veri türleri, çalışma ortamları ve derleme ya da yorumlama süreçleri farklıdır. Bir dilde geçerli olan kod başka bir dilde aynı şekilde çalışmayabilir.

Sınır değerlerini test etmemek: 50 geçme sınırında 50 değerinin geçerli kabul edilip edilmediği, toplam soru sayısının 0 olması veya iki sayının eşit olması gibi durumlar özellikle test edilmelidir. Bir büyüklüğün değerini bulmak kadar, hangi eşikle karşılaştırılacağını ve eşitlik durumunda ne yapılacağını belirlemek de gereklidir.

Döngünün bitiş koşulunu kurmamak: Tekrar sayısı veya döngüyü sonlandıracak koşul değişmiyorsa program beklenenden uzun çalışabilir. Döngü tasarlanırken başlangıç değeri, ilerleme adımı ve bitiş koşulu birlikte yazılmalıdır.

Formül

Başarı yüzdesi = (doğru sayısı ÷ toplam soru sayısı) × 100. Bu formül yalnızca toplam soru sayısı 0 değilse uygulanabilir; elde edilen değer daha sonra belirlenen geçme eşiğiyle karşılaştırılır.

Günlük hayatta

Bir markette kasiyerin 3 ürünün barkodunu sırayla okutmasını düşünün. Program her barkoddan ürün bilgisini alır, fiyatları toplar, indirim koşulu varsa kontrol eder ve toplam tutarı ekrana verir. Burada barkodlar girdiyi, fiyat toplama ve indirim hesabı işlemi, ödeme ekranındaki tutar ise çıktıyı oluşturur. Ürün sayısı arttığında aynı okutma işleminin tekrarlanması döngüye; indirim koşulunun değerlendirilmesi ise koşul ifadesine örnektir.

Sınavda

TYT veya AYT'de programlama tanımı sorulursa cevabı yalnızca "kod yazmak" diye daraltmayın: programlama, bir problemi çözmek ya da görevi gerçekleştirmek için bilgisayara programlama diliyle talimat verme sürecidir. Algoritma çözümün açık adımlarını, kodlama bu adımların bir programlama dilinde yazılmasını, programlama ise problemi çözmek için algoritma geliştirme, kodlama, çalıştırma, test ve hata ayıklama sürecinin bütününü ifade eder. Derleyici ve yorumlayıcı sorularında temel ayrımı yazmadan önce, bu araçların kodu çalıştırılabilir biçime taşıdığını; ancak mantıksal doğruluğu tek başına garanti etmediğini belirtin. Koşul, döngü ve fonksiyon ifadelerinde ise girdi, işlem, çıktı ve sınır durumlarını ayırarak düşünün.

Sık sorulan sorular

Programlama ile kodlama arasındaki fark nedir?

Kodlama, talimatların bir programlama dilinin kurallarına göre yazılmasıdır. Programlama ise problemi tanımlama, algoritma oluşturma, kodlama, çalıştırma, test etme ve hataları düzeltme aşamalarını kapsayan daha geniş süreçtir.

Programlama dili bilgisayarın doğrudan anladığı dil midir?

Programlama dili, insanların bilgisayara talimat ifade etmek için kullandığı biçimsel bir dildir. Kaynak kodun işlemci veya çalışma ortamı tarafından yürütülebilmesi için derleme, yorumlama ya da bunların birlikte kullanıldığı bir süreç gerekir.

Derleyici bütün hataları bulur mu?

Hayır. Derleyici veya benzeri araçlar sözdizimi ve bazı tür uyumsuzluklarını bildirebilir; fakat kodun problem için doğru formülü kullanıp kullanmadığını ya da her girdi için beklenen sonucu üretip üretmediğini garanti etmez. Bu nedenle test ve mantık kontrolü gerekir.

Algoritmada girdi ve çıktı neden önemlidir?

Girdi, programın işleyeceği bilgiyi; çıktı ise programın ürettiği sonucu belirtir. Bu ikisi tanımlanmazsa hangi verinin işleneceği ve programın doğru çalışıp çalışmadığının nasıl değerlendirileceği belirsiz kalır.

Programlamaya başlamak için hangi dili seçmeliyim?

Kaynaklar, tüm amaçlar için tek bir dil önermemektedir. Seçim yapılırken hedef, öğrenme ortamı ve kullanılacak araçlar dikkate alınmalıdır. Önemli olan önce algoritma, değişken, koşul, döngü ve fonksiyon gibi ortak kavramları anlamaktır; bu kavramlar farklı dillerde farklı sözdizimleriyle uygulanabilir.

Bir programın doğru çalıştığı nasıl anlaşılır?

Program farklı ve anlamlı girdilerle test edilir, üretilen çıktılar beklenen sonuçlarla karşılaştırılır. Normal girdilerin yanında toplamın 0 olması, eşit sayılar veya geçme sınırına tam eşit puan gibi sınır durumları da kontrol edilmelidir.

Kaynaklar
SıradakiAlgoritma Nedir?