Algoritma Nedir?

'GÖKBÖRÜ

Özel Üye
16 Ağu 2012
11,083
16
Belirsiz.
Algoritma genel anlamda matematiksel işlem olan mantık konusuna ait bir terim olarak tanımlanır. Tam olarak amacı ise yapılan bir işin doğru olarak yapılabilmesi için izlenmesi gereken adım sırasıdır. Aslında insanlar yaptıkları tüm işleri bir algoritma sırası ile mantıklı hale getirir. Eğer yapılan bir işte algoritmik sıra yok veya izlenmiyorsa yapılan işin sonu büyük bir ihtimalle iyi bitmeyecektir. Bundan dolayı eğer bir mühendislik veya matematik dalına ait bir meslek seçmişseniz dolaylı yada dolaysız ilk göreceğiniz konulardan biri de algoritma ve algoritma çeşitleridir. Algoritma nedir? sorusunun tam olarak cevaplanması için belkide bir örneği başvurulması en doğrusudur. Bundan dolayı aşağıdaki örneği incelemek sizin açınızdan önemli olacağını düşünmekteyim.

Bir mühendislik çalışmasında yapılacak ilk işlem işin algoritmasını (işlem sırasını) çıkarmak olacaktır. Bu yüzden matematik mühendisliği gibi meslek gurupları ortaya çıkmıştır. Mühendislikte nasıl uygulandığını anlamak için şu örneği inceleyin.


Kod:
Öyle bir makine yapılacak ki start düğmesine basıldığında çalışacak, stop düğmesine basıldığında duracak ve bir insan makine alanında tehlikeli bir bölgeye girerse kendisini otomatik olarak durduracak.
İşte böyle bir uygulamada ilk önce işlem sırası oluşturulursa makine için gerekli malzemeler, nasıl çalışacağı, nasıl bir yol izlemesi gerekir gibi pek çok sorunu tespit edilir ve doğru işlemleri sırasıyla uygulanabilir. Aksi taktirde makine yapılırken sürekli yeni şeyler eklemek yada çıkarmak durumunda kalınabilir. Hatta bu süreç tüm işin baştan masa üstünde tartışılmasını gerektirebilir. Bu makinenin algoritmasını grafiksel olarak basitçe hazırlayalım.

algoritma-ornek.png


Yukarıda basit bir algoritma örneği verdikten sonra tekrardan yolumuza devam edelim.Algoritma sistemleri mühendislik alanında en çok yazılımcılar tarafından kullanılır. Eğer bir yazılım uygulamasına algoritma oluşturmadan başlarsanız yaptığınız işlemlerin bir çoğu boşa gidebilir ve saatlerinizi boş boşuna harcamış olursunuz. Artık bu kısımdan sonra algoritma temelleri ve algoritma örnekleri ile devam edeceğiz.


Programlamada Algoritma Temelleri

Eğer bir program geliştirmeye karar verdiyseniz başarılı bir başlangıç ve mutlu bir son için sırayla şu adımları izlemeniz en doğrusu olacaktır.

Değişkenleri Belirleme

Programın akışı için dışarıdan girdi olarak alınacak verilerin tamamını belirlemek gerekir. Bu sayede programın temelleri oluşturulmuş olur. Değişkenler programın çalışmasını etkileyen en temel bileşenlerdir. Bundan dolayı başarılı bir şekilde değişkenleri belirlemek oldukça önemlidir.

Algoritma Oluşturma

Tüm değişkenleri belirledikten sonra yapılması gereken adım tabi ki de onları doğru şekilde sıralamak olmalıdır. Yukarıda zaten algoritmayı uzunca bir şekilde anlattım. Yapılacak olan işlemleri doğru bir şekilde sıralamak algoritma oluşturmak için yeterli olacaktır. Algoritma oluşturulurken basit ve problemi en kısa yoldan çözüme ulaştırması için çalışılmalıdır.

