কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রামিং-এ ফাংশনের বিভাগ (Categories of Functions)

ফাংশন ক্যাটেগরাইজেশন

আর্গুমেন্ট আছে/নেই এবং রিটার্ন ভ্যালু আছে/নেই — এই দুটি ফ্যাক্টর অনুযায়ী ফাংশন ৪ প্রকারে ভাগ করা যায়।

ক্যাটেগরিআর্গুমেন্টরিটার্নউদাহরণ সিনট্যাক্স
১. নো আর্গুমেন্ট, নো রিটার্ননানাvoid func();
২. নো আর্গুমেন্ট, উইথ রিটার্ননাহ্যাঁint func();
৩. উইথ আর্গুমেন্ট, নো রিটার্নহ্যাঁনাvoid func(int, int);
৪. উইথ আর্গুমেন্ট, উইথ রিটার্নহ্যাঁহ্যাঁint func(int, int);

১. নো আর্গুমেন্ট, নো রিটার্ন

ফাংশন ইনপুট নেয় না, আউটপুট দেয় না। সাধারণত ডিসপ্লে বা ইনিশিয়ালাইজেশনের জন্য।

#include <stdio.h>

void sum(); // প্রোটোটাইপ

int main() {
    sum(); // কল
    return 0;
}

void sum() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = a + b;
    printf("Sum = %d\n", c);
}

আউটপুট

Enter 2 numbers: 3 5
Sum = 8

২. নো আর্গুমেন্ট, উইথ রিটার্ন

ইনপুট নেয় না, কিন্তু ফলাফল রিটার্ন করে।

#include <stdio.h>

int sum();

int main() {
    int c = sum();
    printf("Sum = %d\n", c);
    return 0;
}

int sum() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = a + b;
    return c;
}

আউটপুট

Enter 2 numbers: 10 20
Sum = 30

৩. উইথ আর্গুমেন্ট, নো রিটার্ন

কলার থেকে ডেটা গ্রহণ করে, ফলাফল প্রিন্ট করে কিন্তু রিটার্ন করে না।

#include <stdio.h>

void sum(int a, int b);

int main() {
    int a, b;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    sum(a, b);
    return 0;
}

void sum(int a, int b) {
    int c = a + b;
    printf("Sum = %d\n", c);
}

আউটপুট

Enter 2 numbers: 10 20
Sum = 30

৪. উইথ আর্গুমেন্ট, উইথ রিটার্ন (সবচেয়ে ব্যবহারিক)

ইনপুট নেয়, প্রসেস করে, ফলাফল রিটার্ন করে। রিয়ূজেবল এবং টেস্টযোগ্য।

#include <stdio.h>

int sum(int a, int b);

int main() {
    int a, b, c;
    printf("Enter 2 numbers: ");
    scanf("%d %d", &a, &b);
    c = sum(a, b);
    printf("Sum = %d\n", c);
    return 0;
}

int sum(int a, int b) {
    return a + b;
}

আউটপুট

Enter 2 numbers: 10 20
Sum = 30

কোনটি কখন ব্যবহার করবেন?

  • ক্যাটেগরি ৪ — সবচেয়ে ফ্লেক্সিবল, রিয়ূজেবল, টেস্ট করা সহজ।
  • ক্যাটেগরি ৩ — আউটপুট প্রিন্ট করার মতো সাইড-ইফেক্টের জন্য।
  • ক্যাটেগরি ২ — ইনপুট ফাংশন ভিতরে নেওয়া হলে।
  • ক্যাটেগরি ১ — সিম্পল টাস্ক, মেনু ডিসপ্লে ইত্যাদির জন্য।
  1. সি ভাষায় বিভিন্ন সার্চিং টেকনিক কী কী?

  2. C++ প্রোগ্রামিং-এর অ্যাপ্লিকেশন কী কী?

  3. C# 7.0-এ লোকাল ফাংশন (Local Functions) কী?

  4. C#-এ একটি মেথড কতভাবে ওভারলোড করা যায়?