সি প্রোগ্রামিং – ফাংশন

সি প্রোগ্রামিং – ফাংশন

এই টিউটোরিয়ালে, সি প্রোগ্রামিং – ফাংশন এর সংজ্ঞা, সি প্রোগ্রামিং এ কিভাবে ফাংশন লেখা হয় ইত্যাদি নিয়ে আলোচনা করা হবে। এছাড়াও, কেনো ফাংশন সি প্রোগ্রামিং এ ব্যবহার করবো তা নিয়েও বিশদ আলোচনা থাকছে। মূলত তিন ধরনের ফাংশন হয়। যথা –

  1. Main function
  2. User-defined function এবং
  3. Standard library functions

প্রোগ্রামিং এ ফাংশন কতগুলো নির্দেশের সমষ্টি যা একসঙ্গে একটি কাজ সম্পাদন করে। মনে করো, এমন একটি প্রোগ্রাম লিখতে হবে যা অনেক গুলো সংখ্যার বর্গ এবং ফেক্টরিয়াল বের করবে। এ ক্ষেত্রে আমরা সংখ্যার বর্গ এবং ফেক্টরিয়াল নির্ণয় করার দুইটি ফাংশন  লিখে ফেলতে পারি, এতে প্রতিটি সংখ্যার জন্য আলাদা সংখ্যার বর্গ এবং ফেক্টরিয়াল নির্ণয় করার কোড না লিখে এই ফাংশন দুইটি করে সহজেই করতে পারি। অর্থাৎ আমাদের কোড লেখার কাজ কমে গেলো অনেক গুন।  খুশি ?? নিচের উদাহরণটি লক্ষ্য করলে আরো সহজ ভাবে বুঝতে পারবে।

একটি চকলেট প্রস্তুত করার মেশিন চিন্তা করো, এই মেশিনের মধ্যে চকলেট তৈরির উপকরণ গুলো ইনপুট দিলে মেশিনের মধ্যে ঐ উপকরণ গুলো নিয়ে নানা রকম প্রসেস এর মাধ্যমে আউটপুটে চকলেট পাওয়া যায়।

<চকলেট > মেশিন ( < চকলেট তৈরির উপকরণ > )
{
চকলেট তৈরির উপকরণ প্রসেস এর মাধ্যমে চকলেট প্রস্তুত
return চকলেট
}

প্রোগ্রামিং এ আমরা ফাংশনকে একটি চকলেট তৈরির মেশিনের সাথে কল্পনা করতে পারি। যেখানে, “< চকলেট >” হচ্ছে কেমন চকলেট মেশিন থেকে রিটার্ন হবে, “< চকলেট তৈরির উপকরণ >” বোঝায় তুমি মেশিনে কি কি ইনপুট দিবে। আমরা যেভাবে আমাদের চকলেট তৈরির মেশিন অপারেট করবো সেই অনুযায়ী নানা রকম চকলেট পাবো। অনুরূপভাবে, কি কি কাজ আমরা ফাংশন এর মধ্যে করতে চাই সে অনুযায়ী আমরা নানান লজিক প্রয়োগ করে সহজেই তা করতে পারি।

প্রতিটি সি প্রোগ্রামে এক অথবা একাধিক ফাংশন থাকে যা নিম্নোক্ত ভাবে প্রকাশ করা যায়-

return_type function_name( parameter list )
{
body of the function
return Data;
}

ফাংশন কিভাবে সি প্রোগ্রামিং এ কাজ করে?

কম্পাইলার যখন প্রধান ফাংশনের মধ্যে কোন একটি ফাংশন যেমন function_name( ) পায়, তখন কম্পাইলার লাফ দিয়ে ঐ ফাংশনে চলে যায় এবং কম্পাইলার উক্ত ফাংশনের ভিতরের কোডগুলি চালনা শুরু করে।

c-function-how-function-work

ফাংশনে আর্গুমেন্ট কিভাবে পাঠানো হয় ?

নিচের উদাহরণে, ফাংশন কল করে দুটি ভেরিয়েবল x এবং y পাঠানো হয়েছে।

Passing arguments to a function

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে ?

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে তা নিচের উদাহরণে দেখানো হয়েছে। মূল ফাংশন থেকে function_name() ফাংশন কল করায়, sum ভেরিয়েবলের মধ্যে z ভেরিয়েবলের মান চলে আসবে।

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে ?

উদাহরন – ১ : দুইটি সংখ্যার যোফল নির্ণয় 