Akış Diyagramı

Yukarıda verdiğim makine örneğinde zaten bir akış diyagramı oluşturmuştum. Akış diyagramı, yapılacak olan işin algoritması çıkarıldıktan sonra şema gurupları ile gösterilmesidir. Oluşturulan akış diyagramı ile karmaşık algoritmalar görselleştirildiği gibi mühendislikle pek ilişkisi olmayan insanlar içinde anlaşılır hale getirilir.

Akış Diyagramı Sembolleri

Akış diagramı oluşturulurken kullanılan sembollerin standart geometrik şekilleri vardır. Bu şekiller yardımı ile işlemler anlaşılabilir. Aşağıda paylaştığım görselde akış diyagramı oluştururken kullanılan sembolleri görebilirsiniz.

algoritma-kume-semalar%C4%B1.png


Algoritma Örnekleri

Yazı boyunca belli başlı örnek algoritma işlemleri gösterdim. Bu bölümde ise aşağıda paylaştığım örneğin algoritmasını (işlem sırasını) çıkaracağım ve sonrasında akış diyagramını çizerek yapılması planlanan bir programın nasıl hazırlanacağını göstereceğim. Örnek olarak ise daha önceki yazılarımdan birinde anlattığım C# faktöriyel hesaplama programının algoritmasını hazırlayarak yapacağım.


Soru: K!/L!(K-L)! işleminin kusursuz bir şekilde çalıştıracak bir algoritma hazırladıktan sonra akış diyagramı ile gösterin.

Akış diyagramından önce bir algoritma hazırlamak gerektiğinden yukarıda bahsetmiştim. Bu algoritma sırası hazırlanırken işlemler genellikle A0,A1,A2… gibi yada 1.İşlem, 2.İşlem,3.İşlem… gibi isimlerle sınıflandırılırlar. Ben A0,A1… yapısını genellikle kullanmayı tercih ettiğimden bu yazıda bu şekilde kullanacağım.

Örneğin Algoritma Sırası

A0 → Başla
A1 → K değerini 1 yap
A2 → L değerini 1 yap
A3 → K değeri ne girildi?
A4 → L değeri ne girildi?
A5 → K!/L!(K-L)! işlemini yap
A6 → Pay paydadan büyük mü?
A7 → büyükse uyarı mesajı gönder
A8 → değilse sonucu yaz.
A9 → Dur

faktoriyel-ak%C4%B1%C5%9F-%C5%9Femas%C4%B1.png


Akış diyagramının aşağıda çizilmiş resmini görebilirsiniz. Bu çizimi Photoshop, eDraw hatta AutoCad gibi çizim programlarıyla yapabilirsiniz. Eğer çok yetenekli biriyseniz Paint programını bile deneyebilirsiniz Yada en basitinden bir kağıt ve kalem kullanarak hazırlamayı deneyebilirsiniz.

Hangi yazılım dilini kullanırsanız kullanın algoritmaya ihtiyacınız var. Yazılıma başlamadan önce kurgunuzu tam olarak oturtmalısınız. Algoritma’nın bir anlamı olmak zorundadır. Eğer kurgusuz yola çıkarsanız, size hiçbir rüzgar fayda edemez




Her Şeyin En Mühim Noktası,Başlangıcıdır.
 
Son düzenleme:

hakanh40

Üye
24 Şub 2014
131
0
çatalca
Kardeşimizin yapdığı konu çok yaralı olmuş emeğine saygılarım sonsuz elerine sağlık
 
Son düzenleme:

'Black-Life

Kıdemli Üye
13 Mar 2013
2,543
0
37
Teşkilat
Eline Emeğine Sağlık Paşam Unutmayın " Her Şeyin En Mühim Noktası,Başlangıcıdır. " Burda İse Başlangıçta Algoritma Oluyor :) Yeni Başlıyanlara Faydalı Tebrik Ederim Paşam
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.