Algoritma ve Programlama | Algoritma Örnekleri

Algoritma

Algoritma ve programlama hakkında birçok soru soruluyor genelde karmaşık bir konu gibi gözükse de basittir. Algoritma bir nevi programlamanın sözlü ve şekilli halidir.

Öğrencilerim her dersin başında beni soru yağmuruna tutarak bir nevi sözlü sınav yaparlar. Tahtaya algoritma ve programlama yazdığımda gelen sorular şöyleydi. ( Tabii algoritma kitabından bakarak soruyorlardı.)

Genelde algoritma nedir? Algoritma nasıl yapılır? Algoritma ve programlamaya giriş kolay mı? Akış şeması nedir? Akış diyagramı nedir? Algoritma ve akış şeması örnekleri nelerdir?

>> Algoritmaya giriş
>> Akış diyagramı
>> Algoritma örnekleri
>>Algoritma çeşitleri
>>Ekşi Sözlük Deneyimi

 

Algoritmaya Giriş ( Algoritma ve Programlama )

 

Algoritma Arapça’daki algorizm kelimesinden -problem & sorun çözme anlamında- zamanla evrilmiştir. Daha evelliyatına bakacak olursak İran’lı alim el Harezmi tarafından 9. yüzyılda yazılan cebir kitabıyla ortaya çıkmıştır.

Bu cebir kitabının latince çevirisi Avrupa’da büyük yankı uyandırınca Avrupalılar tarafından algorizm kelimesi (“Arap sayıları kullanarak aritmetik problemler çözme kuralları” ) kullanılmıştır.

Algoritma bir sorunu (problemi) çözmek için mantıksal olarak parçalara ayırıp sıralı bir şekilde çözülme işlemidir.

Peki bu algoritma ne işimize yarar?

Analitik düşünmeyi, sorun çözmeyi öğreterek ezberciliği yok eder.

Algoritmayı nerede ve nasıl kullanırız?

Programlama yaparken öncelikli olarak algoritma hazırlarız. Bu programı kodlarken yapılacak adımları, istenilenleri sistematik bir şekilde sıraya koymayı ve var olan sorunu çözmemizi sağlar.

Algoritma oluşturduktan sonra kodlama işin basit kısmıdır. ( Tabii bu programlama diline hakimiyetle alakalıdır.)

Algoritma ve Programlama

Kısaca bir algoritma akış diyagramı yaparsak bu tanımlamalar daha açıklayıcı olacaktır.

Çay demleme ( 12’lik demlik baz alınarak hazırlanmıştır.)

1-Demlikleri çıkar

2-Alt demliğin içine su koy

3-Tüpü (ocağı) aç

4-Demliği tüpün üstüne koy

5-Su kaynayana kadar bekle

6- Kuru çayı çıkar

7- Üst demliğe 3 yemek kaşığı kuru çay koy

8- Üst demliğin içine kaynayan suyu iki parmak boş kalacak şekilde koy

9-Üst demliği ocağın üstüne koy

10- Beklemeden ocağın üstünden üst demliği al

11- Alt demliğin içine soğuk su ekle

12- Demlikleri üst üste getirip ocağın üstüne koy

13- Çayın demlenmesi için 15 dakika bekle

14- çayı bardağa koy

15- Bitti (afiyet olsun)

 

Görüldüğü üzere bütün adımlar yazılırsa geriye çok az bir iş ve kolayca yapılabilecek bir sistem kalıyor.

Akış diyagramı programı

 

Akış Diyagramı ( Algoritma ve Programlama )

 

Akış diyagramı (algoritma) belirli adımlardan oluşmaktadır. Akış diyagramları yani akış şemaları, algoritmanın görsel ve simgesel olarak ifade edilmesidir. Bir diğer adı da flow chart

Tanımında ortak nokta bulunamasa da dayandıkları veriler ortaktır. Algoritma nasıl yapılır sorusunun cevabı geliyor;

1- Etkinlik

Bilgisayar düşünemediği için algoritma net, açık, kesin ve emir şeklinde yazılır. Her kim okursa okusun aynı anlamı çıkaracak şekilde kesin ve açık olmalıdır.

Gereksiz tekrarlar kodların fazlalaşmasını bu da programın ram kullanımını arttırarak bilgisayara yük bindirmeye yol açar. Bu sebeple sade yazmak bilgisayarın hızına olumlu etki eder.

2- Sonluluk

Bir algoritma bağladığı gibi de bitmeli sonsuz döngüye girmemeli. Başlangıcı, belirli adımları ve bir sonu olmalı.

3- Kesinlik

İşlem sonuçları aynı veriler için değişiklik göstermemeli, aynı veri her yeni çalıştırmada aynı sonucu vermeli.

