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:

  1. Başla.
  2. Uzun ve kısa kenarı kullanıcıdan al.
  3. Alanı hesapla.
  4. Sonucu yazdır.
  5. 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ç:

  1. Bölünen ve bölen alınır.
  2. Bölünen bölen kadar veya daha büyükse çıkarma yapılır.
  3. Yeni değer bölünen olarak güncellenir.
  4. Koşul tekrar kontrol edilir.
  5. 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:

  1. 2'den n'ye kadar sayıları listele.
  2. En küçük asal sayı olan 2'nin katlarını işaretle.
  3. İşaretlenmemiş bir sonraki sayıyı al.
  4. Onun katlarını işaretle.
  5. İşlem sonlanana kadar devam et.
  6. İş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

  1. Problemin girdisini ve beklenen çıktısını belirle.
  2. İşlem adımlarını sırala.
  3. Koşul varsa karar noktalarını belirle.
  4. Tekrar varsa döngünün başlama ve bitme koşulunu bul.
  5. Soruda istenen temsile göre doğal dil, akış şeması veya sözde kod kullan.
  6. `%` operatörünü gördüğünde bölümden kalanı düşün.
  7. Tek-çift sorusunda `% 2`, birler basamağında `% 10` kullanıldığını hatırla.
  8. Çizge sorularında düğüm ve ayrıtları doğru modelle.
  9. Rota sorularında yalnız geçerli rotaları değil toplam maliyet/mesafeyi de karşılaştır.
  10. Algoritmayı farklı girdilerle test ederek her durumda doğru çalışıp çalışmadığını kontrol et.
  11. 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.

Konu Anlatımı

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyiciler Konu Anlatımı

Konuyu ayrıntılı ve öğretici şekilde öğren.

Konu Anlatımını Aç
Konu Anlatımı

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyicilerin Algoritmik Problemlerde Kullanımı Konu Anlatımı

Konuyu ayrıntılı ve öğretici şekilde öğren.

Konu Anlatımını Aç
Ders Notu

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyiciler Ders Notu

Ünitenin düzenli ve kısa özetini incele.

Ders Notunu Aç
Ders Notu

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyicilerin Algoritmik Problemlerde Kullanımı Ders Notu

Ünitenin düzenli ve kısa özetini incele.

Ders Notunu Aç
Ders Notu

Algoritma Temelli Problemler Ders Notu

Ünitenin düzenli ve kısa özetini incele.

Ders Notunu Aç
Hızlı Tekrar

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyiciler Hızlı Tekrar

Sınav öncesi kritik bilgilerle hızlı tekrar yap.

Hızlı Tekrarı Aç
Hızlı Tekrar

9. Sınıf Matematik Mantık Bağlaçları ve Niceleyicilerin Algoritmik Problemlerde Kullanımı Hızlı Tekrar

Sınav öncesi kritik bilgilerle hızlı tekrar yap.

Hızlı Tekrarı Aç
Hızlı Tekrar

Algoritma Temelli Problemler Hızlı Tekrar

Sınav öncesi kritik bilgilerle hızlı tekrar yap.

Hızlı Tekrarı Aç
Kolay

9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Kolay Test

20 soru

Temel kavramları kontrol et

Testi Çöz
Orta

9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Orta Test

20 soru

Bilgini uygulamaya geçir

Testi Çöz
Zor

9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Zor Test

20 soru

Detay ve yorum gücünü ölç

Testi Çöz
Karma

9. Sınıf Matematik Algoritma ve Bilişim Algoritma Temelli Problemler - Karma Test 1

20 soru

Gerçek sınav temposunda kendini dene

Testi Çöz

Ders İçinde İlerle