Algoritma ve Akış Şemaları

Busra Gunes
inventiv
Published in
5 min readJan 7, 2022

Algoritma bir probleme çözüm üretmek veya belirlenen amaca ulaşabilmek için tasarlanmış yola ve birbirini takip eden işlem adımlarına denir. Bu yazımızda algoritma ve akış şemalarının ne olduğuna ve nasıl oluşturulduğuna dair bilgiler verilecektir.

1. Algoritma Nedir?

Algoritma kelime anlamı olarak herhangi bir problemin çözülmesinde izlenecek yol ve yöntemlere bağlı olarak problemin çözümünü gerçekleştirmek için ortaya konulan adımların bütüne verilen bir isimdir. Programlama ile uğraşanlar içinse bu kelime, yazılım geliştirme süreci içerisinde karşılaşılan problemleri basite indirgeyerek, çözümü adım adım ortaya koymak ve bir programlama dili yardımıyla kodlamak anlamına gelmektedir.

2. Algoritma Neden Gereklidir?

Yazılan ya da geliştirilen bir yazılımda önemli olan iki konu vardır. Bunlar; zaman ve hafıza karmaşıklığıdır.

Zaman karmaşıklığı, programın yaptığı işlemin, belirtilen değişkene göre harcayacağı süredir. Hafıza karmaşıklığı, algoritmayı çalıştırmak için bilgisayardan alınan hafızadır. Alınan bu hafıza, maliyeti belirler. Ne kadar az hafıza, o kadar az maliyettir. Bu şekilde verimlilik ölçülmüş olur. Özet olarak belirtilen bu iki durum, ne kadar optimum düşünülür ve ayarlanırsa verimlilik o kadar artar. Bunu belirlemek için algoritmaya ihtiyacımız vardır.

3. Algoritma Geliştirmenin Temel Adımları

· Problemi tanımlamak

Problem ne kadar iyi tanımlanırsa, algoritmayı geliştirmek de o kadar kolay olur.

· Girdi ve çıktıları belirlemek

Problemin çözülebilmesi için problemi tanımlamanın ardından girdi ve çıktıların belirlenmesi gerekmektedir.

· Çözüm yolları(algoritmalar geliştirmek)

Bulunabildiği kadar çok çözüm yolu geliştirilmeli ve en uygunu tercih edilmelidir. Her bir çözüm yolu için çözümler adımlara ayrıştırılıp bu adımlar en uygun şekilde birbirleriyle ilişkilendirilmelidir.

4. Algoritmaların Sınıflandırılması

Algoritmalar karmaşıklık yapılarına göre 3 grupta incelenirler.

· Basit (Lineer) Algoritmalar

İçerisinde mantıksal ifadeler ve program akış dallanmaları bulunmayan algoritmalardır. Basit algoritmalarda akış düz bir şekilde baştan sona doğru olmaktadır. Genellikle küçük hesaplamaları gerçekleştirmek için kullanılırlar.

Örnek; İki sayının çarpımını ekrana yazdıran algoritma

Adım 1 : İki sayı giriniz; a , b

Adım 2 : Sayıların çarpımını hesaplarınız; çarpım=a*b

Adım 3 : Sayıların çarpımını ekrana yazdırınız; çarpım

· Mantıksal Algoritmalar

İçerisinde mantıksal karşılaştırmalar olan ve bu mantıksal karşılaştırmalara göre akışı da farklı adımlara giden algoritmalara mantıksal algoritmalar denmektedir.

Örnek; Girilen iki sayıdan büyüğünü bulan algoritma

Adım 1 : Üç adet sayı giriniz; x, y, z

Adım 2 : En büyük sayı a olsun; eb =x

Adım 3 : Eğer y en büyükten büyük (y>eb ) ise en büyük y olsun; eb =y

Adım 4 : Eğer z en büyükten büyük (z>eb ) ise en büyük z olsun; eb =z

Adım 5 : En büyük sayıyı ekrana yazdır; eb

· Döngüsel Algoritmalar

Algoritmada bir işlem birden fazla tekrar ediyorsa döngülü algoritma yapısı kullanılır.

Örnek; 1 den 100'e kadar olan sayılardan 8'e tam bölünebilenleri ekrana yazdıran algoritma

Adım 1 : Sayı=0

Adım 2 : Eğer sayı>100 ise Adım 6 git

