Programlamada Fonksiyonlar

Fonksiyonlar

Fonksiyonlar, bir sonuç üretecek hesaplamaları yapmak için kullanılan program birimleridir. Yordamlar kullanılarak da sonuçlar ana programa aktarılabilir. Ancak, fonksiyonlar kullanıldığında bu sonuç ana programa parametre listesi yerine fonksiyonun sonucu olarak aktarılacaktır.  Bunu C dilinde bir örnekle gösterelim:

 KDV’yi hesaplayan bir fonksiyon yazalım

Float kdv (float ödeme);

{

Float oran = 0.15;

Return (ödeme* oran);

}

 

Bu fonksiyonu çağırmak için

Toplam = kdv(ödeme);

Şeklinde bir komut kullanılabilir.

Yukarıda anlattıklarımız bize yordamları ve fonksiyonları kullanarak programlama dillerinin yeteneklerini arttırabileceğimizi göstermektedir.

Giriş/Çıkış ifadeleri

Programlama dilleri içerisinde, genellikle kullanıcı ile ilişki kurabilmek için ve kullanıcı ile işletim sistemi arasında bilgi alışverişini sağlamak için komutlar dahil edilmiştir. Bu komutlar arasında, sonuçları ekrana veya kütüklere yazmak için kullanılan giriş/çıkış ifadeleri en çok bilinenleridir. Bu komutlar, genellikle sistemin içindeki işletim sisteminin fonksiyonlarını çağırmak için kullanılırlar.

Pascal dilinde

Readln(değer);

 

C dilinde

Printf(%d, x);

bunların örnekleridir.

Bunlardan ilki, programa tanıtılmak istenen bir değişkenin değerini okumak, ikincisi ise x’in değerini ekrana yazmak için kullanılır.

 

Programın uygulanması

 

Programın yürütümünden kastımız, yazılan bir programın çalışır hale getirilmesi, amaçladığı uygulamayı gerçekleştirmesi için uygulanacak işlemlerdir. Daha öncede söz ettiğimiz gibi program yazılırken önce editörler kullanılır ve kaynak kodu elde edilir. Bu kodun bilgisayar açısından yazdığımız bir mektuptan farkı yoktur. Programın çalışan ve amaçladığı işlemleri yapan bir program haline gelmesi için üzerinde bazı işlemler yapılması gerekmektedir. Şimdi bu işlemleri göreceğiz.

 

Çevirme işlemi

 

Daha öncede belirttiğimiz gibi, çevirme işlemi kaynak kodunu nesne koduna dönüştürme (translation) işlemidir. Çevirme işlemi genellikle üç adımda gerçekleştirilir:

 

  • Sözel Analiz (Lexical Analiz)
  1. Gramer Analizi ve Tanıma (Parser)
  2. Kod Üreteci

 

Sözel analiz sırasında kaynak kodunu oluşturan kelimeler incelenir. Bu sembol dizinlerinin makine dilinde karşılıkları bulunup bulunmadığı kontrol edilir. Bilgisayar açısında bakıldığı zaman bir program baytlardan oluşmuştur. Bu baytların peş peşe gelip kelime oluşturması bilgisayarı ilgilendirmez. Dolayısıyla, sözel analiz aşamasında, bu baytların oluşturdukları kelimelere göre gruplandırması yapılır. Örneğin; ASCII kodunda ardı ardına yazılan w-h-i-l-e harflerinin aslında tek bir kavrama karşı gelen while yapısı olarak değerlendirileceği veya 1-2-5 sayılarının tek bir nümerik değer olan 125 olarak okunacağı, buna karşılık f-o-r-  -n- = -4 dizininin for n = 4 olduğu bu aşamada belirlenir.

Gramer analizi, programın kendi gramer kuralları içinde doğru yazılıp yazılmadığını kontrol eder. Kendi sistematiği içinde tanır ve değerlendirir. Gruplanan harfler arasından anlamlı komutlar, değişken isimleri, satır sonu ifadeleri ve açıklama satırları belirlenir. Günümüz dillerinde programlar serbest formatta yazıldığı için, yani kelimeler sayfada herhangi bir kolonda başlayabildiği için tanıma işlemi karmaşık bir hale gelmiştir. Eski dillerin çoğunda, özellikle de Assembly dillerinde komutların belli bir kolondan, tanımların ise yine tanımlanmış başka kolonlardan başlaması gerekmekteydi. Bu yaklaşıma sabit format denmektedir.

Serbest formatta program yazılırken, komut sonunu belirten özel işaretler kullanılmalıdır. Örneğin; C dilinde bu amaçla ‘;’ kullanılır. Yine, her programlama dilinde komutlara karşılık gelen ayrılmış kelimeler mevcuttur. Bu kelimelerin program içinde başka amaçla kullanılması hatalara yol açacaktır. Örneğin; while kelimesi değişken adı olarak kullanılamaz.

Gramer analizi yapılırken programlama dili için belirlenmiş bazı kurallar izlenir. Bu kurallar genellikle tanıma tabloları olarak belirlenmiştir.  Tanıma tabloları akış diyagramları ile gösterilirler.

 

Aşağıdaki şekilde atama işlemini gösteren bir tanıma tablosu çizilmiştir.

Atama

Atama tablosu

Atama tablosu

 

Bu tabloda a = x + y ifadesinin nasıl tanınacağı açıklanmıştır. Tanım olarak belirtilen kutu için ise benzer bir tablo aşağıdaki gibi olabilir.

 

Tanım

Tanım tablosu

Tanım tablosu

Bu durumda a = x + y ifadesinin tanıma ağacı yukarıdaki ifadelere göre aşağıdaki gibi çıkartılabilir:

atama

Gramer analizi yapılarak tanınan program bileşenleri arasında bulunan değişkenler, sembol tablosunda toplanır. Bu tablo bildirilmemiş değişkenleri, onların türlerini ve bu değişkenlerle ilgili veri yapılarını tutar. Daha sonra program kodu üretilirken bu tablodan yararlanılır.

Çevirme işleminin son aşaması kod üretimidir. Bu aşamada, tanınan komutlara karşılık gelen makine dili komutları üretilir. Bu işlemlerin sonunda ortaya kaynak kodundan (source kode ) çevrilen nesne kodu (object code) çıkmış olur. Kod üreteçleri peş peşe komutları birlikte değerlendirmeli ve birbirine yakın kodlar için ortak makine dili komutları üretebilmelidir. Bu sürece kod optimizasyonu denir.

Yukarıda saydığımız üç adım, birbirlerinin peşi sıra değil, paralel olarak gerçekleştirilirler. Bu sayede analiz edilen ve tanınan bir komut doğrudan doğruya makine diline çevrilebilir.

 

Bağlama – Yükleme

 

Çoğunlukla yukarıdaki adımlar sonucu üretilen nesne kodu bilgisayarda çalıştırılmaya hazır değildir. Bunun nedenlerinden birisi genellikle programlama dili içinde bulunan kütüphane fonksiyonlarına ve yordamlarına atıfta bulunulması ve bu birimlerin programa bağlanmamış olmasıdır. Bu yordamlar sistem yordamları olabileceği gibi programcı tarafından daha önce yazılmış program paçaları da olabilir.

Bu durumda nesne kodu bağlama (linking) işlemine tabi tutulur. Bu işlem sonucu eksik parçalar program kodu içine eklenir ve program çalışmaya hazır hale gelir.

Tek kullanıcılı sistemlerde bundan sonraki adım, programı çalıştırmak için gerekli komutları yazmak ve programın çalışmasını gözlemektir. Çok kullanıcılı sistemlerde ise bu işlemin yapılabilmesi programcının insiyatifi dışında yükleyici tarafında yapılır. Yükleyici değişik programlara işlemci zamanı atayarak her birisinin çalışmasını sağlar.

 

Program Geliştirme

 

Bu bölümde, bir programın geliştirilmesi için gerekli olan aşamalardan söz edeceğiz. Yazılımın büyüklüğüne bağlı olarak yapılacak analiz aşamasından sonra tasarım aşamasında program fonksiyonları belirlenir, daha sonra program kodlanır, test edilir ve gerekli dokümantasyon hazırlanır. Şimdi bu aşamalara kısaca değinelim.

 

 

 

Program fonksiyonlarının belirlenmesi

 

Program fonksiyonlarının belirlenmesi yazılımın yapması gereken işlerin belirlenmesidir. Bu aşama, işlerin nasıl yapılacağından bağımsızdır. Öncelikle, programın içeriği tarif edilir ve doküman haline getirilip programcıdan beklenenler belirlenebilir. Bu tür uygulamalar genellikle büyük yazılım projelerinde kullanılır.

 

Bir bilgisayar programının üç temel bileşeni vardır:

 

  1. Çıktılar

Bir program yazımında en büyük amaç belirli çıktılar elde etmek olduğuna göre çıktıların belirlenmesi en önemli konulardan birisidir. Çıktının şu özellikleri belirlenmelidir:

  • İçerik,
  • Format,
  • Zamanlama.

 

  1. Girdiler

Çıktılar veriler üzerinde yapılan işlemlerin sonucu olduğundan girdi olarak kullanılacak verilerin aşağıdaki özelliklerinin de belirlenmesi gerekir:

  • Gerekli veriler,
  • Veriye erişebilirlik(yani verinin hangi yolla elde edileceği),
  • Verinin formatı.

 

  1. İşlemler

Programa girdiler verilmekte ve buna karşılık çıktılar alınmaktadır. Girdilerden çıktıların alınması bazı işlemlerin sonucudur. Bu işlemlerin neler olacağı geliştirme aşamasında belirlenmelidir.

Ayrıca, kullanıcı arayüzü ile ilgili bilgiler de bu aşamada kararlaştırılmalı ve programın verilere yönelik olarak yazıldığı göz önüne alınarak komut tabanlı ya da grafik kullanıcı ara yüzünden birisi seçilmelidir. Programın çalıştırılabilmesi için gerekli cihazlarda belirlenmelidir.

 

Programın Kodlanması

 

Programın algoritmasının geliştirilip, tasarımının tamamlanmasının ardından programın kodlanması işlemi gelir. Kodlama, detaylı algoritmanın bir programlama dilinde ifade edilmesi demektir.

Program yazma sürecinde program söz dizimine (syntax) tam olarak uyulması gerekir. Kelimeler aynen ve aynı sırada kullanılmalı, noktalama işaretleri unutulmamalı veya fazladan noktalama işaretleri olmamalıdır. Baştan iyi tasarlanmış programda kodlama işin en kolay yönüdür.

Kodlama genellikle bir editör kullanarak yapılır. Editör çıktısına kaynak kodu denir. Kaynak kodu yazılırken aşağıdaki hususlara dikkat edilmesi programın anlaşılmasını ve takip edilmesini kolaylaştıracaktır.

  • Anlamlı değişken isimleri kullanılmalıdır,
  • Program parçaları değişik kolonlardan başlamalıdır,
  • Program içinde yeterli sayıda boş satır bulunmalıdır,
  • Açıklama satırları kullanılarak program daha anlaşılır hale getirilmelidir.

 

Programın Test Edilmesi

 

Kodlanan program önce gözle kontrol edilmelidir. Burada göze hatalı gelen satırlar düzeltilmeli ve noktalama işaretlerinin olması gerektiği gibi kullanılmasına özen gösterilmelidir.

Daha sonra, programın derlenmesi sırasında derleyici söz dizimi hatalarını bulacak ve bu hatalar düzeltilerek işlem sonuç elde edinceye kadar tekrarlanacaktır. Sözdizim hatası vermeden çalışan buna karşılık istenen sonucu vermeyen programlardaki hataların bulunması işlemine çapar ayıklama (debugging) denir. Bu tür hatalar mantık hataları olduğundan bulunabilmeleri için test verileri kullanılır yada program adım adım çalıştırılır.

 

Program Dokümantasyonu

 

Dokümantasyon, program algoritmasının tasarımının, kodlama yöntemlerinin, test metodlarının ve kullanım amaçlarının detaylı olarak açıklamasıdır.

Dokümantasyon işlemini programın bitimine bırakmamalı, bu işlem programın geliştirilmesi süresince yapılmalıdır. Büyük programlama projelerinde programcıların program geliştirimi bitmeden değişebileceği unutulmamalıdır.

Genellikle, dokümantasyon program geliştirilmesi sırasında en az önem verilen, buna karşılık program bittikten ve kullanılmaya başlandıktan sonra, en çok eksikliği duyulan öğedir.

 

Hangi Programlama Dilini Kullanacağız?

 

Bu konuda çoğu zaman programcılar değil, yönetim karar verir. Kuruluşun genel politikaları arasında araştırma geliştirme yöntemleri belirlenirken kullanılacak programlama dilleri de belirlenir. Bu programcıların hiç söz hakkı yoktur anlamına gelmemelidir. Programlama dilini kim seçerse seçsin aşağıdaki kurallara uyulması gerekir.

 

  • Dil, yetenekleri açısından, çözülmesi gereken probleme uygun olmalıdır. Programlama dili mümkün olduğunca açık ve basit olmalı, üçüncü şahıslar tarafından rahatlıkla okunabilmelidir.
  • Verimli bir geliştirme aracı ve derleyici olmalı, bilgisayarın kaynaklarını en iyi şekilde değerlendirmelidir.
  • Bulunabilirlik ve yaygın kullanımı olması elde edilen ürünün başka yerlere satılabilmesini de kolaylaştıracaktır. Ayrıca, karşılaşılan sorunları danışabileceği destek birimleri programlama dili üreticisinin sağlaması gereken en önemli unsurdur. Bunun varlığı dilin değerini arttırır.
  • Kurum politikası da programlama dilinin seçiminde önemli bir faktördür. Yazılan program, kuruluş içinde çalışan diğer programlarla uyumlu olmalı, onlarla aynı dili konuşmalıdır.

 

Programlamada Fonksiyonlar ile ilgili slayt dosyasına ulaşmak için lütfen tıklayınız.

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close
Join me: