Program, algoritma ve ilk Python programı

Programlama öğrenmeye başlarken asıl hedef, Python’a ait çok sayıda komutu ezberlemek değildir. İlk hedef, bir problemi açık ve sıralı adımlara ayırabilmek, bu adımların bilgisayar tarafından nasıl yürütüldüğünü anlayabilmek ve yazdığımız küçük programın gerçekten beklediğimiz sonucu üretip üretmediğini kontrol edebilmektir.

Bu bölümde henüz değişkenler, tür dönüşümleri veya koşullar gibi ayrıntılara girmeyeceğiz. Önce programın ne olduğunu, algoritma ile program arasındaki farkı, girdi–işlem–çıktı modelini ve Python’da ekrana nasıl çıktı verildiğini öğreneceğiz.

Bu hafta neleri yapabilmelisiniz?

Bölümün sonunda:

  • program ve algoritma kavramlarını birbirinden ayırabilmeli,
  • basit bir problemi girdi–işlem–çıktı modeline göre açıklayabilmeli,
  • günlük bir işlemin adımlarını sözde kod (pseudocode) ile yazabilmeli,
  • Python kodunun yukarıdan aşağıya doğru yürütüldüğünü açıklayabilmeli,
  • print() kullanarak ekrana metin yazdırabilmeli,
  • kısa bir programın çıktısını çalıştırmadan önce tahmin edebilmeli,
  • basit bir söz dizimi hatasını fark edip düzeltebilmelisiniz.

Bilgisayar neyi, nasıl yapacağını nereden bilir?

Bir bilgisayar çok hızlı işlem yapabilir; ancak ne yapılması gerektiğine kendiliğinden karar vermez. Ona yeterince açık talimatlar vermek gerekir.

Örneğin “öğrencinin ders başarı durumunu bul” ifadesi bir insan için anlamlıdır. Bilgisayar açısından ise birçok soru hâlâ cevapsızdır:

  • Hangi bilgiler kullanılacak?
  • Kaç not var?
  • Ortalama nasıl hesaplanacak?
  • Geçme sınırı kaç?
  • Sonuç nasıl gösterilecek?

Programlama, bu belirsizlikleri azaltıp çözümü bilgisayarın uygulayabileceği kadar açık hâle getirme işidir.

ImportantProgramlama yalnızca kod yazmak değildir

Kod, çözümün programlama dilindeki ifadesidir. Problem doğru anlaşılmamış veya çözüm adımları eksik kurulmuşsa sözdizimi doğru bir program bile yanlış sonuç üretebilir.

Algoritma ve program arasındaki fark

Algoritma, bir problemi çözmek veya bir işi tamamlamak için izlenen sonlu ve sıralı adımlar bütünüdür. Algoritmanın Python, Java veya başka bir programlama diliyle yazılması gerekmez.

Bir öğrencinin kampüs kartına bakiye yükleme işlemini düşünelim:

  1. Yüklenecek tutarı belirle.
  2. Ödeme yöntemini seç.
  3. Ödemeyi gerçekleştir.
  4. Ödeme başarılıysa bakiyeyi artır.
  5. Yeni bakiyeyi göster.

Bu adımlar henüz Python kodu değildir. Fakat yapılacak işi açık bir sıraya koyduğu için bir algoritma taslağıdır.

Program ise algoritmanın bilgisayar tarafından çalıştırılabilecek bir programlama diliyle ifade edilmiş hâlidir.

Kısaca:

Problem → algoritma → program → çalıştırma → doğrulama

Bu sıra ders boyunca tekrar tekrar karşımıza çıkacaktır.

Programlama sürecinin problemden algoritmaya, programa, çalıştırmaya ve doğrulamaya ilerleyen temel adımları.

Sözde kod

Algoritmayı bir programlama dilinin ayrıntılarına takılmadan yazmak için sözde kod (pseudocode) kullanabiliriz. Sözde kodun tek ve zorunlu bir yazım biçimi yoktur. Önemli olan adımların açık olmasıdır.

Örneğin iki sınav notunun ortalamasını hesaplayan bir çözüm şöyle ifade edilebilir:

