ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
توابع بازگشتی در SQL Server
09-05-2023, 12:59 PM
ارسال: #1
توابع بازگشتی در SQL Server
در اینجا یک مثال از تابع بازگشتی در SQL Server آورده شده است که یک دنباله فیبوناچی تولید می‌کند:

کد:
CREATE FUNCTION Fibonacci( @n INT )
RETURNS TABLE
AS
RETURN
(
SELECT 0 AS n
UNION ALL
SELECT 1 AS n
UNION ALL
SELECT Fibonacci(@n - 1) + Fibonacci(@n - 2) AS n
FROM Fibonacci( @n - 1 )
);

این تابع دو پارامتر ورودی دارد: @n که تعداد عناصر دنباله را مشخص می‌کند.
تابع از دو عبارت UNION ALL استفاده می‌کند تا یک دنباله از عناصر دنباله فیبوناچی تولید کند. اولین عبارت UNION ALL دو عدد 0 و 1 را به دنباله اضافه می‌کند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه عناصر دنباله استفاده می‌کند.
در اینجا مثالی از نحوه استفاده از این تابع آورده شده است:


کد:
SELECT * FROM Fibonacci( 10 );

این کوئری خروجی زیر را تولید می‌کند:

نقل قول: n
-------
0
1
1
2
3
5
8
13
21
34
تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید دنباله‌های تکراری است. این تابع می‌تواند برای تولید دنباله‌های فیبوناچی، دنباله‌های هندسی، و سایر دنباله‌های تکراری استفاده شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
09-05-2023, 01:02 PM
ارسال: #2
RE: توابع بازگشتی در SQL Server
در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server آورده شده است که تمام اعداد زوج بین دو عدد داده شده را تولید می‌کند:

کد:
CREATE FUNCTION EvenNumbers( @start INT, @end INT )
RETURNS TABLE
AS
BEGIN
RETURN
(
SELECT @start AS n
UNION ALL
SELECT EvenNumbers(@start + 2, @end)
FROM EvenNumbers( @start + 2 )
WHERE @start + 2 <= @end
);
END;

این تابع دو پارامتر ورودی دارد: @start که اولین عدد زوج را مشخص می‌کند، و @end که آخرین عدد زوج را مشخص می‌کند.
تابع از یک عبارت UNION ALL استفاده می‌کند تا یک دنباله از اعداد زوج تولید کند. اولین عبارت UNION ALL اولین عدد زوج را به دنباله اضافه می‌کند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه اعداد زوج استفاده می‌کند.
در اینجا مثالی از نحوه استفاده از این تابع آورده شده است:

کد:
SELECT * FROM EvenNumbers( 2, 10 );

این کوئری خروجی زیر را تولید می‌کند:
نقل قول: n
-------
2
4
6
8
10

تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید دنباله‌های تکراری است. این تابع می‌تواند برای تولید دنباله‌های اعداد زوج، اعداد فرد، اعداد اول، و سایر دنباله‌های تکراری استفاده شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
09-05-2023, 01:06 PM
ارسال: #3
تولید اعداد اول توسط توابع بازگشتی در SQL Server
در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server آورده شده است که یک دنباله از اعداد اول تولید می‌کند:

کد:
CREATE FUNCTION PrimeNumbers( @n INT )
RETURNS TABLE
AS
BEGIN
DECLARE @i INT = 2;
DECLARE @prime TABLE(
  number INT
);

INSERT INTO @prime
SELECT @i;

WHILE (@i <= @n)
BEGIN
  DECLARE @j INT = 2;

  WHILE (@j * @j <= @i)
  BEGIN
    IF (@i % @j = 0)
    BEGIN
      DELETE FROM @prime WHERE number = @i;
      BREAK;
    END;

    @j = @j + 1;
  END;

  @i = @i + 1;
END;

RETURN
(
SELECT * FROM @prime
);
END;

این تابع یک جدول از اعداد اول را تولید می‌کند. تابع از یک حلقه while استفاده می‌کند تا از 1 تا @n بشمارد. برای هر عدد، تابع بررسی می‌کند که آیا عدد اول است یا خیر. اگر عدد اول نباشد، آن را از جدول حذف می‌کند. در اینجا مثالی از نحوه استفاده از این تابع آورده شده است:

کد:
SELECT * FROM PrimeNumbers( 100 );

این کوئری خروجی زیر را تولید می‌کند:
نقل قول: number
-------
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید مجموعه‌های تکراری است. این تابع می‌تواند برای تولید مجموعه‌های اعداد اول، مجموعه‌های اعداد زوج، و سایر مجموعه‌های تکراری استفاده شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
09-05-2023, 02:38 PM
ارسال: #4
محاسبه مجموع اعداد از 1 تا n با تابع بازگشتی در SQL Server
اینجا یک مثال دیگر از یک تابع بازگشتی در SQL Server برای محاسبه مجموع اعداد از 1 تا n را دارید:

