در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش برنامه نویسی به زبان ساده قسمت 14 : توابع

این قسمت از آموزش برنامه نویسی به زبان ساده، آخرین قسمت از این سری آموزشی می باشد. در این بخش به بررسی مفهوم توابع در زبان های برنامه نویسی می پردازیم. در زبان های برنامه نویسی، توابع قطعاتی از کد هستند که بوسیله یک نام در قسمت های مختلف برنامه قابل دسترس بوده و می توان آن ها را فراخوانی کرد. در مثال هایی که برای زبان سی زدیم با تابع printf آشنا شدیم. این تابع رشته ای را به عنوان ورودی گرفته و در خروجی آن را نمایش می دهد:

printf("Welcome to ITPro.ir");

دقت کنید که امکان فراخوانی تابع printf در هر قسمت از برنامه وجود دارد. در ادامه به بررسی شیوه های مختلف تعریف توابع خواهیم پرداخت.

نحوه تعریف توابع

در ابتدا نحوه تعریف توابع را در زبان سی بررسی می کنیم. فرض کنید قصد داریم تابعی تعریف کنیم که یک پیغام خوش آمد گویی را در صفحه نمایش می دهد:

#include <stdio.h>

void DisplayWelcome()
{
	printf("Welcome to ITPro.ir");
}

void main()
{
	DisplayWelcome();
}

در کد بالا تابعی با نام DisplayWelcome تعریف شده که پیغام Welcome to ITPro.ir را در خروجی نمایش می دهد. به صورت کلی ساختار تعریف یک تابع به صورت زیر است:

[return-type] (Name)({parameters})
{
	[method-body]
}
  1. return-type: در این قسمت می توان نوع بازگشتی تابع را مشخص کرد. نوع بازگشتی را می توان از نوع های داده تعریف شده مانند int یا string در نظر گرفت. در صورت استفاده از کلمه کلیدی void به این معنی است که تابع مقدار بازگشتی ندارد.
  2. name: در این قسمت نام تابع را مشخص می کنیم.
  3. parameters: پارامتر های ورودی تابع را مشخص می کنیم، یک تابع می توانند بدون پارامتر بوده یا شامل یک یا چند پارامتر باشد.
  4. method-body: بدنه تابع شامل کدهایی است که زمان فراخوانی تابع باید اجرا شوند.

در مثال زیر نحوه تعریف توابع را زبان سی شارپ مشاهده می کنید:

public class Program
{
    public static void Main()
    {
        DisplayWelcome();
    }
    public static void DisplayWelcome()
    {
        Console.WriteLine("Welcome to ITPro.ir");
    }
}

زبان سی شارپ به دلیل آنکه ریشه در زبان سی دارد شیوه تعریف توابع در آن ها تقریباً یکسان است. همانطور که در کدهای بالا مشاهده کردید، برای فراخوانی یک تابع کافیست نام تابع را نوشته و در مقابل نام آن، علامت () را بنویسیم. اگر تابع ما دارای پارامتر ورودی باشد داخل پرانتز باید مقادیر مربوط به پارامترها را بنویسیم.

توابع با پارامترهای ورودی

همانطور که گفتیم می توان در زبان های برنامه نویسی توابعی نوشت که پارامترهایی را به عنوان ورودی قبول می کنند. برای مثال، در کد زیر تابعی نوشتیم که دو عدد را به عنوان ورودی گرفته و حاصل جمع آن ها را در خروجی چاپ می کند:

#include <stdio.h>

void DisplaySum(int n1, int n2)
{	
	printf("%d", n1 + n2);
}

void main()
{
	DisplaySum(2, 6);
}

در تابع بالا و برای تابع DisplaySum در پارامتر ورودی مشخص کردیم، یکی n1 که از نوه int است و دیگری n2 از نوع int. برای تعریف پارامتر نوع داده پارامتر و سپس نام آن را می نویسیم. دقت کنید که یک متد می تواند چندین پارامتر داشته باشد که پارامترها را بوسیله , از هم جدا می کنیم. زمانی که قصد فراخوانی یک متد را داریم، در داخل () به ترتیب و بر اساس پارامترهای تعریف شده مقادیر را مشخص می کنیم. در مثال بالا به ترتیب عدد 2 برای n1 و عدد 6 برای n2 در نظر گرفته می شود، یعنی این مقادیر داخل پارامترها قرار گرفته و در بدنه تابع می توان از آن ها استفاده کرد. کد بالا عدد 8 که حاصل جمع 2 و 6 است را در خروجی چاپ می کند.

توابع با مقادیر خروجی

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

#include <stdio.h>

int Sum(int n1, int n2)
{	
	return n1 + n2;
}

void main()
{
	int result = Sum(2, 6);
	printf("%d", result);
}

همانطور که مشاهده می کنید در زمان تعریف تابع Sum، به جای کلمه کلیدی void، کلمه کلیدی int نوشته شده است، یعنی تابع مقداری از نوع int را بر میگرداند. تمامی توابعی که نوع بازگشتی دارند باید در قسمتی از بدنه تابع بوسیله دستور return مقداری باز گردانده شود. کلمه کلیدی return باعث اتمام روند اجرای تابع شده و مقداری که در جلوی آن نوشته شده را به عنوان خروجی بر میگرداند که در مثال بالا حاصل جمع مقادیر 2 و 6 به عنوان خروجی از متد بازگردانده می شود. در حقیقت مقداری که به عنوان خروجی از متد بازگردانده می شود جایگزین عبارت فراخوانی متد شده و کد اجرا می شود. به کد زیر دقت کنید:

#include <stdio.h>

int Sum(int n1, int n2)
{	
	return n1 + n2;
}

