Algoritma Bilgisayar yordamı ile bir problem çözüleceğinde çözüleceğinde sırası sırası ile şu adımların yerine getirilmesi getirilmesi gerekmektedir.
(a) (b) (c) (d) (e)
Problemin doğru ve kapsamlı olarak tanımlanması. Problemin çözümü için etkin bir yöntemin bulunması. Bu yöntemden yararlanarak, uygun bir algoritmanın geliştirilmesi ve bunun analizi. Algoritmanın bir bilgisayar programlama dili kullanarak bilgisayara uyarlanması. uyarlanması. 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ılabil yapılabilir. ir. sözde-kod sözde-kodlama lamada da kullanılac kullanılacak ak olan yapılar yapılar algoritma algoritma geliştiric geliştiricisi isi tarafında tarafındann önceden tanımlanmalı ve algoritmanın her adımında bu yapılara uyulmalıdır.
Algoritmanın Tanımı: Bir problemin problemin çözümüne çözümüne yönelik, yönelik, işlem basamakların basamaklarını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. 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. 1
AKIŞ DİYAGRAMI Bilgisayarda her şeyin adım adım olduğunu daha önce belirtmiştik. Bu adımları akış diyag diyagram ramınd ındaa göste göstereb rebilir iliriz. iz. Akış Akış diyagr diyagramı amı,, bir fonksi fonksiyon yonuu uygula uygulamak mak için için gereke gerekenn işlemlerin işlemlerin şematik şematik bir biçimde biçimde gösterilme gösterilmesidir. sidir. Bilgisaya Bilgisayarın, rın, işlemeleri işlemeleri ne şekilde, şekilde, hangi hangi sıray sırayla la yapaca yapacağın ğınıı belirt belirtir. ir. Bu diyagr diyagram am ne kadar kadar detay detayaa inerse inerse,, o kadar kadar açık açık yazılm yazılmış ış demektir. Yani biz bir işlemde her türlü olasılığı düşünüp, ona göre bir diyagram yaparsak, işlemi işlemi bilgis bilgisay ayara ara o derec derecee açıkl açıklamı amışş oluruz oluruz.. Bilgis Bilgisay ayar ar hiçbir hiçbir zaman zaman kendi kendi kendin kendinee düşünemediği 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 zaman zamandan dan tasarr tasarruf uf etmek etmek amacıy amacıyla la akış akış diyag diyagram ramını ını çizmed çizmeden en işe girişi girişirse rse,, sonrad sonradan an yapabileceği 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, sonucu sonucunu nu bulmak bulmak için için ne gibi gibi işleml işlemler er yapmam yapmamız ız gereki gerekir, r, vs. gibi gibi sorula soruların rın yanıt yanıtlar larını ını bulmamız gerekir. Ancak bu şekilde o problem hakkında bir mantık yürütebiliriz. Kendim Kendimize ize göre göre bir mantık mantık koyduk koyduktan tan sonra, sonra, akış akış diyagr diyagramı amını nı çizebi çizebiliri liriz. z. Akış Akış diyagramını çizerken, dikkat etmemiz gereken bazı noktaları yineleyelim. Veriler: Verilerin çok iyi bir şekilde saptanması gerekir. Ne istenenden fazla, ne de istene istenende ndenn az olmalı olmalıdır dır.. Fazla Fazla olması olmasının nın,, sonuc sonucun un çıkmas çıkmasına ına bir etkisi etkisi olmaz olmaz.. Ama, 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ç sonuç çıkaramaz. çıkaramaz. Onun için problemi problemi kavramak, kavramak, gereken gereken verileri kesin olarak saptamak saptamak zorunludur. Veriler saptandıktan sonra, asıl fonksiyonun yazılmasına geçilir. Fonksiyon: Fonksi Fonksiyon yonaa geçtiğ geçtiğimi imizde zde daha daha da dikka dikkatli tli olmam olmamız ız gerek gerekir. ir. Çünkü Çünkü fonk fonksi siyo yonn yazı yazılı lımla mları rınd ndaa çok çok daha daha fazl fazlaa yanl yanlış ış yapı yapılı lır. r. En ufak ufak bir bir beli belirs rsiz iz nokt noktaa bırakılmamalıdır. Eğer belirsiz bir komut alırsa, ne yapacağını bilemez: bu nedenle de işlemi durdurur. Ayrıca Ayrıca değerlend değerlendirme irme noktaları, noktaları, değişik yönler yönler ve tutar iyi saptanma saptanmalıdır. lı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 uygula uygulama mak, k, birkaç birkaç örnek örnek çözme çözmekti ktir. r. Bu şekil şekilde de daha daha öncesi öncesinde ndenn gözden gözden kaçan kaçan belirs belirsiz iz noktalar, eksiklikler ve yanlış komutlar yakalanabilir. Böylece bilgisayarın işlemi durdurması, ya da sons sonsuz uzaa kada kadarr yine yinele lenm nmes esii önle önlenm nmiş iş olur olur.. Bu ön aşam aşamad adaa kont kontro roll etme etmekk için için ayıracağımız birkaç dakika sonradan bizi saatlerce düşünüp işin yanlış tarafını aramaktan 2
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 Sonuçla birlikte birlikte alınacak alınacak çıkışlar çıkışlar saptandıkta saptandıktann sonra sonra çıkış diyagramı diyagramı bitirilir. bitirilir. Son kontroller de yapıldıktan yapıldıktan sonra, sıra program program yazmaya yazmaya gelir. Çıkış diyagramında diyagramında kullanılan değişik şekillerdeki kutucukların ne anlama geldiğini açıklayalım.
Başla ve bitir El ile girdi kutusu İşlem kutusu Bağlayıcı Karar kutusu
Ekran çıktısı
Döngü kutusu
Bağlayıcı oklar
Girdi, çıktı
Yazıcı çıktısı 3