Algoritma ve Özellikleri

Etiketler :
Algoritma, belirli bir problemi çözmek veya belirli bir amaca ulaşmak için çözüm yolunun adım adım tasarlanmasıdır. Bir problemi tanımlama, nedenini açıklama, çözümü için alternatif yolları belirleme ve bu yollar arasından en uygun olanı uygulama süreçlerinin tamamı “problem çözme” olarak adlandırılır. Algoritma, bir problemi çözmek için gerekli yolun basit, net ve belirli bir sıraya göre tasarlanmış hâlidir. Matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesi algoritma içinde yer alır. Genellikle bilgisayar programlamada algoritma sıklıkla kullanılır ve tüm programlama dillerinin temeli algoritmaya dayanır. 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ı algoritmada oldukça önemlidir. Bir problem çözülürken algoritmik ve sezgisel (herustic) olmak üzere iki yaklaşım vardır. Algoritmik yaklaşımda da çözüm için olası yöntemlerden en uygun olan seçilir ve yapılması gerekenler adım adım ortaya konulur. Algoritmayı belirtmek için; metinsel olarak düz ifade ve akış diyagramı olmak üzere 2 yöntem kullanılır. Algoritmalar bir programlama dili vasıtasıyla bilgisayarlar tarafından işletilebilirler. 
Bilinen ilk algoritma, el-Hârizmî tarafından "Hisab el-cebir ve el-mukabala" kitabında sunulmuştur. Algoritma sözcüğü de el-Hârizmî'nin isminin Avrupalılarca telaffuzundan doğmuştur. Çok çeşitli algoritma şekilleri vardır. Arama algoritmaları, bellek yönetimi algoritmaları, bilgisayar grafiği algoritmaları, çizge algoritmaları, genetik algoritmalar, kripto algoritmaları, bilgisayar ve matematik algoritmaları, optimizasyon algoritmaları, sıralama algoritmaları,  veri sıkıştırma algoritmaları, öklid algoritması gibi çeşitli algoritma tipleri vardır. algoritma, herhangi bir görevi tamamlamanın temel yolunu ve kurallarını özetleyen haritalardır.
Algoritmaların kullanımı hayatın her alanında giderek yaygınlaşmaktadır. İş yerlerindeki performans değerlendirmelerinden bankaların kredi işlemlerine, reklam ve satış önerileri, algı yönetimi, sosyal medya platformları ve güvenlik sistemleri gibi hayatın her alanında algoritmalar etkili olmaktadır. Algoritmik düşünme veya bir sorunu çözmek için net adımlar tanımlama yeteneği, yalnızca teknolojide değil hayatın hemen her alanında önemli bir avantajdır. Farkında olmasak bile, algoritmaları ve algoritmik düşünmeyi her zaman hayatımızda kullanırız. Hayatımızda karşılaştığımız tüm problemelrin çözümünde belli basamaklar eşliğinde çeşitli çözüm adımları ve karmaşık algoritmaları farkında olmadan uygularız. Bütün bu düşünce biçimlerinin yazıya dökülerek belli bir sistem halinde sunulması, bilgisayar programcılığının temelini oluşturmuş ve gittikçe yaygın hale gelmiştir.
ÖRNEK: Klavyeden girilecek iki sayıyı toplayıp sonucu ekrana yazacak programın algoritmasını yazın
1.adım: BAŞLA
2.adım: A sayısını oku (ya da OKU:A) [klavyeden bir değer okunur ve A adlı değişken içinde saklanır]
3.adım: B sayısını oku (ya da OKU: B) [klavyeden bir değer okunur ve B adlı değişken içinde saklanır]
4.adım: TOPLAM = A + B işlemini yap [A ve B değişkenlerindeki değerler toplanır. Elde edilen sonuç TOPLAM adlı değişkende saklanır]
5. adım: TOPLAM değerini ekrana yaz (ya da YAZ: TOPLAM)
6. adım: BİTİR (algoritma sonlandırılır. SON, DUR ifadeleri de kullanılabilir.)
Bir algoritmada, her adım mutlaka belirleyici olmalıdır. Hiçbir şey şansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma kesinlikle sonlanmalıdır.Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek şekilde detaylı olmalıdır. Algoritmada değişken kavramı önemlidir. Dışarıdan alınan veya bir işlem sonucunda elde edilen verilerin saklandığı bellek (hafıza) birimlerine değişken denilir.Bu bellek birimlerine (değişkenlere) belirli bir isim verilir ve daha sonra bu isimle bellek birimi (değişken) içinde bulunan değer tekrar tekrar kullanılabilir.Değişken isimleri verilirken Latin alfabesindeki A-Z veya a-z arası büyük ve küçük harflerden (Türkçe karakter içermeyen (ş,ğ,ı,ö,ü,ç) 26 harf ve 0-9 rakamları ve algoritma operatörleri (+,-,*, ^, ) kullanılabilir.
Bazı değer atama örnekleri aşağıdaki gibi sunulmuştur: 
SAYI = 2 [SAYI değişkeninin içine 2 değerini koy] 
SAYI = 5 [SAYI değişkeninin içine 5 değeri atandı. Bir önceki değer olan 2 silindi] 
SAYI = SAYI + 1 [SAYI değişkenin içindeki değer 5’tir. Eşitliğin sağ tarafındaki toplama işlemi yapılırsa 5 + 1 = 6 sonucu elde edilir. Elde edilen toplama işlem sonucu yine SAYI değişkenine atanmıştır. SAYI değişkeninin yeni değeri 6 olmuş ve eski değer olan 5 silinmiştir.] 
TOPLAM = SAYI + 5 [Eşitliğin sağ tarafındaki işlem sonucu 6 + 5 = 11 olarak bulunur. Elde edilen 11 sonucu TOPLAM adlı değişkene aktarılır. TOPLAM değişkeninin değeri artık 11 olmuştur.]
 
 
Matematiksel algoritma operatörleri: 
Toplama a + b 
Çıkarma a - b 
Çarpma a * b 
Bölme a / b 
Üs alma a ^ b 
Mod alma a % b (bir sayının başka bir sayıya bölümünden kalanı verir.
Değişkenlere değer atama a=5 Örneğin burada a = 5 denildiğinde bu, “5 değerini a değişkenine ata” anlamına gelir.
 
Matematiksel işlemler içeren kümenizin içindeki matematiksel işaretlerin bir işlem önceliği vardır. İşlem Önceliği Sırası: 
1. Parantezler ( ) 
2. Üs alma a ^ b 
3. Çarpma ve bölme a * b veya a / b  
4. Toplama ve çıkarma a + b veya a - b 
 
Karşılaştırma Operatörleri:Bu operatörler kullanılarak değişkenler ya da sabit değerler arasında yapılan karşılaştırmalar doğru ya da yanlış şeklinde bir sonuç döndürür. Örneğin 5 > 8 ifadesi yanlış sonucunu döndürür. 3 <= 6 ifadesi doğru sonucunu döndürür.  
Karşılaştırma Operatörleri: 
Eşittir == 
Eşit değildir != (ya da <> kullanılabilir.) 
Büyüktür >  
Küçüktür < 
Büyük eşittir >=  
Küçük eşittir <=
Değil ! 
İşlem gruplama ()
 
Mantıksal Operatörler: Programlarda, birden fazla karşılaştırma ifadesi bir anda kullanılmak istenebilir. Bu gibi durumlarda mantıksal ifadeler kullanılması zorunludur. 
VE  &&  
VEYA  | | 
Mantıksal önermelerde matematikteki mantık kuralları geçerlidir. VE ile birleştirilmiş ifadelerde eğer bütün ifadelerden ayrı ayrı 1 değeri dönüyorsa birleştirilmiş ifadeden de 1 değeri döner. Geri kalan durumlarda 0 sıfır değeri döner. VEYA ile birleştirilmiş ifadelerde en az bir ifadeden 1 değeri dönüyorsa birleştirilmiş ifadeden de 1 değeri döner. Bütün ifadelerden 0 değeri dönüyorsa birleştirilmiş ifadeden de 0 değeri döner. 
 
Örneğin; (5>6 && 2<=7) şeklinde kurulan bir mantıksal önermede;
&& → VE anlamına gelir
5>6 → Bu yazılan yanlış olduğundan ifadeden yanlış sonucu (0) döner.
2<=7 → Bu ifadeden doğru (1) sonucu döner.
Sonuç olarak bu ifade (yanlış VE doğru) ya da (0 VE 1) halini alır. Mantıkta verilen doğruluk tablosuna göre  (0ve1) sonucu bu ifadeden 0 (yanlış) sonucu döner.
 
Örneğin; A=5, B=18 olsun. Bu sayılara göre aşağıdaki durumları inceleyelim.
(A== B && B > 5) → 1 (5=18 VE 18>5 olduğundan 0 VE 1 yanlış)
(2 <> A || B > 15) → 1 (doğru)
(4 > 6 || B <> 18 || A > 3) → 1 (doğru)
(A == 5 && B >= 18 && A==2) → 0 (yanlış)
(B < 20 && A < 6 && 2+A == 3) → 0 (yanlış)
(A == B || B < 5) → 0 (yanlış) 

Sözde kod, bilgisayar bilimleri alanında algoritmalar ve programlar oluşturulurken ve aktarılırken kullanılan, günlük konuşma diline benzer ve belli bir programlama dilinin detaylarından uzak anlatımlardır. Programın yapısının ve çalışma mantığının yüksek seviyeli bir biçimde, gerektiği yerde doğrudan doğal dil cümleleriyle, ama yine de bir program yapısı ve akışı içinde anlatılmasıdır. Böylelikle sözde kodu okuyan ya da yazan birisi, programlama dillerinin sözdizim detaylarına dikkat etmek zorunda kalmadan, programın ve algoritmanın çalışma mantığını düşünebilir. 
Sözde kod için önceden üzerinde karar kılınmış kesin bir sözdizim yoktur. Sözde kod ile bir programı anlatan kişi, uygun gördüğü programlama dili yapılarının ve işlevlerinin sözde kod içinde bulunduğunu varsayabilir. Amaç, derleme işleminden hatasız çıkacak bir program oluşturmak değil, programın çalışma mantığını anlamak olduğu için, sözde kod yazarken uygun görülen herhangi bir soyutlama düzeyi kullanılabilir. Bazı sözde kodlar programlama dilleriyle büyük ölçüde örtüşürken, bazıları sadece program biçiminde yazılmış düz yazı olabilir. 
Algoritmada akış diyagramlarından yararlanılarak çözüm basamakları adımlandırılır. Akış diyagramı, algoritmaların şekil ve sembollerle ifade edilmesidir. Akış şemasında her adım birbirinden farklı anlamlar taşıyan şekillerden oluşur ve adımlar arasındaki ilişki oklar ile gösterilir. Kodlanacak programın akış şemasının oluşturulması, sürecin daha kolay çözümlenmesine yardımcı olur. 

0 yorum:

Fayda vermeyen ilimden Allah'a sığınırım. “Allah'ım; bana öğrettiklerinle beni faydalandır, bana fayda sağlayacak ilimleri öğret ve ilmimi ziyadeleştir."

İlim; amel etmek ve başkalarıyla paylaşmak içindir. Niyetimiz hayır, akıbetimiz hayır olur inşallah. Dua eder, dualarınızı beklerim...

En Çok Okunan Yazılar

Aşağıdaki Yazılar İlginizi Çekebilir!!!