oguzhansr40 Merhaba,
Prosedür ve fonksiyon arasındaki fark birisinin sonuç vermesi diğerinin ise sadece işlemi yapmasıdır.
Prosedür;
Bir prosedür yazdığınızda, bunun bir sonucu yoktur. Sadece işlemin kendisidir. Yani prosedürden geri yanıt beklenmez.
Fonksiyon;
Bir fonksiyon yazdığınızda, bunu bir sonucu vardır. Fonksiyon sonucunda sizden bir yanıt beklenir. Hatta fonksiyonların sonunda Result
ataması ile sonuç ataması yapmış olursunuz.
Giriş var, Giriş yok nedir?
Az önce anlattığım gibi, bir sonuç döndürüyor ise çıkış var, döndürmüyor ise çıkış yoktur. Yani bir fonksiyon ise daima çıkış söz konusudur. Prosedürde ise çıkış söz konusu değildir.
Giriş parametredir. Bir fonksiyon veya prosedür işleminde parametre tanımı ekleyebilirsiniz. Parametreli bir fonksiyon ise, hem giriş (beklenen parametre) hem çıkış vardır. Parametreli bir fonksiyonda ise, giriş vardır fakat çıkış yoktur (prosedür sonuç döndürmez).
Biraz daha açıklamak gerekirsek;
function OguzhanCevapVer: string;
begin
Result := 'Benim cevabım budur';
end;
procedure OguzhanOdevYap;
begin
OdevYap;
end;
Burada dikkat edersen fonksiyon oluştururken, tanımda : string
ifadesini kullandık. Bu ifade bizim fonksiyonumuzun döndüreceği veri tipini belirtir. Ve sonuç olarak (Result
) string tipinde (tırnak işareti ile) bir ifade verdik. Prosedürde ise sadece ödev yapıldı. Bir dönüş beklenmedi. Günlük hayatta örneklendirmemiz gerekirse; kız arkadaşının sana bir soru sorduğunu düşün; buna cevap vermek zorundasın. Cevap vermezen hataya düşersin ve trip yersin. Bu bir fonksiyondur. Prosedür için ise; annen sana ekmek alman için seslendi. Sen ekmek almaya gittin bir cevap vermedin. İşlemi gerçekleştirdin. Bu da bir prosedürdür.
Aklına takıldığı bir konu olursa lütfen çekinmeden sor.
Başarılar dilerim.