Algoritma nedir ? Algoritma Örnekleri

Programlama hakkında genel bilgilerin, dökümanların yer aldığı bölümümüz.
Cevapla
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 803
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 434 kez
Teşekkür edildi: 297 kez
İletişim:

Algoritma bir problemin çözümünde izlenecek yol anlamına gelmektedir.

Algoritma sözcüğü nereden gelir?
Algoritma kelimesi, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş Ebu Abdullah Muhammed bin Musa el Harezmi isimli Türk matematikçinin adından gelir. Batılılar, el Harezmi (Al-Khwarizmi) (Latincede Algoritmi) sözcüğünü telaffuz edemedikleri için terim bu şekilde kalmıştır.
Tüm programlama dillerinin temeli algoritmaya dayanır. Mantık algoritma ile kurulur. Algoritma bilmeden tam anlamıyla bir programcı olmamız imkansız gibidir. Bunu yaparken 3 temel bileşenimiz vardır. Biz problemleri çözerken bu basamakları takip edeceğiz. Aynı zamanda algoritma tek bir problemi çözecek davranışın, temel işleri yapan komutların veya deyimlerin adım adım ortaya konulmasıdır ve bu adımların sıralamasına göre işlem yapılmasıdır.

1. Değişkenler
2. Algoritma
3. Akış Diyagramı


Algoritma türleri:
Arama algoritmaları
Bellek yönetimi algoritmaları
Bilgisayar grafiği algoritmaları
Birleşimsel algoritmalar
Çizge algoritmaları
Evrimsel algoritmalar
Genetik algoritmalar
Kripto algoritmaları veya kriptografik algoritmalar
Kök bulma algoritmaları
Optimizasyon algoritmaları
Sıralama algoritmaları
Veri sıkıştırma algoritmaları
Algoritmayı belirtmek için ; metin sel olarak düz ifade ve akış diyagramı olmak üzere 2 yöntem kullanılır. Algoritmalar bilgisayarlar tarafından işletilebilirler.

Her algoritma aşağıdaki kriterleri sağlamalıdır.
Girdi : Sıfır veya daha fazla değer dışarıdan verilmeli.
Çıktı : En azından bir değer üretilmeli.
Açıklık : Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
Etkinlik : Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.
Örnek : Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır.
A1 Başla
A2 Birinci Sayıyı Oku
A3 İkinci Sayıyı Oku
A4 İki Sayıyı Topla
A5 Dur
Bununla ilgili küçük bir örnek verecek olursak : Klavyeden girilen iki sayının toplamını bulan ve sonucu ekrana yazdıran programın algoritması ve akış diyagramı istenseydi.

1. Değişkenler

birinci sayı: x
ikinci sayı :y
iki sayının toplamı:toplam

2. Algoritma

Adım 1 :Başla
Adım 2 :Birinci sayıyı oku ve x değişkenine aktar.
Adım 3 :ikinci sayıyı oku ve y değişkenine aktar.
Adım 4 :x ve y sayılarını topla sonucu toplam değişkenine aktar.
Adım 5 :Toplam değerini ekrana yazdır.
Adım 6 :Dur

3. Akış Diyagramı

Resim

Yukarıdaki örnekte olduğu üzere basit bir problemin nasıl çözüleceği anlatmaya çalıştık.
Burada altın nokta olarak değişkenler dışarıdan girilen yani bizim oluşturduğumuz değerleri tutan elemanlardır.
Algoritma ise problemin çözümünün adımlar halinde oluşturulmasıdır.
Akış Diyagramı (Flowing Diagram) ise çözümün şekiller ile anlatımıdır(tasviridir).
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.

Etiketler:
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 803
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 434 kez
Teşekkür edildi: 297 kez
İletişim:

Algoritma Anlatımı Devamı


Bir problemin çözümünde algoritma oluştururken satır algoritma yazabilir yada akış diyagramı çizebiliriz. Bu şekilde programlamaya başlamadan önce problemin çözümünü açık bir şekilde ifade etmiş oluruz. Böylelikle süreç ile ilgili bir hatayı programlamaya geçmeden önce gözlemleme imkanı buluruz.

Algoritmanın Temel İfadeleri

Değişkenler (Variable) :
Programın işleyişi içinde farklı değerleri tutmak üzere ayrılmış bellek bölümüdür. Bir değişkenin tanımlanması halinde tüm bilgiler geçici hafızada (RAM) tutulur.

Örneğin : a=b+c ifadesinde a,b,c tanımlamaları birer değişkendir.Değişken isimlendirme tamamen programcıya aittir. Ancak adının yerini aldığı ifadeye çağrışım yapacak şekilde olması programın anlaşılırlığı açısından önemlidir.

Tanımlayıcılar (Identifier) :
Değişken, sabit, alt yordam ve alan gibi programlama birimlerine programcı tarafından verilmiş isimlerdir.


İsimlendirme Kuralları
0-9 arası rakamlar kullanılabilir.
Sembollerden sadece alt çizgi ( _ ) kullanılabilir.
Tanımlayıcı isimleri harf veya alt çizgi ile başlayabilir.
Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz (sayı olamaz).
İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir.



Atama (Assignment) : Program içinde bir değeri bir değişkene eşitleyen operatöre denir. Örneğin :
a = 10 yazarsak a değişkenine 10 değeri atanır ve bundan sonra a ile yapacağımız işlemlerde a nın değeri 10’dur.

Sabitler (Constant) :
Kullanım yerine göre değeri değişmeyecek matematiksel aksiyonlar ve bilimsel katsayılar gibi değerleri tanımlamada kullanılır. Program her çalıştığında programın içinde hep aynı değeri döndüren tanımlayıcılar sabitlerdir.
Örneğin : Bir dairenin alanını pi sayısının, yarıçapını karesiyle çarparak buluruz. Pi sayısı değişmeyeceği için program içerisinde sabit olarak tanımlanırken, yarıçap hesaplamak istediğimiz her daire için değişiklik göstereceğinden değişken olarak tanımlanmalı ve kullanıcı taraflı girişi yapılmalıdır.