akış şeması

 

 

Algoritma Örnekleri ( Algoritma ve Programlama )

Algoritma örneklerine geçmeden önce birtakım tanımlamalar yapmak anlaşılırlığı arttıracaktır. Algoritma sözle, kaba kodla ve görsellerle tasarlanabilir. 

Sözle Algoritma

1-başla

2-tencereyi çıkar

3- tencereye bir litre su koy

4- su kaynayıncaya kadar bekle

Kaba Kodla Algoritma

Lisede görülen mantık dersindeki tanımlamaları kullanarak oluşturduğumuz kısmi olarak işin içine matematiği ve operatörleri koyduğumuz sistemdir.

Matematiksel Operatörler
+ toplama
çıkarma
. tam ve ondalıklı kısımları ayırma
/ bölme
* çarpma
^ üs alma
Karşılaştırma Operatörleri
= eşittir
<> eşit değildir
< küçüktür
> büyüktür
=> veya >= büyük eşittir
<= veya =< küçük eşittir
    Operatörler bu kadarla sınırlı değildir en çok kullanılan ve temel operatörler bunlardır.
  • Örnek 1:

     

    Bir dersten 3 sınav notu alan bir  öğrencinin :
    a-  ortalamasını
    b- 5 li sistemdeki not karşılığını
    c- harfli sistemdeki not karşılığını
    yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.

    Şimdi bu programı çözmeden önce matematiksel işlemler ve not verme sisteminden bahsedelim.

    Öncelikle alınan üç not sırasıyla x,y,z olsun ortalaması (x+y+z)/3 değerinden çıkar.
    5 li sistemde verilen notlar:
    100-85 dahil aralığı not 5 olur. Harfli sistemde A olur.
    84-70   dahil aralığı not 4 olur. Harfli sistemde B olur.
    69-55   dahil aralığı not 3 olur. Harfli sistemde C olur.
    54-45   dahil aralığı not 2 olur. Harfli sistemde D olur.
    44-25   dahil aralığı not 1 olur. Harfli sistemde E olur.
    24-0     dahil aralığı not 0 olur. Harfli sistemde F olur.

    Değişkenler


    girilen not değerleri:  a,b,c
    derslerin ortalaması: ort
    0-5 arasındaki rakamsal notu: r
    A-F aralığındaki harfsel notu: h

    Algoritma


    Adım 1: Başla
    Adım 2: Ders notlarını al.(a,b,c)
    Adım 3: ortalama değerini hesapla ort=(a+b+c)/3
    Adım 4: eğer ort>84  r=5 h=a adım10 a git.
    Adım 5:eğer ort>69 r=4 h=b adım 10 a git.
    Adım 6:eğer ort>54 r=3 h=c adım 10 a git.
    Adım 7:eğer ort>44 r=2 h=d adım 10 a git.
    Adım 8:eğer ort>24 r=1 h=e adım 10 a git.
    Adım 9:r=0 h=f
    Adım 10: r ve h değerlerini ekrana yaz.
    Adım 11: Bitir.

    Şimdi adımları incelersek ort değeri bulunduktan sonra eğer ifadeleri ile bulunan ort değeri teker teker sınanıyor ve h ve r değişkenleri değerlerini alıyorlar. Adım 10 da ise bulunan değerler ekrana yazılıp program sonlandırılıyor.

    Örnek 2:  

    Girilen iki sayıdan büyük olanı bularak ekranda gösteren algoritmayı yazın.

    1) Başla

    2) sayi1, sayi2 oku

    3) Eğer sayi1=sayi2 ise “A B’ye eşit” yaz : 6’ya git

    4) Eğer sayi1>sayi2 ise “sayi1 büyüktür” yaz : 6’ya git

    5) “sayi2 büyüktür” yaz

    6) Son

     

    Algoritma örnekleri temelde belirli adımlardan oluşup, net ve öz bir şekilde yazılmaktadır. İlerleyen konularda daha detaylı ve daha çok örnek çözeceğiz.

     

     

    algoritma nasıl yapılır

    Algoritma Çeşitleri ( Algoritma ve Programlama )

     

    Akış Diyagramları

    Doğrusal akış diyagramları

    Diyagramın en basit halidir; başlangıç – işlem – bitiş şeklindedir.

    Mantıksal akış diyagramları

    Karar alma mekanizmasının olduğu, dallanan bir yapıya sahiptir.

    Döngüsel akış diyagramları

    Çözüme ulaşmak için bazı adımların birçok kez tekrarlanması gereken durumları belirtir.

    Algoritma Çeşitleri

    *Arama Algoritmaları

    Büyük miktarda verilerle boğuşurken kullanılan bir algoritmadır. Verinin içinde ulaşılmak istenen belirli bilgiler için anahtar kelimelerle, en kısa süreçte ulaşılabilecek şekilde tasarlanır.

    İngilizcesi searching algorithms

    *Sıralama Algoritmaları

    Verilerin tablolaştırılması sonucu ulaşılan algoritmalardır. Belirli kriterlere göre sıralanır.

    İngilizcesi sorting algorithms

    Graf Boyama Algoritmaları

    Bir olay veya durumun nokta atışı olarak gösterilen veri tipidir. Algoritmik açıdan en kısa yoldan çözümün bulunmasını sağlar.

    İngilizcesi graph algorithms

    Genetik Algoritmalar

    Evrimle ilişkilendirilen bir yapısı vardır. Karmaşık sistemlerde sorun çözücü olarak kullanılır. Farklı yollarla birçok çözümün olduğunu ifade eden bir algoritmadır.

    İngilizcesi genetic algorithms

    Sıkıştırma Algoritmaları

    Verilerin bellekte daha az yer kaplaması için uygulanan yöntemdir. Kayıplı ve kayıpsız olabilir. Örneğin bir resim yüklerken boyutunu ve kalitesini sıkıştırabilir bu da kalite kaybına yol açar.

    İngilizcesi compression algorithms

    Algoritma çeşitleri bunlarla sınırlı değildir, en çok kullanılan algoritmalardan derlenmiştir.

    algoritma ve programlama

     

    Ekşi Sözlük Deneyimi ( Algoritma ve Programlama )

     

    bilgisayara yaptırmak istenilen şeyi bilgisayara anlatma, yol gösterme olayı.
    program yazmaya başlamadan önce bu mantığı kavramak önemli. yani yazılım olayına yeni girecekler için iyi bir başlangıç noktası diyebiliriz.

    ufak algoritmalar yazmak için flow chart diye bir program var. size bu ortamı sunuyor. benim algoritmalarla tanışmam flow chart’la olmuştu.
    ufak ufak algoritmalar yapardım. en basitinden klavyeden iki sayı alırdım toplayıp ekrana yazdırırdım.
    zaman geçtikçe üstüne biraz daha koydum. 3 sınavın ortalamasını alıp ekrana yazdırdım veya girilen sayının tek mi çift mi olduğunu yazdırdım vs..

    c# a kadar geldim. c# a geldiğimde çok fazla ufak programlar, algoritmalar yazıyordum. günde 6-7 saat c# ve algoritmalarla uğraşıyordum. bir noktadan sonra öyle bir konuma geldim ki yazılımla uğraşmadığım zamanlarda bile kafamda algoritmalar dönüyordu.

    bilgisayarda ufak oyunlar oynuyorum mesela karakter zıplıyor eğiliyor ateş ediyor bir şeyler yapıyor ben devamlı arkada çalışan kodları, algoritmaları düşünüyorum.

    elime gazete geçiyor köşesinde sudoku görüyorum, oturup bilgisayarda bunu nasıl yaparım derdine düşüyorum.

    her şeyi bilgisayarda nasıl yapacağımı düşünüyorum. bir şeyin algoritmasını kafamda düşünüyorum. bazen yollar çok dallanıyor karıştırıyorum.

    kağıt kalem alıp kağıt üzerinde bir çözüm yolu arıyorum. yazılımla uğraşmaya başladığımdan beri günlük hayatta soruna yaklaşma tarzımdan çözüme gitme şeklime kadar değiştirdi.

     

    Akış diyagramı

     

     

    Ekşi Sözlük yazısının kaynağı

    Milli Eğitim Bakanlığı’nın kaynaklarına erişim için

6 thoughts on “Algoritma ve Programlama | Algoritma Örnekleri

  1. Tahsin

    Dusuncelerden uzaklasmak adina kodlamaya yoneldiginiz oluyor mu? En guzel yani bu sanirim stresliyken hemen kafani dagitabilecek iyi bir meskale ve beyim jimnastigi. Diyagram icin tesekkurler, kendimi gelistirmek istiyorum yazilim konusunda , en azindan ufak isleri, kodlarda oynama yapabilecek kivama geleyim.

    Reply
    1. robotikrobot Post author

      Olmaz mı hiç, kodlama zevkli bir şey. Kodları bitirdikten sonraki zevk paha biçilemez. Genelde ilk zamanlar bunun arkasında ne var, bu kodu silsem nasıl değişir diye uğraşarak başladım. Uzun zaman böyle gitti sonra eğitim aldım.

      Reply
  2. oyyla.com

    Algoritmanın öneminin yüksek olması ve bu konudaki bilincin yükselmesi ve yaygınlaşması için çalışmaya başlanmıştır.

    Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir