19 Ağustos 2013 Pazartesi

Program Akışı & Algoritma

Program Akışı: Program geliştiricisi, programı herhangi bir kodla yazmaya başlamadan önce, elde ettiği verilerin mantıksal olarak sıralandığı bir taslak oluşturur. Bu taslakta programın fonksiyonunu nasıl yerine getireceğini genel olarak belirleyen işlem basamakları yer almaktadır. Program akışı, verilerin işlem basamaklarının mantıksal dizi şeklinde birbirine bağlanmasıdır.

Program akışı, akış diyagramında (flow chart) resim ve sembollerle şematik olarak gösterilmektedir. Bu şekilde hazırlanmış program akışı, program geliştiricilerine program kodunun yazılmasında, büyük kolaylık sağlar. Bu yönüyle program akışını, mimarların inşaat faaliyetlerine başlamadan önce hazırladıkları proje şemasına benzetmek mümkündür. Program akışı, bir bilgisayar programına esas olan fikrin ifadesidir. Bir programın fikri, program akışında yer alan ayrıntılardan çıkarılabilir. En genel anlamda bir programın fikri, o programın amaç veya fonksiyonudur. Buna göre, bir kelime işlem programının temelindeki fikir, "yazmayı daha kolay hale getirmek" olarak açıklanabilir.

Aynı zamanda program fikrinin, bilgisayarda problemin çözümüne doğrudan yönelmiş ayrıntılı işlem basamaklarından çıkarılması da mümkündür. Böylece genel olarak "yazmayı kolaylaştırmak" olarak belirlenen bir kelime işlem programının fikrinin ayrıntılı ifadesi şu şekilde olabilir: "Daktilo etmek ve dokümanları düzenlemek için hızlı bir iç bellek kullan; dokümanları depolamak için bir dosya sistemi kullan; çıkışı basitleştirmek için kelime atlayıcısı kullan." Program fikrinin ayrıntılı olarak ifade edilmiş bu şekli, program geliştirme sürecinin en fazla çaba ve emek gerektiren kısmıdır. 

Algoritma:  Algoritma kelimesinin matematikte kullanılan "logaritma" kavramıyla bir ilgisi yoktur. Algoritma kelimesi, IX. yüzyıl ünlü Türk bilgini matematikçi "Ebu Cafer Muhammed bin Musa El - Harezmi"nin isminin kısaltılmasından türetilmiştir. "El - Harezmi" kelimesinden esinlenerek İngilizce'de "algorithm" denilmiştir.
Program akışı hazırlandıktan sonra, program algoritmasının kurulmasına sıra gelir. Program geliştiricisi, bu aşamada alt problemlerin çözüm yolunu belirler. Algoritma en geniş anlamıyla, verilerden hareketle istenen sonucun nasıl alınacağını gösteren bir uygulama metodudur.

Algoritma; çözüm yolu aranan problemin herhangi bir adımında ne gibi işlemler yapılacağının tıpkı bir yemek tarifinde olduğu gibi yazıya dökülmüş şeklidir.Algoritmada her adımda giriş veya çıkış bilgileri, bölme, çarpma, aktarma, test ve benzeri işlemler yer almalıdır. Belli bir sayıda adımdan sonra algoritma mutlaka son bulmalıdır. Algoritma anlatımda kullanılan cümlelerin kolay, basit ve benzer konular için de geçerli olmasına dikkat edilmelidir. Program geliştiricisi çözümü istenen probleme uygun algoritmayı kurabilmek için, çeşitli kaynaklardan faydalanabilir. Benzer programlar verimli bir kaynak olabilir. Gelişmiş ülkelerde, bilgisayar kitapları ve diğer süreli yayınlar, belirli problemlere ilişkin algoritma yayınlamaktadırlar. Algoritmayı paket program kütüphaneleri şeklinde bazı büyük pazarlardan da elde etmek mümkündür. Nihayet, çok fazla rafine olmuş bazı programlama dillerinde, program geliştirme aşamasında algoritmaya ihtiyaç duyulmaz. Zira, bu tür dillerde algoritma, programlama dilinin tanımı içerisinde yer almıştır.