Algoritma
Bilgisayar yordamı ile bir problem çözüleceğinde sırası
ile şu adımların yerine getirilmesi gerekmektedir.
(a) Problemin
doğru ve kapsamlı olarak tanımlanması.
(b) Problemin
çözümü için etkin bir yöntemin bulunması.
(c) Bu
yöntemden yararlanarak, uygun bir algoritmanın geliştirilmesi ve bunun analizi.
(d) Algoritmanın
bir bilgisayar programlama dili kullanarak bilgisayara uyarlanması.
(e) Programın
denenmesi ve doküman hazırlanması.
Algoritma,
bir problemin çözümü (varsa) için gerekli adımların mantıksal bir sıra ile
yazılmasıdır. Algoritma her zaman doğru olmalı ve pratik bir zaman içerisinde
sona ermelidir. Bir algoritmanın yazılması için, doğal bir dil kullanılabilir
ve sözde-kolama(pseudo-code) yapılabilir. sözde-kodlamada kullanılacak olan
yapılar algoritma geliştiricisi tarafından önceden tanımlanmalı ve algoritmanın
her adımında bu yapılara uyulmalıdır.

Algoritmanın
Tanımı: Bir problemin çözümüne yönelik, işlem basamaklarının belli bir mantık
çerçevesinde adım adım yazılması işlemine ALGORİTMA denir.
Algoritma bir bilgisayar programının
tüm satırlarının Türkçe ifadelerle yazılmasıdır. Bu ifadeler, bir cümle
olabileceği gibi, kısaltılmış ifadeler de olabilir.
Çözüme yönelik farklı algoritmalar
aynı problem için yazılabilir. Önemli olan doğru sonuçlara ulaşabilmektir.
Algoritma problemle ilgili her türlü soruya cevap verebilmelidir. Bir algoritma
üzerinde giriş, işlem ve çıkış bölümlerini taşımalıdır.
AKIŞ
DİYAGRAMI
Bilgisayarda her şeyin adım adım olduğunu daha önce belirtmiştik. Bu
adımları akış diyagramında gösterebiliriz. Akış diyagramı, bir fonksiyonu
uygulamak için gereken işlemlerin şematik bir biçimde gösterilmesidir.
Bilgisayarın, işlemeleri ne şekilde, hangi sırayla yapacağını belirtir. Bu
diyagram ne kadar detaya inerse, o kadar açık yazılmış demektir. Yani biz bir
işlemde her türlü olasılığı düşünüp, ona göre bir diyagram yaparsak, işlemi
bilgisayara o derece açıklamış oluruz. Bilgisayar hiçbir zaman kendi kendine
düşünemediği için, önceden açıklanmamış bir durumla karşılaşınca işlemi
sürdüremez.
Problemin Kavranması: Akış
diyagramı, bize bilgisayarın bir problemi çözerken yürütmesi gereken mantığı
gösterir.yani aslında herhangi bir problem için program yazmadan önce yapılması
gereken bir şeydir. Özellikle çok karmaşık ve uzun programları yazarken, akış
diyagramları bize çok yardımcı olurlar. Bu tip bir program yazmak isteyen bir
kişi, eğer zamandan tasarruf etmek amacıyla akış diyagramını çizmeden işe
girişirse, sonradan yapabileceği bir yanlışı bulup, işin içinden çıkabilmesi
için çok fazla zaman kaybeder.
Bu nedenle en basit programları
yazarken bile, önce akış diyagramını çizmeli, sonra programımızı ona göre
yazmalıyız. Bu şekilde, programı yazmadan önce, kafamızda her şey açık olur.
Her türlü olasılık hesaplanmış, ona göre ayrı yollar saptanmıştır. Bize
yalnızca akış diyagramdaki eylemleri kullanacağımız dilin komutlarına göre,
çevirerek yazmak kalır.
Bunun için, önce problemi kavramamız
gerekir. Yani bu problem bizden ne istiyor, sonucunu bulmak için ne gibi
işlemler yapmamız gerekir, vs. gibi soruların yanıtlarını bulmamız gerekir.
Ancak bu şekilde o problem hakkında bir mantık yürütebiliriz.
Kendimize göre bir mantık koyduktan
sonra, akış diyagramını çizebiliriz. Akış diyagramını çizerken, dikkat etmemiz
gereken bazı noktaları yineleyelim.
Veriler: Verilerin çok iyi bir
şekilde saptanması gerekir. Ne istenenden fazla, ne de istenenden az olmalıdır.
Fazla olmasının, sonucun çıkmasına bir etkisi olmaz. Ama, bilgisayarlarla
yapılan çalışmalarda işlemi en kısa yoldan yapmak, sonuca en kısa yoldan varmak
önemlidir. Bir bilgisayarın ana işlemcisinin kapasitesi ne kadar fazla olursa
olsun, bir anda çok fazla sayıda işlem yapabilmesi açısından her bir programın
olabilecek en az yeri kaplaması gereklidir. Bunu için gereksiz işlemlerden
kaçınmamız gerekir.
Eksik olması ise, çok daha
sakıncalıdır. Bir bilgisayar, eksik verilerle hiçbir zaman bir sonuç çıkaramaz.
Onun için problemi kavramak, gereken
verileri kesin olarak saptamak zorunludur. Veriler saptandıktan sonra, asıl
fonksiyonun yazılmasına geçilir.
Fonksiyon: Fonksiyona
geçtiğimizde daha da dikkatli olmamız gerekir. Çünkü fonksiyon yazılımlarında
çok daha fazla yanlış yapılır. En ufak bir belirsiz nokta bırakılmamalıdır.
Eğer belirsiz bir komut alırsa, ne yapacağını bilemez: bu nedenle de işlemi
durdurur.
Ayrıca değerlendirme noktaları,
değişik yönler ve tutar iyi saptanmalıdır. Yanlış hazırlanmak bir program,
bilgisayarın sonsuza kadar aynı işlemi yinelemesine neden olabilir. Bunu
engellemek için akış diyagramları tekrar tekrar kontrol edilmeli, üzerinde
uygulama yapılmalıdır. Zaten bir diyagramın zayıf noktalarını yakalamanın en
iyi yolu işlemi üzerinde uygulamak, birkaç örnek çözmektir. Bu şekilde daha
öncesinden gözden kaçan belirsiz noktalar, eksiklikler ve yanlış komutlar
yakalanabilir. Böylece bilgisayarın işlemi durdurması, ya da sonsuza kadar
yinelenmesi önlenmiş olur. Bu ön aşamada kontrol etmek için ayıracağımız birkaç
dakika sonradan bizi saatlerce düşünüp işin yanlış tarafını aramaktan
kurtarabilir. Bunun için, özellikle ilk çalışmalarda zamandan tasarruf etmeye
çalışmamalı, programı yazıp bilgisayara vermeden önce tekrar tekrar kontrol
etmeliyiz.
Sonucun Alınması: Fonksiyon
kısmı bittikten sonra akış diyagramının son bölümüne geçilir. Bu bölümde sonuç
çıkarılır ve herhangi bir terminalden alınması sağlanır. Çıkışta, yalnızca
sonucu almak yeterli olmayabilir. Örneğin bir işlemi değişik koşullarda,
değişik verileri uygulamak istemişsek, o verileri de almamız gerekir. Bu
şekilde sonuçlar karışmamış olur; ve yine programda herhangi bir yanlış varsa
daha kolay bir şekilde açığa çıkar. Çünkü bazen bir programda yanlışlar olsa
bile, sonuç çıkabilir. Yalnız bu sonuçlar mantık dışı olabilir. Eğer verilerle
sonuçlar birlikte çıkarsa, kısa bir kontrolle yanlış bir yer olup olmadığı
anlaşılabilir.
Sonuçla birlikte alınacak çıkışlar saptandıktan sonra çıkış diyagramı
bitirilir. Son kontroller de yapıldıktan
sonra, sıra program yazmaya gelir. Çıkış diyagramında kullanılan değişik
şekillerdeki kutucukların ne anlama geldiğini açıklayalım.
|
|||
![]() |
|||
|
|||

|
|||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||
|
|||||||||||||||||||||








Hiç yorum yok:
Yorum Gönder