13 Ocak 2014 Pazartesi

Pascal Programlama - 7

Bu yazımda Pascal Programlamada alt programlar konusunu inceleyeceğiz.

Alt programlar, isimlerinden anlaşılacağı gibi programlar içinde yer alan ve belli bir görevi bulunan kod bloklarıdır. Alt programları prosedürler ve fonksiyonlar olmak üzere iki farklı şekilde göreceğiz. Bu kavramlara metot da denmektedir.

Alt programlar kullanımı ile, karmaşık kodlamalar ve kod tekrarlamaları giderilir. Bu sayede daha okunabilir programlar ortaya çıkar ve hata ayıklama kolaylaşır.

Prosedürler:

Program içinde çok kez kullanılacak bir işlem için bir kez yazılıp, programın devamında istenildiği kadar kullanılabilir.

Geriye değer döndürmez ancak kendilerine gönderilen parametrelerin değerlerini değiştirebilirler.

Prosedürlere gönderdiğimiz parametrelerin ana programdaki değerlerinin değişmesini istemiyorsak değer ile çağırma (call by value), değişmesini istiyorsak referans ile çağırma (call by reference) yapılmalıdır.

Aşağıda prosedür tanımlama örneği verilmiştir.

procedure isim(parametre:veritipi);
var ...;
begin
    ...
end;

Fonksiyonlar:

Fonksiyonlar prosedürlerden farklı olarak çağrıldıkları programa bir değer döndürürler. Fonksiyon tanımlanırken geriye döndüreceği değerin tipi belirtilmelidir.

Aşağıda fonksiyon tanımlama örneği verilmiştir.

function isim(Parametre:veritipi):veritipi;
var ...;
begin
    ...
    isim:değer;
    ...
end;

Şimdi örneklerimizi inleyelim.

uses crt;
var 
    sayi,i,top:integer;
procedure fakto(sayi:integer);
begin
    top:=1;
    for i:=1 to sayi do
         begin
            top:=top*i;
         end;
    writeln(sayi,' sayisinin faktorüyeli:',top);
end;
begin
    clrscr;
    writeln('bir sayi girin');
    readln(sayi);
    fakto(sayi);
    readln;
end.

Bu örnekte, prosedür kullanılarak girilen sayının faktöriyeli hesaplanmıştır.

uses crt;
function f(n:real):real;
begin
    if n<2 then
        f:=n
    else 
        f:=f(n-2)+f(n-1);
end;
var
    n:real;
begin
    clrscr;
    repeat
        readln(n);
    until (n=trunc(n)) and (n>=0);
    
    writeln(n:0:0,'.fibonacci sayisi:',f(n):0:0);
    readln;
end.

Bu örnekte de, fonksiyon kullanılarak istenilen sıradaki fibonacci sayısı bulunmaktadır.


Hiç yorum yok: