avatar_umiter

Problem Çözme ve Algoritmalar

Başlatan umiter, 17 Ekim 2013, 23:28:35

umiter

Herkese Merhaba,

Bir süredir yoğun iş temposu sebebi ile uzak kaldım, birçok kez tekrarlanmış olmasına rağmen net bir bütünlük içinde yer almayan Problem Çözme ve Algoritmalar konusuna teorik açıklama getirmek istedim, umarım faydalanabileceğiniz bir içerik olur.

Mikrodenetleyiciler kendisine sorulan sorulara hemen cevap veren, bir sürü problemi çözen bir aygıt değildir.  Mikrodenetleyiciler ile yapılan her tür iş, ilk önce insan aklının süzgecinden geçiyor sonra insanlar tarafından etraflıca tasarlanıyor, planlanıp programlanıyor.

ilk yapılan bilgisayarın karşına geçip hemen
en eski soruyu sormuşlar "Tanrı var mı".
Bilgisayar kısa bir düşünmeden sonra "Evet artık var". demiş.

Bu nedenle, önce mikrodenetleyiciye problemin çözümü öğretilmelidir. Fakat bunun için bizim problemi çözmemiz gerekir.  Ve daha sonra bir programlama dili ile bu çözüm mikrodenetleyiciye aktarılmalıdır.

Problem Çözme ve Algoritmalar

Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır.  Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayırılmalıdır.

Descartes tarafından "Discourse on Method" isimli kitabında anlatılan problem çözme tekniklerine göre;

1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.
2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.
3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.
4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

Algoritmalar

Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
İ.S. 9.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. 
Algoritma Alharezmi'nin Latince okunuşudur.

Her algoritma aşağıdaki kriterleri sağlamalıdır.

1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
2. Çıktı: En azından bir değer üretilmeli.
3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.

Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar.

Problem Çözme ve Algoritmalarda sistematik yöntem, unutulmamalıdır ki risk faktörlerini barındırır, olasılık gibi durumlar göz önüne alındığında acele yapılmayan temeller üzerinde şekillenen her çözüm bu risk en aza indiren önemli bir unsurdur.

Saygılarımla.
Bilgi elde edilmesi zor,  tüketilmesi kolay bir bulamaçtır.

umiter

#1
İşin teori kısmından sonra bir sonraki adımda akış diyagramları gelir;

Akış diagramları hemen hemen tüm programlama dillerinde kullanılan bir metoddur, kağıt üzerine düşüncemizin aktarılması, problemi çözebilmek için düşünme ortamını semboller ile ifade etmemizi sağlar.

Bunu semboller, geometrik şekiller ve okları kullanarak hazırlarız. Ekte temel sembolleri bulabilirsiniz.
Bu sembolleri istediğiniz şekilde renklendirebilirsiniz, semboller içine amacına uygun notlar alabilirsiniz.





Bilgi elde edilmesi zor,  tüketilmesi kolay bir bulamaçtır.

Powered by EzPortal