Delphi ve Pascalda Function ve Procedure Kullanımı
11 Ocak 2012 Çarşamba 19:59   Kadir Aba
Bir programın kodlaması yapılırken ana program kısımları ve alt programlardan faydalanılır. Delphi ve Pascal’da Procedure ve Function olmak üzere iki farklı altprogram vardır. Altprogramların kullanım amacı; programın yapısal olmasını sağlamak ve birbiriyle ilgili komutları veya programın bir bölümünü istenen isim altında toplamaktır. Bu şekilde programın okunması kolaylaşmakta ve yapısal bir görünüm kazanmaktadır. Programların hazırlanması sırasında aynı işlemi yapan program parçalarına programın birçok yerinde ihtiyaç duyulabilir. Altprogram kullanılmadığı zaman bu program parçasının ihtiyaç duyulan bütün kesimlerde yazılması gerekir. Bu işlem programların okunmasını zorlaştırır ve kaynak programın uzamasına sebep olur. Bunun için aynı işlemi yapan ve programın birçok yerinde ihtiyaç duyulan program kesimleri altprogram olarak hazırlanırlar. Böylece aynı program parçasından sadece bir tane hazırlamak yeterli olacaktır. İstenen bölümlere, altprogram ismi ve varsa uygun parametrelerle ulaşılabilecektir.
 
Bir programın kodlaması yapılırken ana program kısımları ve alt programlardan faydalanılır. Delphi ve Pascal’da Procedure ve Function olmak üzere iki farklı altprogram vardır. Altprogramların kullanım amacı; programın yapısal olmasını sağlamak ve birbiriyle ilgili komutları veya programın bir bölümünü istenen isim altında toplamaktır. Bu şekilde programın okunması kolaylaşmakta ve yapısal bir görünüm kazanmaktadır. Programların hazırlanması sırasında aynı işlemi yapan program parçalarına programın birçok yerinde ihtiyaç duyulabilir. Altprogram kullanılmadığı zaman bu program parçasının ihtiyaç duyulan bütün kesimlerde yazılması gerekir. Bu işlem programların okunmasını zorlaştırır ve kaynak programın uzamasına sebep olur. Bunun için aynı işlemi yapan ve programın birçok yerinde ihtiyaç duyulan program kesimleri altprogram olarak hazırlanırlar. Böylece aynı program parçasından sadece bir tane hazırlamak yeterli olacaktır. İstenen bölümlere, altprogram ismi ve varsa uygun parametrelerle ulaşılabilecektir. Herhangi bir alt program çağrıldığı zaman bu alt programda buluna bütün komutlar işlem görür. Altprogramda işlem görecek komutların bitmesi veya bir çıkış komutu ana programa veya bu altprogramın çağrıldığı bölüme tekrar dönüşü sağlar. Altprogramdan çıktıktan sonra işlem, altprogramı çağıran komuttan sonraki komuta geçer. Bir altprogramın yapısı aşağıdaki gibidir.
Altprogram_turu Altprogram_adi [parametreler]
     Altprograma ait tanımlamalar
BEGIN
     // komut yada komutlar
END;
  PROCEDURE KAVRAMI Procedure alt programları bir komut gibi çalışır ve içerisine yazılan kodları işletir. Genel tanımlama yapısı aşağıdaki gibidir.
Procedure procedure_adi[varsa parametreler]
    Tanımlamalar
Begin
    // kod yada kodlar
End;
  Procedure tanımlaması yaparken parametre kullanımı zorunlu değildir. Yani sadece procedure kelimesinden sonra alt programın adının yazılması yeterli olacaktır. Aşağıda ekrana “Kadir ABA” yazan “yaz” adıyla tanımlanmış bir procedure yer almaktadır.
procedure Yaz;
begin
    Writeln('Kadir ABA');
end;
İlgili procedure program içerisinden çağrılmak istenirse komut olarak sadece “yaz” yazılması yeterlidir.
program ProcedureKullanimi;