void main()
{
	int result = Sum(2, 6) + 5;
	printf("%d", result);
}

در مثال بالا، ابتدا تابع Sum با مقادیر 2 و 6 فراخوانی شده، سپس نتیجه آن که عدد 6 است با عدد 5 جمع شده و حاصل آن در متغیر result ریخته می شود.خیلی از زبان های برنامه نویسی شیوه های متفاوتی برای تعریف توابع دارند، برای مثال در زبان python برای تعریف توابع به صورت عمل می کنیم:

def function_name(parameters)
	[function_body]
	return [expression]

بر اساس قالب بالا، به صورت زیر می توان در زبان پایتون یک تابع تعریف و از آن استفاده کرد:

def getMax(list)
	max = list[0]
	index = 1
	while( index < 5 )
		if(max < list[index])
			max = list[index]
		index = index + 1
	return max

list1 = [2, 5, 6,1 ,3, 9, 7]

max = getMax(list1)

print "Max: ", max

این قسمت آخرین مطلب از سری آموزشی برنامه نویسی به زبان ساده بود. امیدوارم که این دوره مورد استفاده دوستانی که قصد ورود به دنیای برنامه نویسی را دارند قرار گرفته باشد. ITPRO باشید

نویسنده: حسین احمدی

منبع : جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#کلمه_کلیدی_return_در_برنامه_نویسی #توابع_در_برنامه_نویسی #پارامترهای_توابع_در_برنامه_نویسی #آموزش_برنامه_نویسی #مقادیر_بازگشتی_در_توابع #شروع_برنامه_نویسی
عنوان
1 آموزش برنامه نویسی به زبان ساده قسمت 1 : مفاهیم اولیه رایگان
2 آموزش برنامه نویسی به زبان ساده قسمت 2 : انواع زبان برنامه نویسی رایگان
3 آموزش برنامه نویسی به زبان ساده قسمت 3 : روش های اجرای کد رایگان
4 آموزش برنامه نویسی به زبان ساده قسمت 4 : مبنا های عددی رایگان
5 آموزش برنامه نویسی به زبان ساده قسمت 5 : عملگر های بیتی رایگان
6 آموزش برنامه نویسی به زبان ساده قسمت 6 : محیط های یکپارچه توسعه رایگان
7 آموزش برنامه نویسی به زبان ساده قسمت 7 : شروع به کار رایگان
8 آموزش برنامه نویسی به زبان ساده قسمت 8 : نوع های داده و متغیرها رایگان
9 آموزش برنامه نویسی به زبان ساده قسمت 9 : کلمات کلیدی و الگوریتم رایگان
10 آموزش برنامه نویسی به زبان ساده قسمت 10 : عملگرها و عملوندها رایگان
11 آموزش برنامه نویسی به زبان ساده قسمت 11 : دستورات کنترلی و شرط رایگان
12 آموزش برنامه نویسی به زبان ساده قسمت 12 : دستورات تکرار و حلقه رایگان
13 آموزش برنامه نویسی به زبان ساده قسمت 13 : آرایه ها و کاراکترها رایگان
14 آموزش برنامه نویسی به زبان ساده قسمت 14 : توابع رایگان
زمان و قیمت کل 0″ 0
8 نظر
فرشته سلیمانی

باسلام

مهندس آموزش هاتون عالی هستش.

اگه مقدور هست زبان cudaرو هم جز آموزش هاتون قراربدید

متشکرم

فرشاد

ممنون خیلی خوب بود، یه سوالی داشتم:

متد با تابع چه فرقی داره؟

آخه ما توی دانشگاه در ++C به تابع میگیم تابع! ولی یه فیلم آموزش جاوا دیدم که یه تابع می‌نویسن و بش میگن متد!

حالا یه کم گیج شدم که متد همون تابعه یا فرق داره؟

مصطفی چگنی

فرقش اینه که وقتی زبان ها به سمت شی گرایی رفتن دیگه به تابع میگفتن متد و اسمش عوض شد.

فک کنم همین باشه نمیدونم با ما اینطوری گفتن.

علی عبیات

سلام

اگه آموزش الگوریتم و فلوچارت هم بزارید خیلی خوب میشه

حسین احمدی

ابتدا آموزش سی پلاس پلاس رو قصد دارم به صورت قدم به قدم در سایت قرار بدم و بعد به امید خدا مبحث الگوریتم رو شروع می کنیم.

ziaa_1973

سلام

ممنون خیلی خوب بود واقعا استفاده کردیم

حسین

سلام، خسته نباشید استاد!

یه سوال دارم!

ببخشید من سه تا چیز رو متوجه نشدم!

حلقه ها (while, for, do) و اینکه پارامتر چی هست؟

ممنون میشم بنده رو راهنمایی بفرمایید!

حسین احمدی

سلام و عرض ادب، در مورد حلقه ها، شما زمانی که بخوایید یک قطعه کد به تعداد مورد نظر اجرا بشه باید از حلقه ها استفاده کنید، برای مثال، میخوایید یک عدد رو 10 بار روی صفحه چاپ کنید، یه حلقه درست می کنید و کد مورد نظر رو داخل بدنه حلقه می نویسید، for و while و do هر کدوم به یک شیوه حلقه ها رو پیاده سازی می کنند.

در مورد پارامتر هم، شما وقتی یک متد یا Function تعریف می کنید، می تونید یک سری مقادیر به متد پاس بدید، برای مثال متدی نوشتید با عنوان Sum که حاصل جمع دو عدد رو حساب می کنه، شما پارامتر رو تعریف می کنید که بتونید دو عدد رو به تابع پاس بدید.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....