Konu Anlatımı / Ders Notu
Algoritma Temelli Problemler Konu Anlatımı
9. sınıf Matematik için algoritma, doğal dil, akış şeması, sözde kod, döngü, çizge ve algoritmik problem çözme yöntemlerini öğrenin.
Algoritma Temelli Problemler
Algoritma, bir problemi çözmek veya belirli bir görevi tamamlamak için izlenen **açık, anlaşılır ve sıralı işlem adımlarının** bütünüdür. Algoritma kavramı yalnız bilgisayarlarla ilgili değildir; para üstü verme, bir fonksiyonun sıfırını bulma, bir sayının tek-çiftliğini belirleme, asal sayıları bulma, rota planlama ve veri güvenliği gibi çok farklı problemlerde kullanılabilir.
Ders kitabında algoritma teriminin kökeni, matematikçi **Harizmi** ile ilişkilendirilir. Harizmi'nin eserlerinin Latinceye çevrilmesiyle kullanılan “Algoritmi” sözcüğü zamanla bugünkü “algoritma” kavramına dönüşmüştür.
Algoritmik Yaklaşım
Algoritmik yaklaşım:
- problemi anlamayı,
- gerekli verileri belirlemeyi,
- çözüm adımlarını sıralamayı,
- bu adımları farklı temsillerle göstermeyi,
- çözümün doğruluğunu test etmeyi,
- yöntemleri karşılaştırmayı
içeren sistematik bir problem çözme yaklaşımıdır.
Ders kitabında bu yaklaşımın:
- bilgisayar bilimleri,
- matematik,
- mühendislik,
- ekonomi
gibi alanlarda kullanılabileceği belirtilir.
Algoritmanın Temel Unsurları
Bir algoritmada genellikle şu unsurlar bulunur:
- **Girdi:** Algoritmanın çalışması için alınan veriler.
- **İşlem:** Veriler üzerinde yapılan hesaplama veya güncelleme.
- **Koşul/Karar:** Akışın hangi yönde devam edeceğini belirleyen kontrol.
- **Döngü/Yineleme:** Belirli koşullar sağlandığı sürece tekrar eden işlem yapısı.
- **Çıktı:** Algoritmanın ürettiği sonuç.
Para Üstü Örneği
Ders kitabındaki para üstü probleminde:
- kitabın fiyatı 68 TL,
- müşterinin verdiği para 200 TL'dir.
Önce para üstü:
- **200 - 68 = 132 TL**
olarak hesaplanır.
Daha sonra kasada bulunan para türleri dikkate alınarak:
- en uygun banknot ve madeni para seçimleri yapılır,
- işlem adımları liste, tablo veya şema ile gösterilebilir,
- belirli bir banknot kasada yoksa algoritma yeni duruma göre yeniden düzenlenebilir.
Algoritmik Doğal Dil
**Algoritmik doğal dil**, bir problemi çözme adımlarını günlük dili kullanarak:
- sıralı,
- açık,
- herkesin anlayabileceği
biçimde ifade eden yöntemdir.
Ders kitabındaki dikdörtgen alanı örneğinde algoritmik doğal dil:
- Başla.
- Uzun ve kısa kenarı kullanıcıdan al.
- Alanı hesapla.
- Sonucu yazdır.
- Bitir.
şeklinde yapılandırılır.
Veri Yapısı
Algoritmada kullanılan verilerin:
- düzenli,
- anlamlı
bir biçimde gösterilmesine **veri yapısı** denir.
Listeler, tablolar ve benzeri düzenli gösterimler algoritmanın verileriyle çalışmayı kolaylaştırabilir.
Akış Şeması
**Akış şeması**, bir problemi çözme adımlarının görsel temsilidir.
Akış şemasında farklı semboller:
- başlangıç ve bitişi,
- veri giriş ve çıkışını,
- işlemleri,
- koşul/karar noktalarını,
- akış yönünü,
- sonuçların yazdırılmasını
göstermek için kullanılır.
Karar noktalarında akış:
- Evet/Hayır,
- Doğru/Yanlış
gibi iki veya daha fazla yola ayrılabilir.
Döngü
**Döngü**, belirli koşullar sağlandığı sürece tekrar eden işlemleri yürütmek için kullanılan yapıdır.
Örneğin:
- bir sayıdan başka bir sayıyı tekrar tekrar çıkararak kalan bulma,
- asal sayıların katlarını işaretleme,
- bir koşul sağlandığı sürece bölme işlemini sürdürme
döngü yapısına örnektir.
Atama Operatörleri
Atama operatörleri:
- değişkene ilk değer vermek,
- değişkenin değerini güncellemek,
- bir hesaplama sonucunu değişkene aktarmak
için kullanılır.
Örneğin dikdörtgen alanı hesaplanırken:
- alan değişkenine uzun kenar ile kısa kenarın çarpımının sonucu atanır.
Karşılaştırma Operatörleri
Ders kitabında kullanılan temel karşılaştırma operatörleri:
- `<` → küçük
- `>` → büyük
- `<=` → küçük veya eşit
- `>=` → büyük veya eşit
- `=` → eşittir
- `!=` → eşit değil
Bu operatörler özellikle:
- karar noktalarında,
- koşul kontrollerinde,
- döngülerde
kullanılır.
Sözde Kod
**Sözde kod**, bir bilgisayar programının nasıl çalışacağını anlatan:
- insanların okuyup anlayabileceği,
- sade,
- açıklayıcı
bir talimat dizisidir.
Sözde kod:
- gerçek bir programlama dilinin teknik ayrıntılarını kullanmak zorunda değildir,
- algoritmanın mantığını programlamaya yakın biçimde gösterir.
Genellikle:
- Girdi,
- Çıktı,
- Başla,
- işlem/koşul satırları,
- Yazdır,
- Bitir
gibi bölümler içerebilir.
Söz Dizimi
**Söz dizimi**, bir programlama dilinde:
- komutların,
- ifadelerin,
- veri yapılarının
nasıl düzenleneceğini belirleyen kurallar bütünüdür.
Gerçek programlama dillerinin kendilerine özgü söz dizimleri vardır. Söz dizimi doğru kullanılmazsa program:
- hatalı çalışabilir,
- hiç çalışmayabilir.
Aritmetik Operatörler
Ders kitabında verilen temel aritmetik operatörler:
- `+` → toplama
- `-` → çıkarma
- `*` → çarpma
- `/` → bölme
- `^` → kuvvet
- `%` → bölümden kalan
Özellikle `%` operatörü algoritmik problemlerde çok kullanılır.
Tek-Çift Kontrolü
Bir doğal sayının:
- 2'ye bölümünden kalan 0 ise sayı çifttir,
- 2'ye bölümünden kalan 1 ise sayı tektir.
Bu durum sözde kod veya akış şemasında `%` operatörüyle gösterilebilir.
Doğrusal Fonksiyonun Sıfırını Algoritmik Yaklaşımla Bulma
Ders kitabında:
- `f(x) = 3x + 6`
doğrusal fonksiyonunun sıfırını bulma problemi:
- cebirsel temsil,
- grafik temsil,
- sıralı işlem adımları,
- şema
yardımıyla ele alınır.
Amaç yalnız sonucu bulmak değil:
- farklı çözüm yollarını algoritmaya dönüştürmek,
- bunların sistematikliğini ve etkililiğini değerlendirmektir.
Tekrarlı Çıkarma ile Kalan Bulma
Ders kitabında 13'ün 3'e bölümünden kalan:
- bölünenden bölen tekrar tekrar çıkarılarak
bulunur.
Süreç:
- Bölünen ve bölen alınır.
- Bölünen bölen kadar veya daha büyükse çıkarma yapılır.
- Yeni değer bölünen olarak güncellenir.
- Koşul tekrar kontrol edilir.
- Bölünen bölen değerinden küçük olduğunda kalan bulunmuş olur.
Bu örnek:
- koşul,
- döngü,
- atama/güncelleme
kavramlarını birlikte gösterir.
Vücut Kitle İndeksi Problemi
Ders kitabındaki uygulamada vücut kitle indeksi:
**VKİ = kilo / boy²**
ile hesaplanır.
Kategoriler:
- `VKİ ≤ 18,5` → düşük kilolu
- `18,5 < VKİ ≤ 25` → normal kilolu
- `25 < VKİ ≤ 30` → fazla kilolu
- `VKİ > 30` → obezite
Bu problem:
- çoklu karar noktalarının,
- aralık kontrollerinin,
- algoritmik doğal dil, akış şeması ve sözde kodun
bir arada kullanımına örnektir.
5'e Bölünebilme Algoritması
Ders kitabındaki örnekte pozitif bir tam sayının 5'e tam bölünüp bölünmediği:
- sayının birler basamağı bulunarak
kontrol edilir.
Birler basamağı:
- 0 veya 5 ise sayı 5'e tam bölünür,
- 0 veya 5 değilse tam bölünmez.
Birler basamağını bulmak için:
- sayının 10'a bölümünden kalan kullanılabilir.
Eratosthenes Kalburu
**Eratosthenes Kalburu**, belirli bir sayıya kadar olan asal sayıları bulmak için kullanılan bir algoritmadır.
Temel fikir:
- 2'den n'ye kadar sayıları listele.
- En küçük asal sayı olan 2'nin katlarını işaretle.
- İşaretlenmemiş bir sonraki sayıyı al.
- Onun katlarını işaretle.
- İşlem sonlanana kadar devam et.
- İşaretlenmeden kalan sayılar asal sayılardır.
Kriptoloji ve Asal Çarpanlara Ayırma
Ders kitabında kriptoloji:
- bilgileri koruma ve gizleme bilimi
olarak ele alınır.
RSA şifreleme algoritmasının:
- büyük sayıların asal çarpanlarına ayrılmasıyla ilişkili olduğu,
- iki asal sayının çarpımının kolay,
- büyük bir sayıyı asal çarpanlarına ayırmanın ise zor olduğu
belirtilir.
Asal çarpanlara ayırma için örnek algoritmalar:
- deneme bölme,
- Pollard'ın rho algoritması,
- Shor algoritmasıdır.
Deneme Bölme Algoritması
Deneme bölme algoritmasında:
- sayı önce 2'ye bölünebildiği sürece bölünür,
- sonra 3, 5, 7 gibi asal sayılar denenir,
- işlemler belirli koşullar sağlandığı sürece sürdürülür,
- bulunan asal çarpanlar bir listede tutulur.
Ders kitabındaki 75 örneğinde:
- asal çarpanlar listesi **{3, 5}** olur.
Programlama Dili
**Programlama dili**, bilgisayarların anlayabileceği ve işleyebileceği talimat dizilerini oluşturmak için kullanılan formel dildir.
Programcı:
- algoritmayı oluşturur,
- programlama dilinin söz dizimine uyarak algoritmayı kod hâline getirir,
- bilgisayarın görevi yerine getirmesini sağlar.
Periyodik Gün Problemlerinde Modüler Düşünme
Doktor nöbeti örneğinde:
- ilk nöbet günü,
- nöbet aralığı,
- hedef nöbet
girdi olarak kullanılır.
Toplam geçen gün:
- `(hedef nöbet - 1) × nöbet aralığı`
ile bulunur.
Haftanın 7 gün olması nedeniyle:
- hedef günün belirlenmesinde 7'ye bölümden kalan kullanılır.
Ders kitabındaki örnekte:
- ilk nöbet salı,
- nöbet aralığı 3 gün,
- hedef nöbet 9
olduğunda 9. nöbet **cuma** gününe denk gelir.
Algoritmanın Performansı
Bir algoritmanın yalnız doğru sonuç vermesi yeterli olmayabilir. Ders kitabındaki uygulamalarda ayrıca:
- kullanışlılığı,
- sistematikliği,
- etkililiği,
- problem büyüdükçe nasıl davrandığı,
- alternatif çözüm yaklaşımları
değerlendirilir.
Örneğin kütlesi farklı parayı bulma probleminde:
- para sayısı arttıkça gereken tartım sayısı,
- hatalı paranın hafif veya ağır olma durumu,
- farklı algoritma stratejileri
incelenir.
Tokalaşma Problemi
n kişilik bir grupta herkes diğer herkesle bir kez tokalaşırsa toplam tokalaşma sayısı:
**n(n - 1) / 2**
şeklinde ifade edilebilir.
Ders kitabındaki tablo:
- 2 kişi → 1,
- 3 kişi → 3,
- 4 kişi → 6,
- 5 kişi → 10,
- 6 kişi → 15
şeklindeki örüntüyü gösterir.
Bu problem:
- tablo,
- cebirsel temsil,
- algoritmik doğal dil,
- akış şeması,
- sözde kod
yardımıyla çözümlenir.
Çizge Kuramı
**Çizge kuramı**, nesneler arasındaki ilişkileri:
- **düğümler (noktalar)**,
- **ayrıtlar (çizgiler)**
yardımıyla inceler.
Ders kitabında çizgelerin:
- sosyal ağlar,
- genel ağ bağlantıları,
- yol bulma sistemleri,
- elektrik devreleri
gibi gerçek yaşam problemlerini modellemek için kullanılabileceği belirtilir.
Königsberg Köprü Problemi
Euler'in Königsberg problemi:
- her köprüden yalnız bir kez geçme,
- başlangıç noktasına geri dönme
koşulunu inceler.
Ders kitabının kontrol noktasında:
- bir çizgede tüm düğümler çift sayıda ayrıta sahipse yolu başladığınız noktaya dönecek biçimde tamamlamanın mümkün olduğu,
- Königsberg örneğinde her köprüden yalnız bir kez geçip başlangıç noktasına dönmenin mümkün olmadığı
vurgulanır.
Rota Optimizasyonu
Temiz çevre uygulamasında çöp arabası:
- A'dan başlayıp,
- B, C ve D'yi birer kez ziyaret edip,
- tekrar A'ya dönmekte,
- toplam mesafeyi en aza indirmeye çalışmaktadır.
Bu problemde:
- depolar → düğüm,
- yollar → ayrıt,
- yol uzunlukları → mesafe verisi
olarak modellenebilir.
Amaç:
- tüm uygun rotaları değerlendirerek en kısa toplam mesafeyi veren rotayı bulmaktır.
Yönlü Çizgeler ve PageRank
Ders kitabındaki PageRank örneğinde:
- sosyal ağ kullanıcıları düğümlerle,
- bilgi paylaşımı yönlü ayrıtlarla
gösterilir.
PageRank:
- bir çizgedeki düğümlerin önemini ölçmeye yönelik bir yöntemdir,
- bağlantılar üzerinden düğümlerin ağdaki etkisini değerlendirmeye yardımcı olur.
Örnekte:
- C kullanıcısı en yüksek PageRank değerine sahip olduğu için ağdaki en etkili kullanıcı,
- E kullanıcısı en düşük değere sahip olduğu için daha zayıf bilgi yayılımına sahip kullanıcı
olarak yorumlanır.
ASCII, İkilik Sistem ve Veri Güvenliği
ASCII:
- karakterlerin sayısal değerlerle temsil edilmesini sağlayan bir kodlama sistemidir.
Ders kitabındaki örnekler:
- `A` → ASCII 65,
- 65'in ikilik sistemdeki karşılığı → `1000001`.
Bilgisayarlarda veriler:
- 0 ve 1'lerden oluşan ikilik gösterimlerle saklanıp işlenebilir.
Gerçek siber güvenlik sistemlerinde parolaların:
- doğrudan ASCII veya ikilik biçimleriyle saklanmadığı,
- SHA-256 gibi matematiksel işlemlerden geçirilerek dönüştürülmüş özetlerinin saklandığı
belirtilir.
Unicode
ASCII:
- İngiliz alfabesi ve temel sembollerle sınırlıdır.
Daha geniş karakter kümeleri için:
- Genişletilmiş ASCII,
- Unicode
gibi standartlar geliştirilmiştir.
Unicode:
- dünya genelinde çok sayıda dili ve simgeyi destekleyecek şekilde tasarlanmıştır.
Sıralama ve Arama Algoritmaları
Konu sonunda verilen performans görevinde öğrencilerden:
- sıralama veya arama algoritması seçmeleri,
- kullanım senaryosu, verimlilik ve karmaşıklık açısından analiz etmeleri,
- algoritmik doğal dil, sözde kod ve akış şemasıyla ifade etmeleri,
- test senaryolarıyla doğrulamaları
istenir.
Ders kitabında örnek olarak:
- büyük veri kümeleri için **Quick Sort**,
- küçük veri kümeleri için **Bubble Sort**
ifadelerine yer verilir.
Ayrıca alıştırmada **ikili arama**:
- sıralanmış bir veri setinde aranan elemanı hızlı bulmaya yönelik bir arama algoritması
olarak tanıtılır.
Sık Karıştırılan Noktalar
- Algoritma ile program aynı şey değildir.
- Algoritmik doğal dil ile sözde kod aynı temsil değildir.
- Akış şeması algoritmanın görsel temsilidir.
- Veri yapısı, verilerin düzenli gösterimidir; algoritmanın kendisi değildir.
- Döngü tekrar eden işlemdir; karar noktası akışı koşula göre ayırır.
- `%` operatörü yüzde değil, bu bağlamda bölümden kalanı verir.
- Atama ile karşılaştırma aynı amaçla kullanılmaz.
- `=` karşılaştırma tablosunda eşitlik anlamındadır; atama bağlamında da değer verme amacıyla kullanılabilir.
- Programlama dili belirli bir söz dizimine sahiptir; sözde kod teknik söz dizimine bağlı değildir.
- Bir algoritmanın farklı temsilleri aynı mantığı ifade edebilir.
- Çizgede düğüm nesneyi, ayrıt ilişkiyi temsil eder.
- Yönlü çizgede bağlantı yönü önemlidir.
- ASCII ile ikilik gösterim aynı şey değildir; ASCII karaktere sayısal değer atar, ikilik sistem sayıyı 0 ve 1'lerle gösterir.
- Doğru çalışan algoritma her zaman en verimli algoritma olmak zorunda değildir.
Soru Çözerken Kullanılabilecek Yaklaşım
- Problemin girdisini ve beklenen çıktısını belirle.
- İşlem adımlarını sırala.
- Koşul varsa karar noktalarını belirle.
- Tekrar varsa döngünün başlama ve bitme koşulunu bul.
- Soruda istenen temsile göre doğal dil, akış şeması veya sözde kod kullan.
- `%` operatörünü gördüğünde bölümden kalanı düşün.
- Tek-çift sorusunda `% 2`, birler basamağında `% 10` kullanıldığını hatırla.
- Çizge sorularında düğüm ve ayrıtları doğru modelle.
- Rota sorularında yalnız geçerli rotaları değil toplam maliyet/mesafeyi de karşılaştır.
- Algoritmayı farklı girdilerle test ederek her durumda doğru çalışıp çalışmadığını kontrol et.
- Performans sorularında problem büyüdükçe işlem sayısının nasıl değişebileceğini düşün.
Konu Özeti
Algoritma, bir problemi çözmek için uygulanan açık ve sıralı adımlar bütünüdür. Algoritmalar algoritmik doğal dil, akış şeması ve sözde kodla ifade edilebilir. Akış şemaları başlangıç-bitiş, veri giriş-çıkışı, işlem, karar ve akış yönlerini görsel olarak gösterir. Sözde kod algoritmayı programlama diline yakın ama teknik söz dizimi zorunluluğu olmadan ifade eder. Algoritmalarda girdi, çıktı, atama, karşılaştırma, aritmetik operatörler, karar ve döngü yapıları kullanılır. Konu; para üstü, doğrusal fonksiyon, kalan bulma, tek-çift kontrolü, VKİ, 5'e bölünebilme, asal sayılar, nöbet günü, tokalaşma, çizge, rota optimizasyonu, ASCII ve arama-sıralama gibi farklı problemler üzerinden algoritmik düşünmeyi geliştirir. Algoritmalar yalnız doğru sonuç vermeleri açısından değil, sistematiklik ve performans açısından da değerlendirilir.
Konuyu Bitirdiğinde Bunları Yapabiliyor Olmalısın
- Algoritmayı tanımlayabilmelisin.
- Algoritmik yaklaşımın temel basamaklarını açıklayabilmelisin.
- Girdi, işlem, koşul, döngü ve çıktı kavramlarını ayırt edebilmelisin.
- Algoritmik doğal dil ile çözüm adımlarını yazabilmelisin.
- Akış şemasının temel işlevini açıklayabilmelisin.
- Sözde kodun ne olduğunu açıklayabilmelisin.
- Veri yapısı ve söz dizimi kavramlarını açıklayabilmelisin.
- Aritmetik ve karşılaştırma operatörlerini doğru yorumlayabilmelisin.
- `%` operatörünü kalan bulma, tek-çift ve birler basamağı problemlerinde kullanabilmelisin.
- Döngü içeren algoritmaların durma koşullarını yorumlayabilmelisin.
- Eratosthenes Kalburu ve deneme bölme algoritmalarının temel mantığını açıklayabilmelisin.
- Çizgelerde düğüm ve ayrıt kavramlarını kullanabilmelisin.
- Königsberg problemindeki temel sonucu yorumlayabilmelisin.
- Rota optimizasyonunda en kısa toplam mesafeyi arama mantığını açıklayabilmelisin.
- ASCII, ikilik sistem ve Unicode arasındaki temel farkları söyleyebilmelisin.
- Bir algoritmayı farklı girdilerle test edip doğruluğunu ve performansını değerlendirebilmelisin.
Bu Üniteyi Pekiştir
Konuyu tamamladıysan çalışma notlarıyla tekrar yapabilir veya seviyene uygun testlerle kendini ölçebilirsin.
Bu Konuyla İlgili Testler
9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Kolay Test
20 soru
Temel kavramları kontrol et
9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Orta Test
20 soru
Bilgini uygulamaya geçir
9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Zor Test
20 soru
Detay ve yorum gücünü ölç
9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Karma Test 1
20 soru
Gerçek sınav temposunda kendini dene