Adım 3 : Eğer sayı%8==0 ise sayıyı ekrana yaz

Adım 4 : Sayı=sayı+1

Adım 5 : Adım 3 git

Adım 6 : Dur

5. Akış Şeması Nedir?

Sorunun çözümü için oluşturulmuş algoritmanın görsel olarak şekillerle ifade edilmesine akış şeması (flow chart) denilmektedir. Akış şemalarında algoritmanın adımları simgeler şeklinde kutular içine yazılmaktadır ve adımlar arasındaki ilişkiler ve akış yönü oklar ile gösterilmektedir.

Akış şemasındaki semboller ve anlamları;

· Akış Şeması Hazırlama Kuralları

-Başlangıç ve bitiş uçları tanımlanmalıdır.

-Standart semboller kullanılmalıdır.

-Birbirini kesen akış hatları kullanılmamalıdır.

-Basit kararlar alınmalıdır.

-Şema belli bir yönde hazırlanmalıdır.

Örnek; “Bugün ne yapmak istiyorum?” sorusunun akış şeması

Problem: Bugün ne yapmak istiyorum?

“Dışarı çıkmak istiyor musun?” sorusuna “Evet” cevabını veriyorsanız hava durumu bilgisini alınırsınız. Hava yağmurlu ise botlarınızı giyip, şemsiyenizi alarak dışarı çıkabilirsiniz. Hava yağmurlu değilse spor ayakkabılarınızı giyip dışarı çıkabilirsiniz.

“Dışarı çıkmak istiyor musun?” sorusuna “Hayır” cevabını veriyorsanız “Kitap okumak istiyor musun?” sorusu sorulur. Bu soruya “Evet” cevabını veriyorsanız sevdiğiniz bir kitabı okumaya başlayabilir, “Hayır” cevabını veriyorsanız sevdiğiniz bir müziği açıp dinleyebilirsiniz.

6.Sözde Kod

Problemin çözüm adımlarının komut benzeri anlaşılır metinlerle veya kısaltmalarla ifade edilmesine denir.

Örnek : Klavyeden girilen sayının faktöriyelini alan sözde kod

Adım 1 : input sayi

Adım 2 : int faktoriyel=1

Adım 3 : faktoriyel =faktoriyel * sayi

Adım 4 : sayi =sayi-1

Adım 5 : if(sayi ==1)

Adım 6 : output “ faktoriyel degeri ” + faktoriyel

Adım 7 : else return Adım3

Yukarıda da belirttiğimiz gibi algoritmalar çözüm adımları düz metin olarak açık cümleler ile ifade edilmesine satır algoritma, çözüm adımlarının geometrik şekillerle gösterilmesine akış şeması, çözüm adımlarının komut benzeri metin ve kısaltmalarla ifadesine de sözde kod olarak ifade etmiştik.

Şimdi bir örnek problem üzerinden satır algoritma, akış şeması ve sözde kod ile inceleyelim.

Girilen 3 sayıdan en büyüğünü bulan programın satır algoritmasını, akış diyagramını ve sözde kodunu yazalım.

Adım 1 : Başla
Adım 2 : A sayısını gir
Adım 3 : B sayısını gir
Adım 4 : C sayısını gir
Adım 5 : a> = b ve a> = c ise a’ya maximum değer ver ve 8. adıma git.
Adım 6 : b > = a ve b > = c ise b’ye maximum değer ver ve 8. adıma git.
Adım 7 : c’ye maximum değer ver ve 8. adıma git.
Adım 8 : max değerini yazdır.
Adım 9 : Bitir.

Bu yazımız umarım faydalı ve anlaşılır olmuştur. Yazıda emeği geçen Melike Gürdal’a teşekkür ederim.

KAYNAKÇA

  1. http://www.ttbilgin.com/2018-2019-guz/bilmuh-giris/hafta4/algoritmalar-ve-akis-diyagramlari.pdf
  2. http://ikucukkoc.baun.edu.tr/lectures/BIL1202/BIL1202BirlestirilmisNotlar.pdf
  3. https://www.kodlamamerkezi.com/algoritma/algoritma-nedir-algoritma-cesitleri/
  4. https://www.researchgate.net/publication/328334275_ALGORITMALARIN_HAYATIMIZDAKI_YERI_VE_ONEMI

--

--