{$APPTYPE CONSOLE}

uses
    SysUtils;

procedure Yaz;
begin
    Writeln('Kadir ABA');
end;

begin
    Yaz;
    Readln;
end.
  Programın ekran çıktısı aşağıdaki gibi olacaktır. Procedure Kullanımı     Yukarıdaki programda “yaz” isimli bir procedure tanımlanmıştır. Procedure ekrana “Kadir ABA” yazmaktadır. Örnek: Aşağıdaki programda ana programa ait iki değişkeni toplayan bir procedure tanımlanmıştır. Procedure yine dışarıdan bir parametre almadan ana programda tanımlanmış olan değişkenlerle işlem yapmaktadır.
program ProcedureKullanimi;

{$APPTYPE CONSOLE}

uses
    SysUtils;

var
    toplam, sayi1, sayi2 : Integer;

procedure Topla;
begin
    toplam := sayi1 + sayi2;
end;

begin
    Write('Bir sayi yaziniz : ');
    Readln(sayi1);
    Write('Ikinci bir sayi yaziniz : ');
    Readln(sayi2);
    Topla;
    Writeln('Yazdiginiz sayilarin toplami = ',toplam);
    Readln;
end.
  Programın örnek ekran çıktısı aşağıdaki gibidir. Parametresiz Procedure Kullanımı - Topla Procedure Procedureler her zaman aynı işlemleri yapmak zorunda değildirler. Her zaman aynı işlemi yapmak yerine içerisine parametre olarak gönderilen verilere göre işlem yapabilirler. Parametre alan procedurelerin kullanımı parametresiz olanlarla aynıdır.   Örnek: Aşağıdaki örnekte kullanılan fonksiyon içerisine gönderilen sayıların toplamını hesaplamaktadır.
program ProcedureKullanimi;

{$APPTYPE CONSOLE}

uses
    SysUtils;

var
    toplam, sayi1, sayi2 : Integer;

procedure Topla(s1, s2 : Integer);
begin
    toplam := s1 + s2;
end;

begin
    Write('Bir sayi yaziniz : ');
    Readln(sayi1);
    Write('Ikinci bir sayi yaziniz : ');
    Readln(sayi2);
    Topla(sayi1,sayi2);
    Writeln('Yazdiginiz sayilarin toplami = ',toplam);
    Readln;
end.
  Örnek: Aşağıdaki programda kullanılan procedure parametre olarak gönderilen iki sayı arasındaki sayıları ekrana yazmaktadır. Aynı döngüyü farklı yerlerde farklı sayılarla defalarca yazmak yerine bir kere yazarak ilgili yerlerden çağırabiliriz.  
program ProcedureKullanimi;

{$APPTYPE CONSOLE}

uses
    SysUtils;

procedure Dongu(s1,s2 : Integer);
var
    i : Integer;
begin
    for i := s1 to s2 do
        Writeln(i);
end;

begin
    Writeln('1 - 10 arasindaki sayilar');
    Dongu(1,10);
    Writeln('---------------------------');
    Writeln('5 - 9 arasindaki sayilar');
    Dongu(5,9);
    Writeln('---------------------------');
    Writeln('13 - 20 arasindaki sayilar');
    Dongu(13,20);
    Readln;
end.
  Programın ekran görüntüsü aşağıdaki gibi olacaktır. Parametreli Procedure Kullanımı         FUNCTION KAVRAMI   Function kullanımı procedure kullanımına çok benzemektedir. Function alt programları procedure alt programlarına ek olarak yaptıkları işlemin sonucunu tekrar döndürürler. Temel kodlama şekli aşağıdaki gibidir.  
Function function_adi[varsa parametreler] : tip
    Tanımlamalar
Begin
    // kod yada kodlar
End;
Function tanımlarken kullanılan tip alanı function alt programının üreteceği sonucun tipini belirler.   Örnek:  Aşağıdaki örnekte içerisine parametre olarak gönderilen iki sayıdan büyük olanını bulan bir function kullanılmıştır.  
program FunctionKullanimi;

{$APPTYPE CONSOLE}

uses
    SysUtils;

var sayi1, sayi2 : Integer;

Function BuyukOlaniBul(s1,s2 : Integer) : Integer;
begin
    if s1 > s2 then
        Result := s1 else
        Result := s2;
end;

begin
    Write('Bir sayi yaziniz : ');
    Readln(sayi1);
    Write('Bir sayi daha yaziniz : ');
    Readln(sayi2);
    Writeln('Yazdiginiz sayilardan buyuk olani : ',BuyukOlaniBul(sayi1,sayi2));
    Readln;
end.
  Programın örnek ekran çıktısı aşağıdaki gibidir. Function Kullanımı Örnek: Parametre olarak gönderilen sayının mutlak değerini alan bir function yazınız. Örnekte programın tamamı değil sadece istenilen işlemi yapan function yazılmıştır.  
Function MutlakDeger(sayi : Integer) : Integer;
begin
    if (sayi < 0)
        Result := -1 * sayi else
        Result := sayi;
end;
     




Yazı Etiketleri



Facebook Yorumlar



Yorumlar



Benzer Yazıları





Etiket Bulutu
bilgisayar   temel bilgisayar   temel bilgisayar konuları   delphi   mesaj   showmessage   örnek   ShowMessageFmt   Label   Edit   Rastgele Sayı Üretmek   Random   Randomize   Button   TButton   Memo   TMemo   ListBox   ComboBox   TComboBox   Açılır Liste   delphi;tip dönüştürme;StrToInt;IntToStr   StrToInrDef   tip dönüştürme   StrToInt   IntToStr   StrToFloat   FloatToStr   StrToFloatDef   DateToStr   StrToDate   StrToDateDef   DateTimeToStr   StrToDateTime   StrToDateTimeDef   TimeToStr   StrToTime   uygulama   Oyun   Taş Kağıt Makas Oyunu   Image   timer   OpenDialog   SaveDialog   notepad   Mesleki İngilizce   TELEPHONING & E-MAIL   TELEPHONING   E-MAIL   Turizm Otel   Turizm Seyahat   IF TEST   Air travel - Vocabulary   “Slumdog Millionaire” Questions   Email   Final Sınavı   Conditional Sentences   First Conditional   Second Conditional   Third Conditional   air   travel   Slumdog Millionaire   Turizm Seyahat Bölümü Final Sınavı Konuları   Telephonig & Email   Ticari Matematik   Matematik   Turizm ve Seyahat işletmeciliği   Turizm ve Otel İşletmeciği   İngilizce ı   Office Word 2007   Algoritma   Algotirma   Sorular ve Çözümleri   Görsel Programlama   Sorular ve Cevapları   Soru ve Cevapları   Veri Tabanı   SQL   DELETE   UPDATE   SELECT   Mali Tablolar Analizi   skit   Excel 2007   Excel Fonksiyonları   Excel   Excel Uygulamaları   Veritabanı   ADO   ADOConnection   Access   Microsoft Access   c#   checkbox   radiobutton   mesaj işlemleri   pascal   write   writeln   read   readln   tamsayı   ondalıklı sayı   sayı biçimlendirme   if   if-then-else   karşılaştırma komutları   programlama temelleri   asp.net   repeater   onMouseMove   GetTickCount   değişken   if-else   döngü   for   for döngüsü   radiogroup   panel   groupbox   scrollbar   trackbar   case of   Vize Sınavı   TextBox   C# Örnekleri   PasswordChar   while-do döngüsü   Delphi Konsol   sayı tahmin oyunu   Dataset   Winforms   mainmenu   popupmenu   OpenPictureDialog   ColorDialog   FontDialog   dizi   array   Record Tip   Procedure   Function   sınav   adotable   datasource   dbgrid   notepad   paint   Genel