Merhaba arkadaşlar “Algoritma ve Programlama” yazı serisinin 2.yazısıyla “Adım Adım Eğitim”e devam devam ediyoruz.Okumayanlar için serinin ilk yazısına gitmek için TIKLAYINIZ.
Zaman kaybetmeden konumuza dönelim.
Algoritma Tasarımı
Elimizdeki problemin çözülebilmesi için öncelikle problemi çözecek adımları liste halinde belirlememiz gerekir. Problemin çözülmesi için yapılması gerekenleri sıralı mantıksal adımlar haline döktüğümüzde sorunun çözümü için sırayla adımlar aşağı doğru uygulanarak ilerlenir.Herhangi bir adımdaki işlemi hatalı veya hatasız yaparsak o adımdaki uygulanacak işlemin sonucu olan komutlardan birini elde ederiz ve buna göre sıralı maddelerimize devam eder yada oluşabilecek soruna çözüm getiririz.Birazdan işleyeceğimiz uygulamalarda bunu daha iyi anlayacağız.Az öncede bahsettiğimiz gibi problemin çözümü için sıralı maddeler oluşturmamız gerektiğini söylemiştik.Şöyle bir ele aldığımızda genelde gündelik hayattanda bileceğimiz gibi bir sorun başlar ve biter.Aynı mantık algoritmamızı tasarlarken de geçerlidir. Algoritmamızın adımlarını yazacak olursak ilk komut “Başla” ve son adım ise “Bitti veya Dur” komutundan oluşur.
Biz yukarıda sıralı mantıksal adımlar halinde problemimizi çözebileceğimizi ifade ettik.Ama algoritmamızı ifade ederken sıralı mantıksal adımların dışında akış diyagramları(şekiller) ile de ifade etmeyi seçebiliriz .Ama genel olarak bir algoritmanın iskeleti genel bir yapıya sahiptir.Bunlar ;
- Başla
- Problemin çözümünde kullanılacak gereksinimlere göre tanımlamalar
- Problemin çözümü için yapılacak olan işlemler
- Problem çözümü için yapılan işlemlerin sonucunun kullanıcıya sunulması
- Bitti veya Dur
Önceki yazımızda da söylediğimiz gibi bütün program dillerinin temeli algoritmaya dayanır ve bunlarıda 5 maddede listelemiş olduk. Algoritmanın genel yapısını daha detaylı inceleyecek olursak ;
“1.Başla”
Çözeceğimiz problem için hazırlayacağımız algoritmanın nerede başladığını ilk adımımızda “Başla” komutuyla belirtiriz.
“2.Problemin çözümünde kullanılacak gereksinimlere göre tanımlamalar”
Adından da anlayacağımız gibi problemimizin çözümü için kullanmamız gereken unsurları sonraki adımlarda işleme sokabilmemiz için bu adımda tanımlarız. Ayrıca bu adımda ileriki konularda işleyeceğimiz “Değişkenler” ve “Sabitler” i de kullanacağız.Örneğin ; 2 sayının toplanacağı bir algoritma tasarlayacak olalım.Bu hesaplamada toplanacak iki sayıya ve sonucun aktarılacağı başka bir sayıya ihtiyacımız vardır. Sonuç için ihtiyacımız olan toplamda bu 3 sayıyı , bu adımda tanımlayacağız.
“3.Problemin çözümü için yapılacak olan işlemler”
2.adımdaki tanımlamalarımızı yaptıktan sonra artık 3.adımda problemimizin çözümü için belirlediğimiz gerekli işlemlerimizi yapabiliriz.Bu adımda yapacağımız işlemleri önümüzdeki konularda işleyeceğimiz “Operatörler” yardımıyla gerçekleştireceğiz.Ve bu adımda yapacağımız matematiksel işlemleride önümüzdeki konularda işleyeceğimiz “İşlem Önceliği” konusunda öğreneceğiz. 2.adımda verdiğimiz örneği bu aşamada ele alalım. İhtiyacımız olan 3 sayıyı 2.adımda tanımlamıştık. Bu adımda ise ilk iki sayı toplanır ve sonuç üçüncü sayıya aktarılır.Unutulmamalıdır ki problemimizin çözümü için tüm işlem ve hesaplamalar bu kısımda yapılır.
“4.Problem çözümü için yapılan işlemlerin sonucunun kullanıcıya sunulması”
Önceki adımda yaptığımız tüm hesaplamaların sonucunu programcının insiyatifine göre bir yazıcı çıktısı yada ekrana yansıyacak bir mesaj halinde kullanıcıya sunulması bu adımda gerçekleşir. 3.adımda iki sayı toplanmış ve elde edilen sonuç üçüncü bir sayıya aktarılmıştır. Programdan istenilen iki sayının toplamından elde edilen sonucun kullanıcıya gösterilmesidir.Bu adımın görevi ise; elde edilen sonucun ekrana yazdırılarak, kullanıcıya sonucun sunulması olacaktır.
“5.Bitti veya Dur”
Algoritmamızın bittiğini bu komut ile ifade ederiz.Bu adımdan sonra yazılan tüm diğer adımlar işlevsel özellik kazanmayacak ve geçersiz olacaktır.
Algoritmamızın temel yapısınıda anlattıktan sonra şimdi uygulamaya geçebiliriz.
Uygulama
İki sayının toplamını algoritma ile yapalım.İhtiyacımız olan 3 adet sayı ve sayıları klavyeden okutmak için sayıyı oku ve toplamak için topla sözcüğü bizim için gereklidir. Gereksinimlerimizi de bildiğimize göre uygulamaya geçelim.
- Başla
- Birinci sayıyı oku
- İkinci sayıyı oku
- İki sayıyı topla
- Sonucu ekrana yazdır
- Dur
Ama bu örneği sınırlı bir dil diğer tabiriyle kaba kod ile de yazabiliriz ki kısa ve kolay yol (anlaşılabilir) bizim için tercih sebebidir ve genellikle de şimdi yazacağımız algoritma modelini kullanacağız.
- Başla
- X sayısını oku
- Y sayısını oku
- Z=X+Y işlemini yap
- Z’yi ekrana yazdır
- Dur
(Bu algoritmada matematiksel bir operatör olan toplama (+) operatörünü örnek verebilmek için kullandık. İleriki zamanlarda daha detaylı işleyeceğiz.)
Bu algoritmada 2. ve 3. maddeleri “Problemin çözümünde kullanılacak gereksinimlere göre tanımlamalar”, 4.maddeyi “Problemin çözümü için yapılacak olan işlemler”, 5.maddeyi “Problem çözümü için yapılan işlemlerin sonucunun kullanıcıya sunulması”, olarakta nitelendirebiliriz. Bahsettiğimiz diğer bir ifade şekli olan akış diyagramlarıyla örnek vermemiz bu aşamada sağlıklı olmaz.Çünkü bir ön gereklilik olan “Döngüler” ve “Operatörler” konularını bilmek akış diyagramlarıyla ilgili örnekleri anlamamızda daha iyi olacaktır.Bu yüzden Akış Diyagramları ile ilgili tanımlamaları ve örnekleri ileriki konularda göreceğiz.Fakat şimdiden merak edenler için ufak bir tanım ve örnek koyalım.
Not:Yukarıdaki tanımları bir kez daha okuyarak aşağıdaki örneği daha iyi anlayabilirsiniz.
Şekillerin tanımları:
Örnek:
Edit:En son ki algoritma lamba anahtarının açık konumda olduğunu düşünerek tasarlanmıştır.
Yazı dizimizin sıradaki konusu uzun bir konu olacak olan “Terimler ve Operatörler” de görüşmek dileğiyle.İyi çalışmalar dilerim.
Facebook • Twitter •
[…] Eğitimin ikinci yazısı olan “Algoritma Tasarımı ve Uygulaması”nı okumak için TIKLAYINIZ. […]
Yazınızı ilgi ile okudum, umarım devamı gelir; iyi çalışmalar.