Herkese merhaba,
Bu bölümde SQL Server’da faktöriyel hesabını rekürsif hesaplayan bir prosedür örneği yapacağım.
İlk önce faktöriyel nedir ona değinelim.
1’den başlayarak belirli bir sayma sayısına kadar olan sayıların çarpımına o sayının faktöriyeli denir.
Örneğin 5’in faktöriyel (5! ile gösterilir) : 120 =5 * 4 * 3 * 2 * 1’dir.
Rekürsif nedir?
Bir yapı eğer kendine gönderme yapma özelliğine sahipse böyle yapılara rekürsif yapılar denir.
Şimdi kod örneğine geçelim.
CREATE PROCEDURE FaktoriyelHesapla
(
@Sayi INTEGER,
@Sonuc INTEGER OUTPUT
)
AS
DECLARE @Giris INTEGER;
DECLARE @Cikis INTEGER;
IF @Sayi != 1
BEGIN
SELECT @Giris = @Sayi - 1;
EXEC FaktoriyelHesapla @Giris, @Cikis OUTPUT;
SELECT @Sonuc = @Sayi * @Cikis;
END;
ELSE
BEGIN
SELECT @Sonuc = 1;
END;
RETURN;
--Çalıştırılması
DECLARE @Sonuc INTEGER;
EXEC FaktoriyelHesapla @Sayi = 5, -- integer
@Sonuc = @Sonuc OUTPUT; -- integer
PRINT @Sonuc;
Yukarıdaki prosedürü oluşturup çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.
Görüldüğü üzere rekürsif olarak faktöriyel hesabını yapmış olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.