کد:
CREATE FUNCTION CalculateSum(@n INT)
RETURNS INT
AS
BEGIN
    -- Base Case
    IF @n <= 0
        RETURN 0;
    
    -- Recursive Case
    RETURN @n + dbo.CalculateSum(@n - 1);
END;
در این تابع، ما مجموع اعداد از 1 تا n را با استفاده از تابع بازگشتی محاسبه می‌کنیم. اگر عدد ورودی (@n) کمتر یا مساوی 0 باشد، تابع به عدد 0 برمی‌گردد که مثالی از مورد پایه (Base Case) است. در غیر این صورت، تابع به صورت بازگشتی خود را فراخوانی کرده و عدد @n را با نتیجه فراخوانی تابع با ورودی @n - 1 جمع می‌کند.
برای استفاده از این تابع، می‌توانید به شکل زیر استفاده کنید:

کد:
SELECT dbo.CalculateSum(5); -- مثال محاسبه مجموع اعداد از 1 تا 5
این تابع به شکل بازگشتی مجموع اعداد از 1 تا n را محاسبه می‌کند و می‌توانید آن را با ورودی‌های دلخواه استفاده کنید.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
09-05-2023, 02:44 PM
ارسال: #5
RE: توابع بازگشتی در SQL Server
در اینجا مثال دیگری از یک تابع بازگشتی در SQL Server برای محاسبه اعداد تریبوناچی تا n ارائه می‌شود:

کد:
CREATE FUNCTION CalculateTribonacci(@n INT)
RETURNS INT
AS
BEGIN
    -- Base Case
    IF @n <= 0
        RETURN 0;
    IF @n = 1 OR @n = 2
        RETURN 1;
    
    -- Recursive Case
    RETURN dbo.CalculateTribonacci(@n - 1) + dbo.CalculateTribonacci(@n - 2) + dbo.CalculateTribonacci(@n - 3);
END;
در این تابع، ما اعداد تریبوناچی تا n را با استفاده از تابع بازگشتی محاسبه می‌کنیم. اگر عدد ورودی (@n) کمتر یا مساوی 0 باشد، تابع به عدد 0 برمی‌گردد (مثالی از مورد پایه). اگر @n برابر با 1 یا 2 باشد، تابع به عدد 1 برمی‌گردد (دو مورد پایه دیگر). در غیر این صورت، تابع به صورت بازگشتی خود را فراخوانی کرده و عدد @n را با مجموع نتایج سه فراخوانی تابع با ورودی @n - 1، @n - 2 و @n - 3 محاسبه می‌کند.
برای استفاده از این تابع، می‌توانید به شکل زیر استفاده کنید:
کد:
SELECT dbo.CalculateTribonacci(10); -- مثال محاسبه عدد تریبوناچی با ورودی 10
این تابع به شکل بازگشتی اعداد تریبوناچی را محاسبه می‌کند و می‌توانید آن را با ورودی‌های دلخواه استفاده کنید.
برای مثالی که با ورودی dbo.CalculateTribonacci(10) ارائه شده، خروجی تابع CalculateTribonacci برابر با مقدار تریبوناچی مربوط به عدد 10 خواهد بود. برای محاسبه این مقدار، می‌توانید تابع را به شکل زیر فراخوانی کنید:
کد:
SELECT dbo.CalculateTribonacci(10);
خروجی مورد انتظار برابر با مقدار تریبوناچی برای عدد 10 است. تریبوناچی یک دنباله عددی است که با اعداد 0، 0، 1، 1، 2، 4، 7، 13 و ... آغاز می‌شود. بنابراین، خروجی تابع برای ورودی 10 باید مقدار 149 باشد.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
09-05-2023, 04:11 PM
ارسال: #6
محاسبه توان با استفاده از توابع بازگشتی در SQL Server
در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server برای محاسبه توان عددی از یک عدد دلخواه را دارید:
کد:
CREATE FUNCTION CalculatePower(@base INT, @exponent INT)
RETURNS INT
AS
BEGIN
    -- Base Case
    IF @exponent = 0
        RETURN 1;
    
    -- Recursive Case
    RETURN @base * dbo.CalculatePower(@base, @exponent - 1);
END;
در این تابع، ما توان عددی از @base به توان @exponent را با استفاده از تابع بازگشتی محاسبه می‌کنیم. اگر @exponent برابر با 0 باشد، تابع به عدد 1 برمی‌گردد (مثالی از مورد پایه). در غیر این صورت، تابع به صورت بازگشتی خود را فراخوانی کرده و توان @base به توان @exponent - 1 را محاسبه می‌کند.

برای استفاده از این تابع، می‌توانید به شکل زیر استفاده کنید:

کد:
SELECT dbo.CalculatePower(2, 3); -- مثال محاسبه 2 به توان 3
این تابع به شکل بازگشتی توان عددی از یک عدد را محاسبه می‌کند و می‌توانید آن را با ورودی‌های دلخواه استفاده کنید. در مثال فوق، مقدار خروجی برابر با 8 است چرا که 2 به توان 3 برابر با 8 می‌شود.


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان