Son Haberler
Anasayfa / Yazılım / ALGORİTMA

ALGORİTMA

Yazılım Nedir?

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini yarayan makine komutlarıdır. Bir işin programının kodlanarak oluşturulmasıdır.

Algoritma Nedir?

Algoritma nedir diye özetlersek; bir sorunu, bir problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.

Veya bir problemin çözümündeki adımların tümüne algoritma adı verilir. Programlamanın en önemli kısmı, problemi çözebilmek için algoritma hazırlamak ve geliştirmektir. Hazırlanan algoritmanın bir programlama dili ile kodlanması işin sonraki kısmıdır. Kullanılan dil her ne olursa olsun programlamanın temelinde algoritma vardır.

İyi Bir Algoritmanın 5 Temel Özelliği Nedir?

Bir algoritmanın etkin olması gerekmektedir. Bilgisayarlar aslında aptal makinelerdir, düşünemezler. Bu yüzden algoritmanın her adımının anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum gerektirmemeli ve belirsiz ifadeler sahip olmamalıdır. Yani yazılan algoritma farklı yorumlanmamalıdır. Algoritma gereksiz tekrarlarda bulunmamalıdır. Diğer algoritmalar içinde de kullanılabilir olmalıdır.

Algoritma sonluluk prensibine uygun olmalıdır. Her algoritmanın bir başlangıç noktası olmalı, işlem adımları belirli olmalı ve her algoritmanın bir bitiş noktası olmalıdır. Algoritma sonsuz döngüye girmemelidir.

Algoritmanın işlem sonucu kesin olmalıdır. Aynı veri için her yeni çalıştırmada aynı sonucu üretmelidir.

Algoritmanın giriş ve çıkış değerlerinin net olması gerekmektedir. Giriş, üzerinde işlem yapılacak değerlerdir. Çıkış ise yapılan işlemler neticesinde üretilen sonuç değerlerdir.

Algoritmanın performans kriterlerine uygun olması gerekmektedir. Örnek olarak bellek kullanımı, çalışma süresi gibi performans kriterlerini dikkate alarak yüksek performansa sahip programlar yazmak ve buna ilişkin algoritmalar hazırlamak nihai hedef olmalıdır.

Şimdi cümle ile basit bir algoritma yapalım. Bu algoritma da diş fırçalama olsun 🙂

  1. Başla
  2. Diş macununun kapağını aç.
  3. Diş fırçasını sol eline al
  4. Diş macununu sağ eline al.
  5. Diş fırçasını sol elinde tutarken, diş macununu üstüne sık.
  6. Diş macununu bırak.
  7. Diş fırçasını sağ eline geçir.
  8. Musluğu aç
  9. Diş macununu hafif ıslat.
  10. Musluğu kapat, su boşa akmasın 🙂
  11. Diş fırçasını ağzına götür.
  12. Yuvarlak hareketler ile dişini en az 2 dk fırçala
  13. Musluğu aç
  14. Eline su al, ağzına götür.
  15. Ağzını çalkala
  16. Fırçayı Yıka
  17. Musluğu kapat.
  18. Diş fırçasını yerine koy.
  19. Diş macununun kapağını sık.
  20. Diş macununu yerine bırak.
  21. Son

Tabi burada detayın detayına inmek mümkün 🙂 Öylesine bi fikir oluşsun ilk defa algoritma ile tanışanlar için.

Algoritmada İfade Şekilleri

İki şekilde algoritmaları ifade edebiliriz. Birincisi metin olarak algoritma yazmak. Burada çözülecek problem adım adım metin olarak yazılmaktadır. Her satıra bir numara verilir. Bir başlangıcı ve bir sonu vardır. Yukarıda örnekledik.

Bir başka örnek yapalım. Klavyeden girilen sayının küpünü hesaplayarak ekrana yazdıran programın algoritmasını metin olarak yazalım:

  1. Başla
  2. Sayısı gir (A)
  3. Sayının küpünü hesapla. (Küp: A*A*A işlemini yap)
  4. Sonucu (küp) yaz.
  5. Dur.

Burada A harfi bizim değişkenimizdir. Yani giriş yaptığımız değer A olarak isimlendirildi ve bir değişken tanımlandı.

Bir diğer ifade şeklimiz ise Psuedo olarak bilinen kaba kodlama mantığındır. Burada doğrudan konuşma dilinde ve programlama mantığı altında olan ancak eğer, iken gibi koşul kelimeleri ile birlikte, büyüktür, küçüktür, büyük eşittir, küçük eşittir gibi ifadelerin metinsel ifadeler ile birlikte yazılmasıdır. Bunu örnekleyelim;

Not ortalamasına göre geçti ve kaldı diyen bir algoritmamız olsun. 50 ve üstü ise öğrenci geçsin, 50 altında not var ise öğrenci kalsın.

  1. Kullanıcının not girmesi için bir uyarı mesajı yaz. “Öğrencinin notunu giriniz.”
  2. Girilen notu oku.
  3. Eğer Not <50 ise Durum=”Öğrenci Kaldı”
  4. Eğer değilse Durum=”Öğrenci Geçti”

Bir başka örnek daha yapalım. Karenin alan hesabı için yapalım.

  1. Karenin bir kenar değerini giriniz. (a)
  2. Alan = a * a (Alanı hesapla)
  3. Alan değerini ekrana yaz.
Algoritma Akış Şemaları

Algoritmanın görsel olarak simge veya sembollerle ifade edilmiş şekline “akış şemaları” veya “flowchart” adı verilir.  Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir. Akış şemaları bir işin tamamlanması için gerekli adımların çok daha iyi anlaşılmasını sağlayan görselliği sağlar. Programın akış yönünü ve işlemler arası bağlantıyı çubuklar ve oklar gösterir. Bazı işlemler için genel şekiller veya o işleme ait özel şekiller kullanılabilmektedir. Standart olarak akış şemalarında kullanılan şekiller aşağıdaki gibidir:

Başla / Bitir: Bir algoritmanın en başında ve en sonunda kullanılmaktadır. Algoritmanın başladığını ve sonlandığını gösterir.

Veri Girişi: Çevre birimleri ile yapılan bilgi alışverişini simgeler.

Döngü: Birden çok tekrar gerektiren durumlarda kullanılır. Döngü tamamlanmamışsa gidilecek düğüme geri dönen akış yönü çıkışı vardır.

Bağlantı: Bir sayfaya sığmayan şemalarda veya aynı sayfa içindeki karmaşık akışları engellemek için akış noktalarını bağlayan şekildir. Şekil içerisine harf veya simgeler yazılarak aynı iki simgenin veya harfin birbirine bağlı olduğu ifade edilir.

Çıktı: Ekrana yazdırma işlemi için kullanılan semboldür. Yani programın çıktısını ifade eder.

Karar Yapısı: Karşılaştırma işlemi ve sonuçta varılan karar durumuna göre akıl yönünü belirleyen işlemlerde kullanılır. Kıyaslama ifadesi şekil içine yazılır. Karar Evet ise E, Hayır ise H ile gösterilir. Ve bu gösterilen simge belirtilen bir uçtan çıkar ve başka bir düğüm noktasına bağlanır.

Fonksiyon: Bir işin tamamlanması için fonksiyonlar ve uygulamalar varsa bu süreçleri simgeler.

Bilgi Girişi: Kullanıcı tarafından elle yapılan girişleri simgeler.

Akış Yönü: Algoritmada şekiller arasındaki akış yönünü gösterir. Okun yönü akış yönünü gösterir.

İşlem: Bir algoritmada aritmetik işlem yapılacağını belirtmektedir. Dikdörtgen kutu içerisinde aritmetiksel işlem yazılır.

Bir cevap yazın

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