BAŞLA
  birinci notu al
  ikinci notu al
  notları topla
  toplamı ikiye böl
  ortalamayı göster
BİTİR

Burada BAŞLA veya BİTİR Python komutu değildir. Ama çözümün sırasını görmemizi sağlar.

Girdi–işlem–çıktı modeli

Başlangıç düzeyindeki birçok programı anlamanın en kolay yollarından biri girdi–işlem–çıktı modelidir.

Bölüm Soru Örnek
Girdi Program hangi verileri alıyor? iki sınav notu
İşlem Bu veriler üzerinde ne yapılıyor? toplama ve ikiye bölme
Çıktı Program hangi sonucu üretiyor? not ortalaması

Bu model her programı açıklamak için tek başına yeterli değildir; ancak ilk problemlerde çok kullanışlıdır.

Kısa düşünme etkinliği

Bir kafede iki ürün satın alındığını düşünün. Program, ödenecek toplam tutarı hesaplayacak.

Aşağıdaki üç soruya kod yazmadan cevap verin:

  1. Girdi olarak hangi bilgiler gerekir?
  2. Hangi işlem veya işlemler yapılır?
  3. Çıktı olarak ne gösterilir?
Tip

Bir problemi çözemediğinizde hemen Python kodu yazmaya başlamak yerine önce “Girdim ne? İşlemim ne? Çıktım ne?” sorularını cevaplamak çoğu zaman problemi küçültür.

Python programı nasıl çalışır?

Python kodu bir Python yorumlayıcısı (interpreter) tarafından yürütülür. Bu derste ilk aşamada yorumlayıcının iç yapısını öğrenmemiz gerekmiyor. Şimdilik şu zihinsel model yeterlidir:

  1. Python programı okumaya başlar.
  2. Deyimleri sırasıyla yürütür.
  3. Bir hata oluşursa hata bilgisi verir ve normal akış kesilebilir.
  4. Program sonuna gelindiğinde çalışma tamamlanır.

İlk programımız yalnızca ekrana bir mesaj yazdırsın:

print("Merhaba, Python!")

print() Python’ın ekrana çıktı vermek için kullandığımız yerleşik fonksiyonlarından biridir. Parantez içindeki "Merhaba, Python!" ise ekrana yazdırılacak metindir.

Şimdilik iki ayrıntıya dikkat edin:

  • print küçük harfle yazılır.
  • Metnin başlangıç ve bitiş tırnakları eşleşmelidir.

Fonksiyon kavramını 6. haftada ayrıntılı olarak öğreneceğiz. Şu anda print() ifadesini “ekrana yazdır” komutu gibi kullanmanız yeterlidir.

Tahmin et, sonra çalıştır

Aşağıdaki kodu önce çalıştırmadan okuyun. Ekrana kaç satır yazılacağını ve satırların hangi sırada görüneceğini tahmin edin.

Tahmininizi yaptıktan sonra Run Code düğmesine basın.

Python bu örnekte kodu yukarıdan aşağıya doğru yürüttüğü için çıktı sırası da kod sırasını izler.

NoteWeb ve PDF sürümü arasındaki fark

Web sürümünde bu hücreyi doğrudan çalıştırabilirsiniz. PDF okuyorsanız aynı etkinliği bilgisayarınızdaki Python ortamında çalıştırabilir veya yalnızca çıktıyı tahmin ederek devam edebilirsiniz.

Alıştırma — İlk çıktıyı tamamla

Aşağıdaki boşluğu doldurarak ekrana tam olarak Merhaba, Python! yazdırın.

print() parantezinin içine bir metin yazacaksanız metni tırnak içine almalısınız.

print("Merhaba, Python!")

Alıştırma — Hatalı kodu düzelt

Aşağıdaki program bilinçli olarak hatalıdır. Önce yalnızca okuyarak problemi bulmaya çalışın. Daha sonra kodu düzeltip çalıştırın.

Bu örnekte başlangıç ve bitiş tırnakları eşleşmediği için Python kodun yapısını doğru biçimde okuyamaz. Bu tür hata bir söz dizimi hatası (syntax error) örneğidir.

Warning

Bir hata mesajı görmek programlamada olağan bir durumdur. Hata mesajı “başarısız oldunuz” anlamına gelmez; programın hangi noktada beklediği yapıyı bulamadığına dair bilgidir. Hata mesajlarını sistematik okumayı ilerleyen haftalarda geliştireceğiz.

Alıştırma — Sırayı değiştir, sonucu gözle

Aşağıdaki kod önce bir ders başlığı, sonra iki bilgi satırı yazdırıyor.

Şimdi kodu şu sonucu üretecek biçimde değiştirin:

Hafta 1
Programlama Temelleri
Python ile ilk program

Yeni bir Python yapısı kullanmanız gerekmiyor. Yalnızca mevcut deyimlerin sırasını değiştirin.

Bu küçük deney önemli bir fikri gösterir: deyimlerin sırası programın davranışının bir parçasıdır.

Alıştırma — Eksik satırı tamamla

Aşağıdaki program üç adımlı küçük bir algoritmayı ekrana yazdırıyor. Ortadaki adımı tamamlayın.

Beklenen çıktı:

1. Dosyayı aç
2. Metni oku
3. Dosyayı kapat

İlk ve üçüncü satırdaki kalıbın aynısını ikinci adım için kullanın.

print("1. Dosyayı aç")
print("2. Metni oku")
print("3. Dosyayı kapat")

Alıştırma — İlk küçük programınızı üretin

Artık başlangıç kodu vermiyoruz. Üç ayrı print() çağrısı kullanarak aşağıdaki çıktıyı üreten programı yazın:

Samsun MYO
Programlama Temelleri
Python'a hoş geldiniz!

Her çıktı satırı için ayrı bir print("...") çağrısı yazın.

print("Samsun MYO")
print("Programlama Temelleri")
print("Python'a hoş geldiniz!")

Neden henüz input() kullanmadık?

Bir programın girdi alabileceğini bu bölümde kavramsal olarak gördük; ancak kullanıcıdan veri alan input() fonksiyonunu, değişkenler ve temel veri türleriyle birlikte gelecek hafta ele alacağız.

Bu bilinçli bir sınırdır. İlk hafta öğrencinin aynı anda hem değişken, hem tür, hem dönüşüm, hem de kullanıcı girdisi ayrıntılarıyla uğraşması yerine şu üç fikri sağlamlaştırıyoruz:

  1. çözümün adımları önemlidir,
  2. Python deyimleri belirli bir sırayla yürütür,
  3. küçük bir programın davranışı çalıştırılmadan önce tahmin edilebilir ve çalıştırıldıktan sonra kontrol edilebilir.

Bölüm özeti

Bu hafta şu temel hattı kurduk:

Problem → algoritma → program → çıktı → doğrulama

  • Algoritma, çözümün programlama dilinden bağımsız adımlarıdır.
  • Program, bu çözümün bilgisayar tarafından çalıştırılabilir biçimidir.
  • Girdi–işlem–çıktı modeli başlangıç problemlerini parçalamaya yardım eder.
  • Python kodu temel zihinsel modelimizde yukarıdan aşağıya yürütülür.
  • print() ekrana çıktı vermek için kullanılır.
  • Kod yazmadan önce çıktıyı tahmin etmek, programın nasıl çalıştığını anlamanın önemli bir parçasıdır.
  • Hata mesajları programlama sürecinin doğal geri bildirimidir.

Kendinizi kontrol edin

Kodu çalıştırmadan cevaplamaya çalışın:

  1. Algoritma ile program arasındaki temel fark nedir?
  2. Bir yemek siparişi uygulamasında “seçilen ürünler” girdi, işlem veya çıktıdan hangisidir?
  3. Aşağıdaki program kaç satır çıktı üretir?
print("A")
print("B")
print("C")
print("D")
  1. print("Merhaba) satırındaki sorun nedir?
  2. Neden bu hafta kullanıcıdan input() ile veri almak yerine önce print() ve program sırasına odaklandık?

Bir sonraki bölümde program artık yalnızca sabit mesajlar yazdırmayacak; değişkenler, temel veri türleri, kullanıcı girdisi ve ifadeler ile gerçek veriler üzerinde işlem yapmaya başlayacaktır.

Back to top