پارامترهای تابع (Function Parameters)
«پارامتر تابع (Function Parameter)» ورودی های تابع هستند. هنگام «فراخوانی (Call)» مقدار می دهیم. به این مقدار «آرگومان (Argument)» می گوییم. با پارامترها، تابع انعطاف پذیر می شود. برای دسترسی سریع، صفحه پارامترهای تابع را نشانه گذاری کن.
پارامتر و آرگومان
پارامتر داخل پرانتز تابع تعریف می شود. تعدادشان آزاد است. آن ها را با ویرگول جدا کن.
returnType functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
در این مثال، پارامتر رشته «name» است. با هر فراخوانی، یک نام چاپ می شود.
void myFunction(char name[]) {
printf("Hello %s\n", name);
}
int main() {
myFunction("Liam");
myFunction("Jenny");
myFunction("Anja");
return 0;
}
نکته: «name» پارامتر است. «Liam» و «Jenny» و «Anja» آرگومان هستند.
چند پارامتر همزمان
می توانی چند پارامتر بدهی. ترتیب آرگومان ها باید مطابق پارامترها باشد.
void myFunction(char name[], int age) {
printf("Hello %s. You are %d years old.\n", name, age);
}
int main() {
myFunction("Liam", 3);
myFunction("Jenny", 14);
myFunction("Anja", 30);
return 0;
}
بازنویسی مثال جمع با پارامتر
به جای اعداد ثابت، پارامتر بده. سپس برای هر ورودی، جمع را چاپ کن.
void calculateSum(int x, int y) {
int sum = x + y;
printf("The sum of %d + %d is: %d\n", x, y, sum);
}
int main() {
calculateSum(5, 3);
calculateSum(8, 2);
calculateSum(15, 15);
return 0;
}
ارسال آرایه به تابع
می توانی یک آرایه بدهی. داخل تابع، با حلقه for عناصر را بخوان.
void myFunction(int myNumbers[5]) {
for (int i = 0; i < 5; i++) {
printf("%d\n", myNumbers[i]);
}
}
int main() {
int myNumbers[5] = {10, 20, 30, 40, 50};
myFunction(myNumbers);
return 0;
}
نکته: هنگام ارسال، فقط نام آرایه را بده. اعلان کامل در امضای تابع می آید.
مقدار بازگشتی (Return Value)
اگر نوع تابع «void» نباشد، می تواند با «return» مقداری برگرداند.
int myFunction(int x) {
return 5 + x;
}
int main() {
printf("Result is: %d", myFunction(3));
return 0;
}
نمونه دو پارامتر را هم ببین.
int myFunction(int x, int y) {
return x + y;
}
int main() {
printf("Result is: %d", myFunction(5, 3));
return 0;
}
می توانی نتیجه را در متغیر ذخیره کنی.
int myFunction(int x, int y) {
return x + y;
}
int main() {
int result = myFunction(5, 3);
printf("Result is = %d", result);
return 0;
}
این هم نسخه انعطاف پذیرترِ calculateSum با بازگشت مقدار.
int calculateSum(int x, int y) {
return x + y;
}
int main() {
int result1 = calculateSum(5, 3);
int result2 = calculateSum(8, 2);
int result3 = calculateSum(15, 15);
printf("Result1 is: %d\n", result1);
printf("Result2 is: %d\n", result2);
printf("Result3 is: %d\n", result3);
return 0;
}
اگر نتایج زیاد هستند، آن ها را در آرایه نگه دار.
int calculateSum(int x, int y) {
return x + y;
}
int main() {
int resultArr[6];
resultArr[0] = calculateSum(5, 3);
resultArr[1] = calculateSum(8, 2);
resultArr[2] = calculateSum(15, 15);
resultArr[3] = calculateSum(9, 1);
resultArr[4] = calculateSum(7, 7);
resultArr[5] = calculateSum(1, 1);
for (int i = 0; i < 6; i++) {
printf("Result%d is = %d\n", i + 1, resultArr[i]);
}
return 0;
}
مثال واقعی: تبدیل دما
یک تبدیل ساده بساز. ورودی پارامتر است. خروجی مقدار بازگشتی است.
float toCelsius(float fahrenheit) {
return (5.0 / 9.0) * (fahrenheit - 32.0);
}
int main() {
float f_value = 98.8;
float result = toCelsius(f_value);
printf("Fahrenheit: %.2f\n", f_value);
printf("Convert Fahrenheit to Celsius: %.2f\n", result);
return 0;
}
گام های عملی
- نام و پارامترهای تابع را مشخص کن.
- بدنه را بنویس و از پارامترها استفاده کن.
- در
main()با آرگومان های درست صدا بزن.
نکته: برای پیش نیازها، صفحه توابع را ببین. برای محدوده متغیرها به اسکوپ برو. برای رشته ها و آرایه ها هم رشته ها و آرایه ها مفیدند.
جمع بندی سریع
- پارامتر، ورودی تابع است.
- آرگومان، مقدار هنگام فراخوانی است.
- ترتیب آرگومان ها بسیار مهم است.
- تابع می تواند مقدار برگرداند.
- نتایج زیاد را در آرایه نگه دار.