#include <stdio.h>

int function_name(int x, int y)
{
    int z;
    z = x + y;
    return z;
}

int main()
{
    int a,b,sum;
    printf("Enter two number : ");
    scanf("%d %d", &a,&b);
    sum = function_name(a,b);
    printf("Summation is %d\n", sum);
    return 0;
}

Sample Input: Enter a number : 5  7
Output: Summation is 12

উদাহরন – ২ : আয়তাকার বস্তুর আয়তন নির্ণয়

কোনো আয়তাকার বস্তুর আয়তন হচ্ছে ঐ বস্তুর দৈর্ঘ X প্রস্থ X উচ্চতা। এখন একটি ফাংশন লিখি যাকোন আয়তাকার বস্তুর আয়তন পরিমাপ করবে। ফাংশনটির প্রোটোটাইপ int volume (int a, int b, int c) যা কোনো আয়তাকার বস্তুর আয়তন পরিমাপ করে ঐ আয়তন রিটার্ন করবে।

#include <stdio.h>

int volume (int a, int b, int c)
{
    return a*b*c;
}

int main ()
{
    int x,y,z,ans;
    x=3;
    y=4;
    z=5;
    ans = volume (x,y,z);
    printf ("Volume is %d\n", ans);
    return 0;
}

Output:
Volume is 60

উদাহরণ  – ৩ : দুইটি সংখ্যার মধ্যে বৃহত্তম সংখ্যা বের করা

#include <stdio.h>

int max(int num1, int num2);
int main ()
{
    int a,b,c;
    a = 10;
    b = 12;
    c = maximum(a, b);
    printf( "Maximum number is : %d\n", c );
    return 0;
}

/* function for finding maximum number */
int maximum(int x, int y)
{
    /* local variable */
    int z;
    if (x > y)
        z = x;
    else
        z = y;
    return z;
}

Output: Maximum number is : 12

উদাহরণ  – ৪ : মৌলিক সংখ্যা যাচাই 

মৌলিক সংখ্যা যাচাই করার একটি প্রোগ্রাম নিচের কোডে দেখানো হয়েছে। যে সকল স্বাভাবিক সংখ্যাকে ১ এবং সে সংখ্যা ছাড়া অন্য কোনো সংখ্যা দ্বারা ভাগ যায় না, তাকে মৌলিক সংখ্যা বলে।
১ থেকে ১০০-এর মাঝের ২৫টি মৌলিক সংখ্যাগুলো হচ্ছে ২, ৩, ৫, ৭, ১১, ১৩, ১৭, ১৯, ২৩, ২৯, ৩১, ৩৭, ৪১, ৪৩, ৪৭, ৫৩, ৫৯, ৬১, ৬৭, ৭১, ৭৩, ৭৯, ৮৩, ৮৯, ৯৭ ।

কোনো একটি সংখ্যা মূল ফাংশনে পূর্ণ সংখ্যার চলক হ-এর মাঝে ইনপুট নেয়া হয়েছে। তারপর ঐ হ চলক দিয়ে prime(n) ফাংশন কল করা হয়েছে। prime(n) ফাংশনে ঐ সংখ্যাটিকে ২ থেকে শুরু করে ঐ সংখ্যার চেয়ে এক কম সকল সংখ্যা দিয়ে ভাগ করা হয়েছে। এর মাঝের যে কোনো একটি সংখ্যা দিয়ে ভাগ করলে যদি ভাগশেষ শূণ্য হয় তাহলে সংখ্যাটি মৌলিক সংখ্যা নয়। আর যদি একবারও ভাগ না যায় তাহলে i-এর মান বেড়ে ঐ সংখ্যার সমান হবে এবং ফলাফলে সংখ্যাটি মৌলিক সংখ্যা দেখাবে।

#include<stdio.h>
int prime(int a);
int main()
{
      int n;
      printf("Enter a number :");
      scanf("%d",&n);
      prime(n);
      return 0;
}
int prime(int a)
{
      int i;
      for ( i = 2 ; i <= a - 1 ; i++ )
      {
          if ( a%i == 0 )
          {
              printf("%d is not prime.\n", a);
              break;
          }
      }
      if ( i == a )
      printf("%d is prime.\n", a);
}

Sample Input: Enter a number : 7
Output: 7 is prime.

সি প্রোগ্রামিং – সূচিপত্র ( টিউটোরিয়াল সমূহ ) –


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

1275 Total Views 1 Views Today