انواع تابع سی

انواع تابع در برنامه نویسی C

اساطیر زبان

در این آموزش با روش های مختلف برای حل یک مسئله با استفاده از تابع در برنامه نویسی سی آشنا خواهید شد.

در اینجا این ۴ برنامه بررسی می کنند که آیا عدد ورودی توسط کاربر عدد اول است یا خیر.

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

خروجی همه این برنامه ها یکسان است و در هر مثال یک تابع تعریف شده است. با این حال رویکرد هر مثال متفاوت است.

نکته: در این برنامه ها فرض شده عدد ورودی توسط کاربر یک عدد مثبت است چراکه عدد اول یک عدد طبیعی بزرگتر از یک است که به غیر از خودش و عدد ۱ مقسوم علیه ای دیگری نداشته باشد. البته شرط عدم برابری با ۱ در برنامه ها بررسی شده است.

مثال ۱: بدون آرگومان ارسالی و بدون مقدار بازگشتی

#include <stdio.h>

void checkPrimeNumber();

int main()

{

checkPrimeNumber(); // بدون آرگومان ارسالی

return 0;

}

// نشان می دهد که این تابع هیچ مقدار بازگشتی ندارد void

void checkPrimeNumber()

{

int n, i, flag = 0;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

if(n == 1){

flag = 1;

}

else{

for(i=2; i <= n/2; ++i)

{

if(n%i == 0)

{

flag = 1;

}

}

}

if (flag == 1)

printf(“%d is not a prime number.”, n);

else

printf(“%d is a prime number.”, n);

}

در تابع ()checkPrimeNumber ورودی از کاربر گرفته می شود سپس بررسی می کند آیا عدد اول است یا نه، در نهایت یک پیام روی صفحه نمایش می دهد.

پرانتزهای خالی در فراخوانی تابع ;()checkPrimeNumber در تابع ()main نشان می دهد که هیچ آرگومانی به تابع ارسال نمیشود.

نوع بازگشتی از تابع نیز void است. یعنی این تابع هیچ مقداری را بر نمی گرداند.

مثال ۲: بدون آرگومان ارسالی اما با مقدار بازگشتی

#include <stdio.h>

int getInteger();

int main()

{

int n, i, flag = 0;

// بدون آرگومان ارسالی

n = getInteger();

if(n == 1){

flag = 1;

}

else{

for(i=2; i<=n/2; ++i)

{

if(n%i==0){

flag = 1;

break;

}

}

}

if (flag == 1)

printf(“%d is not a prime number.”, n);

else

printf(“%d is a prime number.”, n);

return 0;

}

// عدد صحیح ورودی را برمی گرداند

int getInteger()

{

int n;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

return n;

}

پرانتزهای خالی در فراخوانی تابع

n = getInteger();

نشان می دهد که هیچ آرگومانی به تابع ارسال نمی شود. مقدار بازگشتی از تابع در متغیر n ذخیره می شود.

در اینجا تابع ()getInteger یک عدد از کاربر می گیرد و همان را برمی گرداند. در تابع ()main بررسی می شود که آیا عدد اول است یا نه.

مثال ۳: با آرگومان ارسالی اما بدون مقدار بازگشتی

#include <stdio.h>

void checkPrimeAndDisplay(int n);

int main()

{

int n;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

// به عنوان آرگومان به تابع ارسال می شود nمقدار

checkPrimeAndDisplay(n);

return 0;

}

// نشان می دهد که این تابع هیچ مقدار بازگشتی ندارد void

void checkPrimeAndDisplay(int n)

{

int i, flag = 0;

if(n == 1){

flag = 1;

}

else{

for(i=2; i <= n/2; ++i)

{

if(n%i == 0){

flag = 1;

break;

}

}

}

if(flag == 1)

printf(“%d is not a prime number.”,n);

else

printf(“%d is a prime number.”, n);

}

مقدار صحیح ورودی توسط کاربر به تابع ()checkPrimeAndDisplay ارسال می شود.

در اینجا تابع ()checkPrimeAndDisplay بررسی می کند آیا آرگومان ارسالی یک عدد اول است یا خیر و در انتها نیز یک پیام نمایش می دهد.

مثال ۴: با آرگومان ارسالی و با مقدار بازگشتی

#include <stdio.h>

int checkPrimeNumber(int n);

int main()

{

int n, flag;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

// به عنوام آرگومان به تابع ارسال می شود nمقدار

// ذخیره می شود flag مقدار بازگشتی از تابع در متغیر

flag = checkPrimeNumber(n);

if(flag == 1)

printf(“%d is not a prime number”,n);

else

printf(“%d is a prime number”,n);

return 0;

}

// از تابع برگشت داده می شود int نوع داده

int checkPrimeNumber(int n)

{

int i;

if(n == 1)

return 1;

for(i=2; i <= n/2; ++i)

{

if(n%i == 0)

return 1;

}

return 0;

}

عدد ورودی از کاربر به تابع ()checkPrimeNumber ارسال می شود. این تابع بررسی می کند آیا آرگومان ارسال شده عدد اول است یا خیر. اگر عدد اول باشد، تابع ۰ برمی گرداند در غیر اینصورت ۱ برمی گرداند. مقدار بازگشتی از تابع در متغیر flag ذخیره می شود. براساس ۰ یا ۱ بودن مقدار متغیر flag ، یک پیام مناسب در تابع ()main چاپ می شود.

کدام روش بهتر است؟

این به مسئله بستگی دارد. در این مسئله، ارسال آرگومان و بازگشت مقدار از تابع (مثال ۴) بهتر است.

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

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست