Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Procedure ve Function Hazırlamak  (Okunma sayısı 9263 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Procedure ve Function Hazırlamak
« : 10 Ekim 2005 10:18:56 »
Procedure tipi yordamlar geriye bir değer göndermezlerken Function tipi yordamlar geriye değer gönderirler. Örnek Olarak “Mesaj” adında basit bir yordam hazırlayacağım. Bu yordamı üzerinde çalıştığım projedeki Form1’e dahil edeceğim.  
Bu amaçla Form1’e ait kod penceresine önce “Procedure Mesaj()”, ardından Begin-End deyimlerini yazdım. Hazırladığım yordam otomatik olarak hazırlanan “TForm1” adlı sınıfın bir üyesi olduğu için yordam adının başına bu sınıfı yazdım.


Her yordam Begin-End bloğuna sahip olmak zorundadır. Bu şekilde procedure hazırladıktan sonra formun üst kısmında Type bloğunda deklare etmeniz gerekiyor. Procedure’yi deklare etmeden projeyi çalıştırırsanız aşağıdaki gibi bir hata ile karşılaşırsınız.



Bu şekilde hazırlanan proje çalıştırılıp formun üzerinde tıklama yapılırsa Form_Click() yordamı işletilir. Bu yordamda, yukarıda hazırladığım Mesaj() yordamını işleten bir satır olduğundan Mesaj() yordamı sayesinde bir diyalog kutusu içinde ekrana mesaj verilir.



Hazırlamak istediğiniz procedure’nin Unit’in Type bloğunda deklarasyonun yapıldığı satırın üzerinde iken Shift+Ctrl+C tuşlarına birlikte basarsanız Delphi procedure kalıbını otomatik olarak hazırlar. Delphi benzer kolaylığı henüz deklare edilmeyen procedure’ler için de size sunmaktadır. Bu nedenle hazırlayıp henüz deklare etmediğiniz yordamın üzerinde iken Shift+Ctrl+C tuşlarına basarsanız Delphi procedure’yi deklare eder.

Exit Deyimi İle Procedure’den Çıkmak
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Procedure ve Function Hazırlamak
« Yanıtla #1 : 10 Ekim 2005 10:31:58 »
Procedure’lerde Parametre Kullanmak

Çalışma anında ilk 2 metin kutusuna bilgi girilip “Topla” düğmesi tıklandığı zaman bu sayıların toplamını bulup 3. metin kutusuna yazacak yordamı Unit’in üst kısmında Type bloğunda aşağıdaki gibi deklare ettim.



Bu şekilde düzenlenen Procedure çağrıldığında kendisine 2 bilgi gönderildiğinde hata meydana gelir. Çünkü Procedure 3 parametreye sahiptir. Eğer içinde bulunduğunuz şartlara göre 3 yerine 2 sayıyı toplamak istiyorsanız 3. parametreyi isteğe bağlı olarak ayarlamalısınız.



Bir parametrenin isteğe bağlı olmasını istiyorsanız o parametreye varsayılan bir değer aktarmalısınız. Kendi hazırladığım yordamı aşağıdaki gibi değiştirerek 3. parametrenin varsayılan değerinin 0 olmasını sağladım. Bu durumda bu Procedure 2 parametre ile çağrıldığında 3. parametrenin 0 olduğu varsayılır. Procedure’de yaptığım bu değişikliğin aynısını deklarasyon satırında da yaptım.



Bu şekilde hazırladığım ve Topla() adını vermiş olduğum yordamı dikkatlice incelerseniz Procedure adının önüne Class adını yazdığımı fark etmiş olmalısınız. Procedure’nin başına “TForm1” yazmamış olsaydım yordamın içinde Edit ve Button gibi nesneleri yukarıdaki şekilde kullanmak mümkün olmazdı. Yordamın başına “TForm1” eklememiş olsaydım yordam dahilinde kullanmak istediğim her nesnenin başına formun adını yazmam gerekirdi.

Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Procedure ve Function Hazırlamak
« Yanıtla #2 : 10 Ekim 2005 10:39:05 »
Fonksiyon Hazırlamak
Fonksiyonların geriye değer göndermesini sağlamak için yukarıda yapıldığı gibi söz konusu değeri fonksiyon adına aktarmak yerine Result deyimini kullanabilirsiniz. Result deyiminin nasıl kullanıldığını aşağıda görebilirsiniz.

Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Procedure ve Function Hazırlamak
« Yanıtla #3 : 10 Ekim 2005 10:55:14 »
Fonksiyonları Başka Formlarda Kullanmak

Hazırladığınız fonksiyon veya yordamı başka form veya Unit’lerde kullanmak istiyorsanız fonksiyonu içeren Unit’i Uses deyimi ile fonksiyonu kullanmak istediğiniz Unit’e dahil etmelisiniz. Bu işlemin nasıl yapıldığını size göstermek için yukarıda hazırladığım KareKok() adındaki fonksiyonu başka bir formda kullanacağım. Bu amaçla projeye 2. bir form dahil ettim ve KareKok() fonksiyonunu Unit’in Var bloğunda aşağıdaki gibi deklare ettim.







Ayrıca Form1’de iken Form2’yi ekrana getirebilmek için bu Form2’yi temsil eden Unit2’yi Uses deyimi ile Unit1’e dahil ettim. Ardından Unit2 penceresine geçip Uses deyimi ile KareKok() fonksiyonunu içeren Unit1’i Unit2’ye dahil ettim ve KoreKok() fonksiyonunu aşağıdaki gibi kullandım. Unit2’de aynı adlı başka bir fonksiyon olsaydı fonksiyon adından önce Unit adını kullanırdım.







Geriye Birden Fazla Değer Göndermek

Yukarıda anlatılan şekilde hazırlanan fonksiyonlar geriye yalnızca bir değer gönderirler. Hazırladığınız fonksiyonda birden fazla işlemin sonucuna gerek duyuluyorsa yukarıda verilen fonksiyon yapısına ekler yapılmalıdır. Bu işlemin nasıl yapıldığını anlatmak yeni bir fonksiyon hazırladım. Bu fonksiyon kendisine parametre olarak verilen sayının karesini ve küpünü geriye gönderecektir.



Hazırladığınız fonksiyon geriye birden fazla değer gönderecekse her değer için fonksiyona ait parantezin içinde var deyimi ile değişken tanımlamanız gerekir. Aşağıda verdiğim fonksiyon geriye Integer tipinde 2 değer göndereceği için parantezin içinde “Kare” ve “Kup” adında 2 Integer değişken tanımladım







Parantezin içinde tanımlanan değişkenler geriye değer gönderilirken kullanılacaktır. Geriye birden fazla değer gönderecek fonksiyonu bu şekilde hazırladıktan sonra fonksiyonu çağırmak için aşağıda verdiğim kodu hazırladım.







Formdaki ilk metin kutusuna Integer tipine çevrilebilinecek bilgi girilip bu yordam işletilirse 2. metin kutusuna sayının karesi ve 3. metin kutusuna ise küpü yazılır. Aşağıda verdiğim ekran görüntüsünü bu yordamı işlettikten sonra aldım.







Fonksiyonların Aşırı Yüklenmesi

Şimdiye kadar metodlar ve fonksiyonlar hakkında verilen bilgilere göre metodlar eksik veya fazla parametre ile işletilmek istendiğinde hata meydana gelmektedir. Bu konuda size bilgi vermek için aşağıda verdiğim basit fonksiyonu hazırladım.

Kod:  (Unknown Language)
  1. Function Topla(X : Integer; Y: Integer) : Integer;
  2.  
  3. Begin
  4.  
  5.       Topla := X + Y;
  6.  
  7. End;
Kod:  (Unknown Language)
  1. Function Topla(X : Integer; Y: Integer) : Integer;overload;
  2.  
  3.   Begin
  4.  
  5.       Topla := X + Y;
  6.  
  7.   End;
  8.  
  9.  
  10.  
  11.   Function Topla(X : Integer; Y: Integer; Z: Integer):Integer;Overload;
  12.  
  13.   Begin
  14.  
  15.       Topla := X + Y +Z;
  16.  
  17.   End;




Kullanıcı veya programcı integer tipinde 2 sayıyı toplamak istiyorsa fonksiyonu 2 parametre ile çağırır. Bu durumda aynı fonksiyonun 2 parametreli kopyası devreye girer. Fonksiyon 3 parametre ile çağrıldığında ise 3 parametreye sahip 2. kopyası işlev görür.



Derleyici fonksiyon çağrıldığı satırda kullanılan parametre sayısına bakarak hangi metodun hangi kopyasını kullanacağına karar verir. Bu fonksiyon aşağıda verilen şekli ile çağrılırsa metodun 3 parametreye sahip versiyonu işletilir.







Yukarıda hazırladığım fonksiyonun her 2 kopyası da int tipinde bilgiler alıyordu. Ancak bazen hazırladığınız fonksiyon ile değişik tipteki bilgileri toplamak isteyebilirsiniz. Nasıl ki aynı fonksiyonun değişik sayıda parametreye sahip versiyonlarını hazırlamak mümkün oluyorsa, değişik tipte bilgiler üzerinde işlem yapan kopyalarını hazırlayabilirsiniz. Aşağıda verilen fonksiyon float bilgileri toplayabilir.

Kod:  (Unknown Language)
  1. Function Topla(X : Double; Y: Double):Double;Overload;
  2.  
  3. Begin
  4.  
  5.       Topla := X + Y;
  6.  
  7. End;






Fonksiyonların Kendi Kendilerini Çağırması

Delphi procudure ve fonksiyonların kendi kendilerini çağırmalarına izin vermektedir. Bu işlemin nasıl yapıldığını size anlatmak için aşağıda verdiğim basit yordamı hazırladım. Bu yordam kendi kendisini 5 kez çağırarak belirtilen mesajı 5 kez ekrana yazmaktadır.







Değer ve Referans Parametreleri
Kod:  (Unknown Language)
  1. procedure Yazdir(Var X : Integer);
  2.  
  3. Begin
  4.  
  5.     X := 200;
  6.  
  7. end;




* Bu makale yazarın “Seçkin Yayıncılık” tarafından yayınlanan “Delphi 8-VCL Forms Application” kitabından alınmıştır.  



Gönderen: Memik Yanık
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Mikdad

  • Delphi 4 Level 1
  • *
  • İleti: 150
  • Rep: +2/-2
  • Cinsiyet: Bay
    • http://www.mikdad.net
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #4 : 09 Kasım 2005 19:09:12 »
Ben Bu İşi Nasıl Öğrencem yaaaaaaa :(  :(  :(  :(   :(   :(  :(   :(  :(  :(  :(  :(  :(  :(  :(  :(   :(  :(  :(  :(
Hiç KiMSe VaZGeÇiLMeZ DeĞiLDiR
WwW.Minikhost.Net    Host Dünyasında Yeni Bir Soluk
WwW.Mikdad.Net        İslami İçerikli Portalınız
WwW.Pckahvesi.com   Netteki Yeni Adresiniz

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #5 : 11 Ocak 2007 15:49:29 »
iki sayı toplayan bir procedure yazdığımızda, oda bize bir değer göndermiyomu?
karekök yerine karesini alan bir fonksiyon düşünelim
girdiğimiz sayıyı kendisiyle çarptırarak (toplayabiliyosak çarpabilirizde diye düşünüyorum ama çokmu sığ düşünüyorum) karesini alan bir prosedürle fonksiyon arasındaki fark nedir?
bu geriye değer gönderme olayına daha somut bir örnek vereiblirmisiniz.
yani iki sayıyının toplamını hem procedure hemde functionla yapabilirmiyiz?
bazen birbirlerinin yaptığı işleri yapabilirlermi?
 yada hangi durumda hangisini tercih edeceğimizi gerçekten merak ediyorum..
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #6 : 11 Ocak 2007 16:47:55 »
Procedure ve funtionlar aslında mantık olarak aynı işi yaparlar yani birden çok işlemi bir arada toplar sonra bu işlemi lazım olduğu yerde tek bir satır kod ile halletmemizde yardımcı olurlar. aralarındaki en önemli fark temelde function ları değişken olarak kullanabilirisn(aslında procedure leride kullanabilirsinsin ama) senin soruna göre şöyle diyelim.

topla adında bir procedure bir de functionumuz olsun
a, b, şeklinde  2 tane integer değişkenimiz olsun buna göre topla procedure ünü aşağıda ki gibi tanımlayalım

Kod: [Seç]
procedure topla( a,b : integer);
 begin
a + b;
end;

şimdi funtion u tanımlayalım;

Kod: [Seç]
funtion topla(a,b : integer) : integer;

begin
Result := a + b;
end;

burada malum result function dan dönen integer değer

şimdi aşağıdaki koda bir bakalım anlatılmak istenen temel fikir anlaşılacaktır diye düşünüyorum;
procedure topla yı yeniden tanımlıyorum
Kod: [Seç]
procedure topla(a,b : ınteger);
begin
topla(x,y) + b;
end;

dikkat ederseniz  procedure topla nın kodu içrisinde  a sayısı yerine function topla dan dönen değeri koyduk
yani açarsak aslında kod aşağıdaki gibi dir fakat biz bunu topla funtion ı ile kısalttık

Kod: [Seç]
procedure topla(a,b : integer);
begin
(x + y) + b;
end;
tabi bu çok basit bir örnek olduğu için 3 rakamı yan yana toplamak için niye function tanımlıyayım diye bilirsin :) ama düşün ki topla functionu içerisinde çok karmaşık hesaplamalar yapılıyor ve bir değer döndürülüyor ve topla procedure ü de toplam kod içerisinde 20 kez kullanılıyor o zaman ne demek istediğimi anlayacaksın .
aslında bu konu bu kadar basit değil procedure ve function larda kullanılan parametreler değişken  ve ya sabit olabilir hatta parametrelere default yani varsayılan değerler atanabilir, procedure ve function lar aşırı yüklenebilir functionlar kendidini çağırabilir vs vs şimdi bunların tamamını anlatmak için çok zaman gerekir benim anlatmak istediğim aralarındaki en belirgin farkı fark etmeniz di :)
kolay gelsin.

Çevrimdışı basbakan

  • Delphi 1 Level 2
  • **
  • İleti: 10
  • Rep: +1/-0
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #7 : 23 Şubat 2007 12:36:31 »
Makale güzelmiş..Anlatan arkadaşıma teşekkür ederim.
fonksiyon ile procedure arasındaki farkı ben şu şekilde anladım:

Procedure gönderdiğiniz değerler o prosedürün içerisindeki begin-end bloğu arasındaki programcıkta değer olarak kullanılıp gerekli işlem yapılıyor..

Function da ise gönderilen değerlere gerekli işlem yapılıp verinin geldiği bloğa geri gönderme yapılıyor...

Şöyle de denebilir..elinizde bir demet para var..karışık banknotlar halinde..procedure abiye bunu verip say derseniz o bunu sayar ve bilgi kendisinde kalır,function abiye bu parayı verip say derseniz o bunu sayar ve size sonucu döner....

Bilmem anlatabildim mi?


SELAM VE DUA İLE

Çevrimdışı Memik_

  • Delphi 1 Level 2
  • **
  • İleti: 13
  • Rep: +0/-4
  • Cinsiyet: Bay
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #8 : 24 Şubat 2007 12:43:17 »
Arkadaşlar gördüğünüz gibi benim Sayi1 ve Sayi2 adında değişken tanımlayıp kullanma alışkanlığım var. 2004 yılı başında yayınlanan C# kitabımda sıfıra bölme hatasını anlatmak üzere yine Sayi1 ve Sayi2 adında 2 değişken tanımlayıp birbirine bölmüştüm. Ne ki zirvedeki beyinler namlı saygıdeğer yazarlar da C# kitaplarında sayi1, sayi2 adında değişken tanımlayıp kullandıkları için "değişken adı benzerliği" suçunu bir kez daha işlemiş oldum.
Memik YANIK - www.memikyanik.com

Çevrimdışı dynamo

  • Delphi 3 Level 4
  • ****
  • İleti: 137
  • Rep: +3/-1
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #9 : 07 Mart 2007 11:55:43 »
fatih hoca kızmasın ama genelde , procedur ve fonksiyon tanımları eksik anlatılır. procedur salt bir kod yığını değildir. fonksiyonlar gibi değer dönderebilirler.yani fonksiyon aslında procedurun değer döndermek için kullanılan özel bir halidir diyebiliriz. yanlışım varsa düzeltiniz. ::o

misal;

Kod: [Seç]


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure topla(a,b:integer;var sonuc:integer);overload;
begin
   sonuc:=a+b;
end;

function topla(a,b:integer):integer;overload;
begin
   result:=a+b;
end;

//procedure kullanımı
procedure TForm1.Button1Click(Sender: TObject);
var
    sayi:integer;
begin
  topla(5,7,sayi);
  edit1.Text:=IntToStr(sayi);
end;

//function kullanımı
procedure TForm1.Button2Click(Sender: TObject);
begin
    edit1.Text:=IntToStr(topla(5,7));
end;

end.
 



procedure topla ve function topla  iki rutinin de aynı amaçlı örneği. :::)

rutinlerin sonundaki  "overload;"  ifadesi,  topla adında birden fazla rutinin tek bir isimde kullanılmasına izin veriyor. yoksa topla1 ve topla2 diye yazmak zorunda kalırdık. 8)

memik beyin kitapları hep eleştiri konusu yapılır. doğru veya yanlış onun tartışması başka .fakat şunu dikkate almak gerek. memik beyin kitapları yeni başlayanlara yada hiç bilgisi olmayanlara hitap etmektedir. siz kalkıp da Charli Calvert in  "Delphi 4 Unlished" kitabı ile memik beyin "Delphi 3" kitabını karşılaştırırsanız yanlış sonuca ulaşırsınız. :_ds

saygılar...

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #10 : 07 Mart 2007 12:20:15 »
fatih hoca kızmasın ama genelde , procedur ve fonksiyon tanımları eksik anlatılır.
Niye kızayım ki :inc:

İstenirse ipe unda serilir. Bence herşey amacına uygun kullanılmalı :_s
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı dynamo

  • Delphi 3 Level 4
  • ****
  • İleti: 137
  • Rep: +3/-1
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #11 : 07 Mart 2007 12:47:46 »
Hocam doğru söylüyorsunuz..... "Her iş ehline verilmeli,herşey amacına uygun kullanılmalı ". :_mrb

Delphi de rekürsiv ve iteratif fonksiyonlar ile ilgili açıklayıcı örnekler de verilirse kunu pekişmiş olur.  :_alk

kolay gelsin

Çevrimdışı Emre

  • Global Moderatör
  • *****
  • İleti: 74
  • Rep: +6/-0
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #12 : 08 Mart 2007 15:11:27 »
Merhaba;

Konu başlığından da anlaşılacağı gibi Delphi object pascal dili içerisindeki procedure ve function tanımlarını irdelemek ve bunu tartışmak asıl hedef.

Tartışılan bu başlık altında recursive ya da iteratif gibi bilimsel yöntemleri ve bilimsel algoritmaları konuşmak yanlış olacaktır. Tabii bu bilimsel yaklaşımların Delphi ile yazılmış uygulama örneklerini de internetten kolaylıkla bulabilirsiniz. Konunun odağını kaybetmememiz gerektiğini belirterek, konuyu toparlamak adına aşağıya yazacağım bir kaç adres bu konularda bilgi alabileceğiniz yerleri içeriyor:

http://www.delphi.about.com/od/objectpascalide/a/recursion.htm
ISBN-10: 0387955690 olan Mark Burgin tarafından yazılmış olan "Super-Recursive Algorithms"

İyi çalışmalar dilerim.
« Son Düzenleme: 10 Mart 2007 16:12:46 by Emre »

Çevrimdışı dynamo

  • Delphi 3 Level 4
  • ****
  • İleti: 137
  • Rep: +3/-1
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #13 : 10 Mart 2007 12:51:58 »
emre, dostum haklısın.konu bütünlüğünü dağıtmak değil ,konuyu zenginleştirmek istedim  :-\ herneyse....ben birkaç örenk vereyim....: :::) :::) :::) :::)

İteratif(Çevrimli) fonksiyon:iteratif döngüsel demekdir.
Reqursive(Özyinelemeli )fonksiyon:kendini cagiran fonksiyonlar icin kullanilir. belli bir degere ulasilincaya kadar fonksiyon, sonuc olarak kendini dondurur.

örnek:  1’ den n e kadar sayıların toplamını bulma:

Kod: [Seç]
//iteratif fonksiyon
function topla(n:integer):integer;
var
    i,sayi:integer;
begin
    sayi:=0;
    if n<0 then exit;
if (n=0) or (n=1) then topla:=1;
    if n>1 then
        for i:=1 to n do
            sayi:=sayi+i;
    result:=sayi;
end;

//rekürsif fonksiyon
function topla(n:integer):integer;
begin
    topla:=0;
    if n<0 then exit;
if (n=0) or (n=1) then topla:=1;
    if n>1 then
        topla:=n + topla(n-1);

end;


//kullanımı:
procedure TForm1.Button1Click(Sender: TObject);
begin
    Edit1.Text:= IntToStr(topla(5));

end;




örnek: sayının faktöriyelini bulma.

Kod: [Seç]
//rekürsif fonksiyon
function faktoriyel(n : integer):Double;
begin
    faktoriyel:=1;
    if n<0 then faktoriyel:=-1;
if (n=0) then exit;
    if n>1 then
    if n>1 then
        faktoriyel:=n * faktoriyel(n-1);

end;

//iteratif fonksiyon
function faktoriyel(n : integer):Double;
var
    i:integer;
    toplam:double;
begin
    toplam:=1;
    if n<0 then faktoriyel:=-1;
if (n=0) then exit;
    if n>1 then
        for i:=1 to n do
            toplam:=toplam * i;
    result:=toplam;
end;

//kullanımı:

procedure TForm1.Button1Click(Sender: TObject);
begin

    Edit1.Text:= FloatToStr(faktoriyel(5));
end;


saygılar...... :::) :::) :::) :::)

Çevrimdışı Emre

  • Global Moderatör
  • *****
  • İleti: 74
  • Rep: +6/-0
Ynt: Procedure ve Function Hazırlamak
« Yanıtla #14 : 10 Mart 2007 16:14:39 »
Bilgiler ve fonksiyon örnekleri için teşekkür ederiz.  :::)