Konu Anlatımı / Ders Notu
1. Ünite – Temel Kavramlar Ders Notu
Algoritma ve Programlama 1. Ünite Temel Kavramlar için düzenli ders notu: algoritma özellikleri, gösterim yöntemleri, akış diyagramları, kontrol yapıları ve Big O.
Mevcut Ders Notu içeriğini silip aşağıdakini yapıştır. Bu sürüm özellikle sınav kutuları ve soru kalıpları olmadan, düzenli ders özeti şeklinde hazırlandı. Algoritma Kavramı Algoritma, bir problemi çözmek veya belirli bir sonuca ulaşmak amacıyla uygulanacak işlemlerin açık, sıralı ve sonlu adımlar hâlinde ifade edilmesidir. Bir algoritma hazırlanırken yalnızca hangi işlemlerin yapılacağı değil, işlemlerin hangi sırayla uygulanacağı da belirlenir. Temel çalışma modeli: Girdi → İşlem → Çıktı Girdi Algoritmanın çalışabilmesi için aldığı veridir. Örnek:
- kullanıcının yaşı,
- iki sayısal değer,
- öğrencinin sınav notları,
- bir ürünün fiyatı.
İşlem Girdiler üzerinde gerçekleştirilen hesaplama veya değerlendirmedir. ortalama = (vize + final) / 2
Çıktı İşlemler tamamlandıktan sonra elde edilen sonuçtur. Ortalama = 75
Algoritma ve Programlama Algoritma ile programlama birbirine bağlı ancak farklı kavramlardır. Algoritma, problemin çözüm yöntemini oluşturur. Programlama, oluşturulan algoritmanın bir programlama dili kullanılarak bilgisayara uygulanmasıdır. Örneğin: İki sayı al Sayıları topla Sonucu yazdır
bir algoritmadır. Bu algoritma daha sonra Python, C#, Java veya başka bir programlama diliyle kodlanabilir. İyi Bir Algoritmanın Özellikleri Bir algoritmanın kullanılabilir olması için belirli özelliklere sahip olması gerekir. Kesinlik Algoritmanın her adımı açık ve tek anlamlı olmalıdır. Belirsiz bir ifade: Sayıyı biraz artır
Daha kesin bir ifade: Sayı = Sayı + 1
Etkinlik Algoritmada yer alan işlemler problemin çözümüne katkı sağlamalıdır. Sonucu etkilemeyen gereksiz işlemler kullanılmamalıdır. Sonlu Olma Algoritma belirli sayıda işlemden sonra sona ermelidir. Bitiş koşulu bulunmayan bir işlem dizisi sonsuza kadar devam edebilir. Doğruluk Algoritma verilen girdiler için beklenen doğru sonucu üretmelidir. Algoritma Hazırlama Süreci Bir problem algoritmaya dönüştürülürken şu sıra izlenebilir:
- Problem açık biçimde tanımlanır.
- Girdiler belirlenir.
- Beklenen çıktı belirlenir.
- Yapılacak işlemler belirlenir.
- Gerekliyse karar noktaları oluşturulur.
- Tekrar eden işlemler belirlenir.
- İşlemler doğru sıraya yerleştirilir.
- Algoritma örnek verilerle kontrol edilir.
Örneğin iki sayının toplamını hesaplayan algoritma: BAŞLA
OKU A OKU B
TOPLAM = A + B
YAZ TOPLAM
BİTİR
Burada:
- A ve B girdidir.
- toplama işlemi işlem aşamasıdır.
- TOPLAM sonuç yani çıktıdır.
Algoritmayı Gösterme Yöntemleri Algoritmalar farklı yöntemlerle ifade edilebilir. Sözlü İfade Çözüm adımlarının günlük dil kullanılarak açıklanmasıdır. Örnek:
- Kullanıcıdan iki sayı al.
- Sayıları topla.
- Sonucu ekrana yazdır.
Basit problemlerde anlaşılması kolaydır. Kaba Kod / Sözde Kod Kaba kod, programlama diline benzeyen ancak belirli bir dilin yazım kurallarına bağlı olmayan algoritma gösterimidir. BAŞLA OKU sayı sonuç = sayı * 2 YAZ sonuç BİTİR
Kaba kod bilgisayar tarafından doğrudan çalıştırılmak için değil, çözümün çalışma mantığını açık biçimde göstermek için kullanılır. Bu nedenle aynı işlem farklı ifadelerle yazılabilir. Örneğin veri almak için:
- OKU
- GİRDİ
- AL
gibi farklı gösterimler kullanılabilir. Akış Diyagramı Akış diyagramı, algoritmanın grafiksel semboller kullanılarak gösterilmesidir. Algoritmanın hangi sırayla ilerlediğini ve hangi noktalarda farklı yollara ayrıldığını görmeyi kolaylaştırır. Başlangıç ve Bitiş Algoritmanın başlangıç ve sona erme noktalarını gösterir. Genellikle oval veya elips biçimiyle temsil edilir. Girdi ve Çıktı Programa veri alınması veya sonuç verilmesi amacıyla kullanılır. Genellikle paralelkenar biçiminde gösterilir. İşlem Hesaplama ve değer atama gibi işlemleri ifade eder. Genellikle dikdörtgen biçimindedir. Karar Bir koşulun değerlendirilmesini ve sonuca göre farklı yolların izlenmesini sağlar. Genellikle baklava biçimiyle gösterilir. Diğer Elemanlar Akış diyagramlarında ihtiyaca göre:
- veri tabanı,
- alt program,
- bağlantı,
- sayaç ve döngü
gibi işlemler için farklı semboller de kullanılabilir. Temel Kontrol Yapıları Algoritmaların çalışma akışında üç temel yapı bulunur. Sıralı Yapı İşlemler sırayla gerçekleştirilir. A değerini al B değerini al C = A + B C değerini yaz
Burada herhangi bir koşul veya tekrar bulunmaz. Seçimli Yapı Bir koşulun sonucuna göre farklı işlemler gerçekleştirilir. EĞER not >= 50 İSE "Geçti" yaz DEĞİLSE "Kaldı" yaz
Programın izleyeceği yol koşulun sonucuna bağlıdır. Tekrarlı Yapı Bir işlem veya işlem grubunun birden fazla kez gerçekleştirilmesini sağlar. Örneğin bir sınıftaki bütün öğrencilerin notlarının sırayla okunması tekrarlı yapıya örnektir. Programlama dillerinde bu işlemler döngüler aracılığıyla uygulanır. Algoritma Analizi Aynı problemi çözen farklı algoritmalar aynı performansa sahip olmayabilir. Algoritma analizinde özellikle iki temel kavram kullanılır:
- zaman karmaşıklığı,
- alan karmaşıklığı.
Zaman Karmaşıklığı Zaman karmaşıklığı, girdi miktarı arttığında algoritmanın gerçekleştirmesi gereken işlem miktarının nasıl değiştiğini ifade eder. Burada doğrudan programın kaç saniyede çalıştığı ölçülmez. Amaç, veri miktarı arttıkça işlem yükünün nasıl büyüdüğünü değerlendirmektir. Örneğin bir listedeki bütün elemanlar tek tek kontrol ediliyorsa:
- 10 eleman için yaklaşık 10 kontrol,
- 100 eleman için yaklaşık 100 kontrol,
- 1000 eleman için yaklaşık 1000 kontrol
gerekecektir. Alan Karmaşıklığı Alan karmaşıklığı, algoritmanın çalışması sırasında ihtiyaç duyduğu bellek miktarının veri büyüklüğüne bağlı olarak nasıl değiştiğini gösterir. Bir algoritma daha hızlı çalışabilmek için daha fazla bellek kullanabilir. Bu nedenle algoritmalar yalnızca hız açısından değil, kaynak kullanımı açısından da değerlendirilebilir. Büyük O Notasyonu Algoritmaların veri miktarı büyüdükçe işlem maliyetinin nasıl değiştiğini göstermek amacıyla Büyük O notasyonu kullanılır. Temel gösterimlerden bazıları: O(1) O(log n) O(n) O(n log n) O(n²) O(n³)
O(1) Sabit zamanlı işlemleri ifade eder. Veri miktarı artsa bile yapılan işlem sayısı yaklaşık sabit kalır. O(log n) Her adımda problem alanının önemli ölçüde küçüldüğü yapılarda görülür. Veri miktarı büyüse bile işlem sayısı daha yavaş artar. O(n) İşlem sayısı veri miktarıyla yaklaşık aynı oranda artar. O(n log n) Doğrusal ve logaritmik büyümenin birlikte bulunduğu yapılarda görülür. O(n²) Veri miktarı arttıkça işlem sayısı karesel olarak büyür. İç içe iki tekrar yapısında karşılaşılabilir. O(n³) Üç seviyeli tekrar veya benzeri yapılarda ortaya çıkabilecek daha yüksek maliyetli büyüme türüdür. En İyi, Ortalama ve En Kötü Durum Bir algoritma her girdi için aynı sayıda işlem yapmak zorunda değildir. En İyi Durum Algoritmanın en az işlem gerçekleştirdiği senaryodur. Örneğin bir listede aranan değerin ilk eleman olması. En Kötü Durum Algoritmanın en fazla işlem yaptığı senaryodur. Örneğin aranan değerin listede bulunmaması ve bütün elemanların kontrol edilmesi. Ortalama Durum Algoritmanın tipik girdiler karşısındaki ortalama davranışını ifade eder.
- Ünite Özeti
Bu ünitede algoritmanın programlamanın temelini oluşturan problem çözme yöntemi olduğu ele alınmıştır. Bir algoritma:
- girdileri alır,
- girdiler üzerinde işlemler gerçekleştirir,
- sonuç üretir.
İyi bir algoritmanın açık, kesin, etkin, sonlu ve doğru olması gerekir. Algoritmalar:
- sözlü ifade,
- kaba kod,
- akış diyagramı
ile gösterilebilir. Akış diyagramında temel olarak başlangıç–bitiş, girdi–çıktı, işlem ve karar elemanları kullanılır. Algoritmaların çalışma yapısı:
- sıralı,
- seçimli,
- tekrarlı
olabilir. Algoritmaların performansı zaman ve alan karmaşıklığı kullanılarak değerlendirilebilir. Büyük O notasyonu ise veri miktarı arttığında algoritmanın işlem maliyetinin nasıl büyüdüğünü ifade etmek amacıyla kullanılır.
Bu Üniteyi Pekiştir
Konuyu tamamladıysan çalışma notlarıyla tekrar yapabilir veya seviyene uygun testlerle kendini ölçebilirsin.
Bu Konuyla İlgili Testler
Algoritma Kavramı - Kolay Test
20 soru
Temel kavramları kontrol et
Algoritma Kavramı - Orta Test
20 soru
Bilgini uygulamaya geçir
Algoritma Kavramı - Zor Test
20 soru
Detay ve yorum gücünü ölç
Algoritma Kavramı - Karma Test 1
20 soru
Gerçek sınav temposunda kendini dene