Etiketler :
akış diyagramı
algoritma
kodlama
mantık
yazılım
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...