Örnek Algoritma :

Kod: Tümünü seç

A1 Başla
A2 PI=3.14
A3 x sayısını oku
A4 Sonuc=PI*(x*x)
A5 Sonuc Yaz
A6 Dur
Örnekte PI sabiti programda 3.14 değerini ifade etmektedir.
Gömülü Değerler (Literal) : Program içerisinde yazılan sayısal, metinsel ve diğer veri tiplerindeki sabit değerler literaldir. Yukarıdaki örnekde verilen PI=3.14 ifadesinde PI bir sabit ike 3.14 gömülü değerdir.
Sayaçlar : Programlamada bir işin kaç kez yapıldığını hesaplamak için sayaçlar kullanılır. Kullanım şeklinde ilk değerini bizim verdiğimiz bir değişkene sayma işleminin gerçekleşeceği satırda bir adım değeri daha eklenir yada çıkartılır.

Örnek Algoritma :

Kod: Tümünü seç

A1 Başla
A2 S=0
A3 X sayısını oku
A4 Eger X=0 ise A7 git
A5 S=S+1
A6 A3 Git
A7 S sayısını ekrana yaz
A8 Dur
Karar yapıları (Decision Structures) : Programda gerçekleşen durumların doğruluğuna göre işlem yaparlar. Örneğin a = 5 ve b = 2 olarak iki değişkenimiz olsun, bunların toplamı 7'e eşit olursa çalışsın, eşit olmazsa başka bir ifade çalışsın.

Kod: Tümünü seç

eğer(a+b=7){
Sonuç 7’dir.
}değilse{
Sonuç 7’den farklıdır.
}
Döngüler : Programda bazı işlemlerin bir sınır veya koşul dahilinde tekrarlanması gerekebilir. Döngüler işlemlerin yinelenmesi anlamına gelir. Programlama dillerinde döngüler genelde aynı işi birden fazla yaptırmak amacıyla işlemi istenilen miktarda tekrarlamak için kullanılır. Yada belli aralıklarda bir şey arattırmak için veya belli aralığa bir şeyler eklemek için aynı işlemi tekrar tekrar yapmaktan kurtulmak için.

Örnek Algoritma :

Kod: Tümünü seç

A1 Basla
A2 X=0, S=0
A3 S>100 ise A7 Git
A4 S=S+1
A5 X=X+S
A6 A3 Git
A7 X Sayısını ekrana yaz
A8 Dur
Operatörler : Programlamadaki en temel işlemler aritmetiksel işlemlerdir. Matematiksel ve benzeri birçok işlem operatörler ile yapılır. Operatörler değişkenler üzerinde çeşitli değişiklikler yapmamızı sağlarlar. Her programlama dilinin kendi yapısında, fazladan operatör bulunabilir.

Aritmetik Operatörler : Aritmetik işlemlerde operatörleri kullanırız. Değişkenler ve veri tipleri üzerinde toplama, çıkarma, çarpma, bölme, atama , üs alma, mod alma gibi cebirsel işlemleri yapmamızı sağlayan operatörlerdir.

Resim

Karşılaştırma Operatörü : Değişken yada iki veri tipi arasında belirli bir koşula bağlı olarak akışın hangi yönde ilerleyeceğine karar vermede kullanılan operatörlerdir. Bu operatörlerin kullanımı sonucunda true yada false değerleri elde edilir.

Resim


Mantıksal Operatörler : Birden fazla karşılaştırmanın yapıldığı yapılarda kullanılmaktadır. Yukarıda incelediğimiz karşılaştırma operatörleriyle bir sayının başka bir sayıdan büyüklüğü, küçüklüğü, eşitliği ve farklılığı gibi kontrolleri yapabilmekteyiz. Aynı şekilde AND (ve), OR(veya), NOT(değil) gibi operatörler ile de mantıksal karşılaştırmalar yapabiliriz. Bu operatörler mantıksal ifadelerden iki veya daha fazlasının mantıksal doğruluk tablolarına göre birleştirilmesini sağlar.

AND Operatörü : && simgesi ile ifade edilir. AND operatörüne göre tüm girişlerin 1 olduğu durumlarda sonuç 1'dir. İfadenin 0 olması durumunda AND işlemide 0 ile sonuçlanacaktır. Boole cebirinde simgesi . dır.

AND için Doğruluk Tablosu

Resim

OR Operatörü : || simgesi ile ifade edilir. OR operatörüne göre girişlerden en az birinin 1 olması sonucu 1 yapmaktadır. Sonucun 0 olabilmesi için ise tüm girişlerin 0 olması gerekmektedir. Boole cebirinde simgesi + dır.

OR için Doğruluk Tablosu

Resim

NOT Operatörü : ! simgesi ile ifade edilir. Bu operatör tek ifade girişine sahiptir. Soluna geldiği ifadenin binary sayı sistemindeki değilini alır. Girişin 1 olması halinde çıkış 0 , 0 olması halinde girişi 1 yapar. Boole cebirinde simgesi ' dır.

NOT için Doğruluk Tablosu

Resim


“AND,OR,NOT“ operatörleri hem matematiksel işlemlerde hem de karar ifadelerinde kullanılırlar.
Bütün şartların sağlatılması isteniyorsa koşullar arasına AND
Herhangi birinin sağlatılması isteniyorsa koşullar arasına OR
Koşulu sağlamayanlar isteniyorsa NOT mantıksal operatörü kullanılır.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Cevapla

“Genel Programlama” sayfasına dön